chimes_rust/handler/
chimes_role_menus.rs

1use crate::entity::ChimesRoleMenus;
2use actix_web::{web, HttpResponse, Result};
3use chimes_auth::ApiResult;
4/**
5 * Generate the file for chimes_role_menus.rs,
6 */
7use 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}