EinsatzOnline/src/modules/api/member_management/controller/member_driving_permissions.rs

71 lines
2.1 KiB
Rust

use crate::database::controller::member_licenses::{
add_member_driving_permission, add_member_license, remove_member_license,
};
use crate::helper::settings::Settings;
use crate::modules::api::model::api_outcome::{ApiError, ApiErrorWrapper};
use rocket::State;
use rocket::serde::json::Json;
pub fn add_member_license_or_error(
member_id: uuid::Uuid,
license_name: String,
settings: &State<Settings>,
) -> Result<(), Json<ApiErrorWrapper>> {
match add_member_license(settings, member_id, license_name) {
Ok(num) => {
if num != 1 {
Err(Json(
ApiError::new(500, "Datenbankfehler aufgetreten.".to_string()).to_wrapper(),
))
} else {
Ok(())
}
}
Err(_) => Err(Json(
ApiError::new(400, "Datenbankfehler aufgetreten.".to_string()).to_wrapper(),
)),
}
}
pub fn add_member_driving_permission_or_error(
member_id: uuid::Uuid,
license_name: String,
settings: &State<Settings>,
) -> Result<(), Json<ApiErrorWrapper>> {
match add_member_driving_permission(settings, member_id, license_name) {
Ok(num) => {
if num != 1 {
Err(Json(
ApiError::new(500, "Datenbankfehler aufgetreten".to_string()).to_wrapper(),
))
} else {
Ok(())
}
}
Err(_) => Err(Json(
ApiError::new(500, "Datenbankfehler aufgetreten".to_string()).to_wrapper(),
)),
}
}
pub fn remove_member_license_or_error(
member_id: uuid::Uuid,
license_name: String,
settings: &State<Settings>,
) -> Result<(), Json<ApiErrorWrapper>> {
match remove_member_license(settings, member_id, license_name) {
Ok(num) => {
if num != 1 {
Err(Json(
ApiError::new(500, "Datenbankfehler aufgetreten.".to_string()).to_wrapper(),
))
} else {
Ok(())
}
}
Err(_) => Err(Json(
ApiError::new(500, "Datenbankfehler aufgetreten.".to_string()).to_wrapper(),
)),
}
}