use std::sync::Arc; use geoffrey_models::models::settings::GeoffreySettings; use crate::api_endpoint::{ApiEndpoint, RequestType}; use crate::context::Context; use crate::model::ModelEndpoint; use crate::Result; use geoffrey_models::models::parameters::EmptyRequest; use geoffrey_models::models::token::Permissions; pub struct Settings {} impl ApiEndpoint for Settings { fn endpoint_name() -> String { "settings".to_string() } fn request_type() -> RequestType { RequestType::GET } } impl ModelEndpoint for Settings { type Req = EmptyRequest; type Resp = GeoffreySettings; fn token_permission() -> Vec { vec![Permissions::ModelGet] } fn run_endpoint(ctx: Arc, _: &Self::Req) -> Result { Ok(ctx.cfg.geoffrey_settings.clone()) } }