chimes_rust/handler/
chimes_role_menus.rs1use crate::entity::ChimesRoleMenus;
2use actix_web::{web, HttpResponse, Result};
3use chimes_auth::ApiResult;
4use chimes_utils::get_rbatis;
8
9#[get("/api/v1/role_menus/load/{role_id}")]
10pub async fn role_menus_rel_load(role_id: web::Path<i64>) -> Result<HttpResponse> {
11 let rb = get_rbatis();
12 match ChimesRoleMenus::load(rb, &role_id).await {
13 Ok(st) => {
14 let ret: web::Json<ApiResult<Option<ChimesRoleMenus>>> = web::Json(ApiResult::ok(st));
15 Ok(HttpResponse::Ok().json(ret))
16 }
17 Err(err) => {
18 let ret: web::Json<ApiResult<Option<ChimesRoleMenus>>> =
19 web::Json(ApiResult::error(5010, &err.to_string()));
20 Ok(HttpResponse::Ok().json(ret))
21 }
22 }
23}
24
25#[post("/api/v1/role_menus/remove/{role_id}")]
26pub async fn role_menus_rel_remove(role_id: web::Path<i64>) -> Result<HttpResponse> {
27 let rb = get_rbatis();
28 match ChimesRoleMenus::load(rb, &role_id).await {
29 Ok(st) => match st {
30 Some(cst) => match cst.remove(rb).await {
31 Ok(_) => {
32 let ret: web::Json<ApiResult<ChimesRoleMenus>> = web::Json(ApiResult::ok(cst));
33 Ok(HttpResponse::Ok().json(ret))
34 }
35 Err(err) => {
36 let ret: web::Json<ApiResult<ChimesRoleMenus>> =
37 web::Json(ApiResult::error(5011, &err.to_string()));
38 Ok(HttpResponse::Ok().json(ret))
39 }
40 },
41 None => {
42 let ret: web::Json<ApiResult<ChimesRoleMenus>> =
43 web::Json(ApiResult::error(5040, &"Not-Found".to_string()));
44 Ok(HttpResponse::Ok().json(ret))
45 }
46 },
47 Err(err) => {
48 let ret: web::Json<ApiResult<ChimesRoleMenus>> =
49 web::Json(ApiResult::error(5010, &err.to_string()));
50 Ok(HttpResponse::Ok().json(ret))
51 }
52 }
53}
54
55#[post("/api/v1/role_menus/remove_ids")]
56pub async fn role_menus_rel_remove_ids(role_ids: web::Json<Vec<i64>>) -> Result<HttpResponse> {
57 let rb = get_rbatis();
58 let mut ret = None;
59 for id in role_ids.clone() {
60 if ret.is_none() {
61 match ChimesRoleMenus::load(rb, &id).await {
62 Ok(st) => {
63 match st {
64 Some(cst) => {
65 match cst.remove(rb).await {
66 Ok(_) => {}
67 Err(err) => {
68 ret = Some(err);
69 }
70 };
71 }
72 None => {
73 ret = None;
74 }
75 };
76 }
77 Err(err) => {
78 ret = Some(err);
79 }
80 };
81 }
82 }
83
84 match ret {
85 None => {
86 let ret: web::Json<ApiResult<&str>> = web::Json(ApiResult::ok("OK"));
87 Ok(HttpResponse::Ok().json(ret))
88 }
89 Some(err) => {
90 let ret: web::Json<ApiResult<&str>> =
91 web::Json(ApiResult::error(5011, &err.to_string()));
92 Ok(HttpResponse::Ok().json(ret))
93 }
94 }
95}
96
97#[post("/api/v1/role_menus/save")]
98pub async fn role_menus_rel_save(req: web::Json<ChimesRoleMenus>) -> Result<HttpResponse> {
99 let rb = get_rbatis();
100 let val = req.to_owned();
101 match val.save(rb).await {
102 Ok(_st) => {
103 let ret: web::Json<ApiResult<String>> = web::Json(ApiResult::ok("SUCCESS".to_string()));
104 Ok(HttpResponse::Ok().json(ret))
105 }
106 Err(err) => {
107 let ret: web::Json<ApiResult<String>> =
108 web::Json(ApiResult::error(5010, &err.to_string()));
109 Ok(HttpResponse::Ok().json(ret))
110 }
111 }
112}