use crate::entity::ChimesApiServerInfo;
use actix_web::{web, HttpResponse, Result};
use chimes_auth::ApiResult;
use chimes_utils::get_rbatis;
use rbatis::Page;
#[post("/api/v1/apiserver/save")]
pub async fn apiserver_save(req: web::Json<ChimesApiServerInfo>) -> Result<HttpResponse> {
let rb = get_rbatis();
let mut val = req.to_owned();
val.create_time = Some(rbatis::DateTimeNative::now());
val.update_time = Some(rbatis::DateTimeNative::now());
match val.save(rb).await {
Ok(_st) => {
let ret: web::Json<ApiResult<ChimesApiServerInfo>> = web::Json(ApiResult::ok(val));
Ok(HttpResponse::Ok().json(ret))
}
Err(err) => {
let ret: web::Json<ApiResult<ChimesApiServerInfo>> =
web::Json(ApiResult::error(5010, &err.to_string()));
Ok(HttpResponse::Ok().json(ret))
}
}
}
#[post("/api/v1/apiserver/update")]
async fn apiserver_update(req: web::Json<ChimesApiServerInfo>) -> Result<HttpResponse> {
let rb = get_rbatis();
let mut val = req.to_owned();
val.update_time = Some(rbatis::DateTimeNative::now());
match val.update_selective(rb).await {
Ok(_st) => {
let ret: web::Json<ApiResult<ChimesApiServerInfo>> = web::Json(ApiResult::ok(val));
Ok(HttpResponse::Ok().json(ret))
}
Err(err) => {
let ret: web::Json<ApiResult<ChimesApiServerInfo>> =
web::Json(ApiResult::error(5010, &err.to_string()));
Ok(HttpResponse::Ok().json(ret))
}
}
}
#[post("/api/v1/apiserver/delete")]
pub async fn apiserver_delete(req: web::Json<ChimesApiServerInfo>) -> Result<HttpResponse> {
let rb = get_rbatis();
let mut val = req.to_owned();
match val.remove(rb).await {
Ok(_st) => {
let ret: web::Json<ApiResult<ChimesApiServerInfo>> = web::Json(ApiResult::ok(val));
Ok(HttpResponse::Ok().json(ret))
}
Err(err) => {
let ret: web::Json<ApiResult<ChimesApiServerInfo>> =
web::Json(ApiResult::error(5010, &err.to_string()));
Ok(HttpResponse::Ok().json(ret))
}
}
}
#[post("/api/v1/apiserver/delete_ids")]
pub async fn apiserver_delete_ids(req: web::Json<Vec<i64>>) -> Result<HttpResponse> {
let rb = get_rbatis();
let ids = req.as_slice();
match ChimesApiServerInfo::remove_ids(rb, ids).await {
Ok(st) => {
let ret: web::Json<ApiResult<u64>> = web::Json(ApiResult::ok(st));
Ok(HttpResponse::Ok().json(ret))
}
Err(err) => {
let ret: web::Json<ApiResult<u64>> =
web::Json(ApiResult::error(5010, &err.to_string()));
Ok(HttpResponse::Ok().json(ret))
}
}
}
#[post("/api/v1/apiserver/search")]
pub async fn apiserver_search(req: web::Json<ChimesApiServerInfo>) -> Result<HttpResponse> {
let rb = get_rbatis();
let val = req.to_owned();
match val.query_list(rb).await {
Ok(st) => {
let ret: web::Json<ApiResult<Vec<ChimesApiServerInfo>>> = web::Json(ApiResult::ok(st));
Ok(HttpResponse::Ok().json(ret))
}
Err(err) => {
let ret: web::Json<ApiResult<Vec<ChimesApiServerInfo>>> =
web::Json(ApiResult::error(5010, &err.to_string()));
Ok(HttpResponse::Ok().json(ret))
}
}
}
#[post("/api/v1/apiserver/paged/{current}/{size}")]
pub async fn apiserver_paged(
req: web::Json<ChimesApiServerInfo>,
path_param: web::Path<(u64, u64)>,
) -> Result<HttpResponse> {
let rb = get_rbatis();
let val = req.to_owned();
let (current, size) = path_param.into_inner();
match val.query_paged(rb, current, size).await {
Ok(st) => {
let ret: web::Json<ApiResult<Page<ChimesApiServerInfo>>> = web::Json(ApiResult::ok(st));
Ok(HttpResponse::Ok().json(ret))
}
Err(err) => {
let ret: web::Json<ApiResult<Page<ChimesApiServerInfo>>> =
web::Json(ApiResult::error(5010, &err.to_string()));
Ok(HttpResponse::Ok().json(ret))
}
}
}
#[get("/api/v1/apiserver/get/{id}")]
pub async fn apiserver_get(dict_id_req: web::Path<i64>) -> Result<HttpResponse> {
let rb = get_rbatis();
let dict_id: i64 = dict_id_req.to_owned();
match ChimesApiServerInfo::from_id(rb, &dict_id).await {
Ok(st) => match st {
Some(tv) => {
let ret: web::Json<ApiResult<ChimesApiServerInfo>> = web::Json(ApiResult::ok(tv));
Ok(HttpResponse::Ok().json(ret))
}
None => {
let ret: web::Json<ApiResult<ChimesApiServerInfo>> =
web::Json(ApiResult::error(5040, &"Not-Found".to_string()));
Ok(HttpResponse::Ok().json(ret))
}
},
Err(err) => {
let ret: web::Json<ApiResult<ChimesApiServerInfo>> =
web::Json(ApiResult::error(5010, &err.to_string()));
Ok(HttpResponse::Ok().json(ret))
}
}
}