Geoffrey-rs/geoffrey_api/src/model/settings.rs

36 lines
841 B
Rust

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<Permissions> {
vec![Permissions::ModelGet]
}
fn run_endpoint(ctx: Arc<Context>, _: &Self::Req) -> Result<Self::Resp> {
Ok(ctx.cfg.geoffrey_settings.clone())
}
}