use super::core::ScimServer;
use crate::error::ScimResult;
use crate::resource::ResourceProvider;
use crate::schema::Schema;
impl<P: ResourceProvider> ScimServer<P> {
pub fn get_resource_schema(&self, resource_type: &str) -> ScimResult<Schema> {
let handler = self.get_handler(resource_type)?;
Ok(handler.schema.clone())
}
pub fn get_all_schemas(&self) -> Vec<&Schema> {
self.resource_handlers
.values()
.map(|handler| &handler.schema)
.collect()
}
pub fn get_schema_by_id(&self, schema_id: &str) -> Option<&Schema> {
self.schema_registry.get_schema(schema_id)
}
}