Refactoring: Moved old api method to new rest api
This commit is contained in:
parent
4891d8004c
commit
1400147761
|
@ -316,8 +316,8 @@ CommunicationModule = ( function() {
|
|||
var target_id = row.data("target-id");
|
||||
|
||||
$.ajax({
|
||||
type: "PUT",
|
||||
url: "/api/member_management/remove_communication_target?target_id="+target_id,
|
||||
type: "DELETE",
|
||||
url: "/api/communication_targets/"+target_id,
|
||||
contentType: 'application/json',
|
||||
timeout: 3000,
|
||||
error: function () {
|
||||
|
|
|
@ -124,13 +124,13 @@ fn main() {
|
|||
modules::api::member_management::view::member_driving_permissions::api_member_add_driving_license,
|
||||
modules::api::member_management::view::member_driving_permissions::api_member_add_driving_permission,
|
||||
modules::api::member_management::view::member_driving_permissions::api_member_remove_driving_license,
|
||||
modules::api::member_management::view::member_communication::api_member_remove_communication_target,
|
||||
modules::api::members::get_member::api_members_get,
|
||||
modules::api::members::get_member::api_members_search_name,
|
||||
modules::api::members::delete_member::api_members_delete,
|
||||
modules::api::members::member_communication::api_communication_targets_update,
|
||||
modules::api::members::member_communication::api_communication_types_get,
|
||||
modules::api::members::member_communication::api_communication_targets_create,
|
||||
modules::api::members::member_communication::api_communication_targets_delete,
|
||||
modules::api::groups::create::create_group,
|
||||
modules::api::groups::delete::delete_groups,
|
||||
modules::api::groups::read::read_group,
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
use crate::database::controller::member_communication::{
|
||||
add_communication_target, remove_communication_target,
|
||||
};
|
||||
use crate::database::model::member_communication::CommunicationTargetCreate;
|
||||
use crate::helper::session_cookies::model::SessionCookie;
|
||||
use crate::helper::settings::Settings;
|
||||
use crate::modules::api::member_management::controller::parser::{parse_member_cookie, parse_uuid};
|
||||
use crate::modules::api::model::api_outcome::{ApiError, ApiErrorWrapper};
|
||||
use rocket::State;
|
||||
use rocket_contrib::json::Json;
|
||||
|
||||
#[put(
|
||||
"/api/member_management/remove_communication_target?<target_id>",
|
||||
format = "json"
|
||||
)]
|
||||
pub fn api_member_remove_communication_target(
|
||||
cookie: SessionCookie,
|
||||
settings: State<Settings>,
|
||||
target_id: String,
|
||||
) -> Result<(), Json<ApiErrorWrapper>> {
|
||||
//TODO: Check permissions!
|
||||
let member = parse_member_cookie(cookie.member)?;
|
||||
let target_id = parse_uuid(target_id)?;
|
||||
|
||||
match remove_communication_target(&settings, target_id) {
|
||||
Ok(_) => Ok(()),
|
||||
Err(_) => Err(Json(
|
||||
ApiError::new(500, "Datenbankfehler aufgetreten".to_string()).to_wrapper(),
|
||||
)),
|
||||
}
|
||||
}
|
|
@ -1,3 +1,2 @@
|
|||
pub mod member_communication;
|
||||
pub mod member_driving_permissions;
|
||||
pub mod member_qualifications;
|
||||
|
|
|
@ -10,7 +10,7 @@ use rocket::State;
|
|||
use rocket_contrib::json::Json;
|
||||
use crate::helper::check_access::check_access;
|
||||
use crate::database::controller::groups::get_groups_for_member;
|
||||
use crate::database::controller::member_communication::{get_communication_target, add_communication_target};
|
||||
use crate::database::controller::member_communication::{get_communication_target, add_communication_target, remove_communication_target};
|
||||
use crate::helper::translate_diesel_error::translate_diesel;
|
||||
use crate::database::model::member_communication::CommunicationTargetCreate;
|
||||
|
||||
|
@ -147,6 +147,39 @@ pub fn api_communication_targets_update(
|
|||
}
|
||||
}
|
||||
|
||||
#[delete(
|
||||
"/api/communication_targets/<target_id>",
|
||||
format = "json"
|
||||
)]
|
||||
pub fn api_communication_targets_delete(
|
||||
cookie: SessionCookie,
|
||||
settings: State<Settings>,
|
||||
target_id: String,
|
||||
) -> Result<(), Json<ApiErrorWrapper>> {
|
||||
let member = parse_member_cookie(cookie.member)?;
|
||||
let target_id = parse_uuid(target_id)?;
|
||||
|
||||
let target = match get_communication_target(&settings, target_id){
|
||||
Ok(target) => target,
|
||||
Err(e) => {
|
||||
return Err(translate_diesel(e))
|
||||
}
|
||||
};
|
||||
|
||||
let groups = get_groups_for_member(&settings, target.entity_id);
|
||||
|
||||
if !check_access(&settings, target.entity_id, groups, member.entity_id, crate::permissions::modules::member_management::profile::communication::EDIT.to_string()){
|
||||
return Err(Json(ApiError::new(401, "Keine Berechtigung Kommunikationseintrag zu löschen!".to_string()).to_wrapper()))
|
||||
}
|
||||
|
||||
match remove_communication_target(&settings, target_id) {
|
||||
Ok(_) => Ok(()),
|
||||
Err(_) => Err(Json(
|
||||
ApiError::new(500, "Datenbankfehler aufgetreten".to_string()).to_wrapper(),
|
||||
)),
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Queryable, Clone)]
|
||||
pub struct CommunicationType {
|
||||
pub(crate) type_id: uuid::Uuid,
|
||||
|
|
Loading…
Reference in New Issue