chimes_rust/handler/
chimes_data_source.rs1use crate::entity::ChimesDataSourceInfo;
2use actix_web::{web, HttpResponse, Result};
3use chimes_auth::ApiResult;
4use chimes_utils::get_rbatis;
5use 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}