use crate::AppState; use super::{JsonBack}; use super::{token_fail,check_login, errcode0}; use crate::datasource::{Datasource, SqliteParams}; use axum::{Json,extract::State}; #[derive(serde::Deserialize)] pub struct Dedit{ token: String, id: u64, name: Option, area0: Option, area1: Option, } pub async fn d_edit( State(state): State, Json(u): axum::extract::Json ) -> Json { match check_login(&state, u.token).await { Ok(_) => {}, Err(_) => { return token_fail(); } } let mut params: SqliteParams = vec![Box::new(0)]; match state.db_lite.execute(format!("update device set isdelete=?{}{}{} where id=?", if let Some(filter) = u.name {params.push(Box::new(filter));", name=?"} else {""}, if let Some(filter) = u.area0 {params.push(Box::new(filter));", name=?"} else {""}, if let Some(filter) = u.area1 {params.push(Box::new(filter));", name=?"} else {""}, ).as_str(), rusqlite::params_from_iter({params.push(Box::new(u.id));params})).await{ Ok(_) => {}, Err(_) => { return Json(JsonBack{errcode: 3000, errmsg: Some("更新失败".to_string())}); } } errcode0() }