omni_orchestrator/schemas/v1/api/permissions/
create.rs

1use crate::schemas::v1::db::queries::{self as db};
2use rocket::{post, serde::json::Json, State};
3use sqlx::MySql;
4
5use libomni::types::db::v1 as types;
6use types::permission::Permission;
7
8#[post("/permissions", format = "json", data = "<permission>")]
9pub async fn create_permission(
10    pool: &State<sqlx::Pool<MySql>>,
11    permission: Json<Permission>,
12) -> Json<Permission> {
13    let permission = db::permission::create_permission(
14        pool,
15        &permission.name,
16        permission.description.clone(),
17        permission.resource_type.clone().unwrap(),
18    )
19    .await
20    .unwrap();
21    Json(permission)
22}