chimes_rust/handler/
chimes_data_source.rs

1use crate::entity::ChimesDataSourceInfo;
2use actix_web::{web, HttpResponse, Result};
3use chimes_auth::ApiResult;
4use chimes_utils::get_rbatis;
5/**
6 * Generate the file for chimes_dict_info.rs,
7 */
8use rbatis::Page;
9
10#[post("/api/v1/datasource/save")]
11pub async fn datasource_save(req: web::Json<ChimesDataSourceInfo>) -> Result<HttpResponse> {
12    let rb = get_rbatis();
13    let mut val = req.to_owned();
14    val.create_time = Some(rbatis::DateTimeNative::now());
15    val.update_time = Some(rbatis::DateTimeNative::now());
16    match val.save(rb).await {
17        Ok(_st) => {
18            let ret: web::Json<ApiResult<ChimesDataSourceInfo>> = web::Json(ApiResult::ok(val));
19            Ok(HttpResponse::Ok().json(ret))
20        }
21        Err(err) => {
22            let ret: web::Json<ApiResult<ChimesDataSourceInfo>> =
23                web::Json(ApiResult::error(5010, &err.to_string()));
24            Ok(HttpResponse::Ok().json(ret))
25        }
26    }
27}
28
29#[post("/api/v1/datasource/update")]
30async fn datasource_update(req: web::Json<ChimesDataSourceInfo>) -> Result<HttpResponse> {
31    let rb = get_rbatis();
32    let mut val = req.to_owned();
33    val.update_time = Some(rbatis::DateTimeNative::now());
34    match val.update_selective(rb).await {
35        Ok(_st) => {
36            let ret: web::Json<ApiResult<ChimesDataSourceInfo>> = web::Json(ApiResult::ok(val));
37            Ok(HttpResponse::Ok().json(ret))
38        }
39        Err(err) => {
40            let ret: web::Json<ApiResult<ChimesDataSourceInfo>> =
41                web::Json(ApiResult::error(5010, &err.to_string()));
42            Ok(HttpResponse::Ok().json(ret))
43        }
44    }
45}
46
47#[post("/api/v1/datasource/delete")]
48pub async fn datasource_delete(req: web::Json<ChimesDataSourceInfo>) -> Result<HttpResponse> {
49    let rb = get_rbatis();
50    let mut val = req.to_owned();
51    match val.remove(rb).await {
52        Ok(_st) => {
53            let ret: web::Json<ApiResult<ChimesDataSourceInfo>> = web::Json(ApiResult::ok(val));
54            Ok(HttpResponse::Ok().json(ret))
55        }
56        Err(err) => {
57            let ret: web::Json<ApiResult<ChimesDataSourceInfo>> =
58                web::Json(ApiResult::error(5010, &err.to_string()));
59            Ok(HttpResponse::Ok().json(ret))
60        }
61    }
62}
63
64#[post("/api/v1/datasource/delete_ids")]
65pub async fn datasource_delete_ids(req: web::Json<Vec<i64>>) -> Result<HttpResponse> {
66    let rb = get_rbatis();
67    let ids = req.as_slice();
68    match ChimesDataSourceInfo::remove_ids(rb, ids).await {
69        Ok(st) => {
70            let ret: web::Json<ApiResult<u64>> = web::Json(ApiResult::ok(st));
71            Ok(HttpResponse::Ok().json(ret))
72        }
73        Err(err) => {
74            let ret: web::Json<ApiResult<u64>> =
75                web::Json(ApiResult::error(5010, &err.to_string()));
76            Ok(HttpResponse::Ok().json(ret))
77        }
78    }
79}
80
81#[post("/api/v1/datasource/search")]
82pub async fn datasource_search(req: web::Json<ChimesDataSourceInfo>) -> Result<HttpResponse> {
83    let rb = get_rbatis();
84    let val = req.to_owned();
85    match val.query_list(rb).await {
86        Ok(st) => {
87            let ret: web::Json<ApiResult<Vec<ChimesDataSourceInfo>>> = web::Json(ApiResult::ok(st));
88            Ok(HttpResponse::Ok().json(ret))
89        }
90        Err(err) => {
91            let ret: web::Json<ApiResult<Vec<ChimesDataSourceInfo>>> =
92                web::Json(ApiResult::error(5010, &err.to_string()));
93            Ok(HttpResponse::Ok().json(ret))
94        }
95    }
96}
97
98#[post("/api/v1/datasource/paged/{current}/{size}")]
99pub async fn datasource_paged(
100    req: web::Json<ChimesDataSourceInfo>,
101    path_param: web::Path<(u64, u64)>,
102) -> Result<HttpResponse> {
103    let rb = get_rbatis();
104    let val = req.to_owned();
105    let (current, size) = path_param.into_inner();
106    match val.query_paged(rb, current, size).await {
107        Ok(st) => {
108            let ret: web::Json<ApiResult<Page<ChimesDataSourceInfo>>> =
109                web::Json(ApiResult::ok(st));
110            Ok(HttpResponse::Ok().json(ret))
111        }
112        Err(err) => {
113            let ret: web::Json<ApiResult<Page<ChimesDataSourceInfo>>> =
114                web::Json(ApiResult::error(5010, &err.to_string()));
115            Ok(HttpResponse::Ok().json(ret))
116        }
117    }
118}
119
120#[get("/api/v1/datasource/get/{id}")]
121pub async fn datasource_get(dict_id_req: web::Path<i64>) -> Result<HttpResponse> {
122    let rb = get_rbatis();
123    let dict_id = dict_id_req.to_owned();
124    match ChimesDataSourceInfo::from_id(rb, &dict_id).await {
125        Ok(st) => match st {
126            Some(tv) => {
127                let ret: web::Json<ApiResult<ChimesDataSourceInfo>> = web::Json(ApiResult::ok(tv));
128                Ok(HttpResponse::Ok().json(ret))
129            }
130            None => {
131                let ret: web::Json<ApiResult<ChimesDataSourceInfo>> =
132                    web::Json(ApiResult::error(5040, &"Not-Found".to_string()));
133                Ok(HttpResponse::Ok().json(ret))
134            }
135        },
136        Err(err) => {
137            let ret: web::Json<ApiResult<ChimesDataSourceInfo>> =
138                web::Json(ApiResult::error(5010, &err.to_string()));
139            Ok(HttpResponse::Ok().json(ret))
140        }
141    }
142}