diff options
Diffstat (limited to 'src/server/handlers/history.rs')
| -rw-r--r-- | src/server/handlers/history.rs | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/src/server/handlers/history.rs b/src/server/handlers/history.rs deleted file mode 100644 index 4fd6f03f..00000000 --- a/src/server/handlers/history.rs +++ /dev/null @@ -1,89 +0,0 @@ -use std::convert::Infallible; - -use warp::{http::StatusCode, reply::json}; - -use crate::api::{ - AddHistoryRequest, CountResponse, ErrorResponse, SyncHistoryRequest, SyncHistoryResponse, -}; -use crate::server::database::Database; -use crate::server::models::{NewHistory, User}; - -pub async fn count( - user: User, - db: impl Database + Clone + Send + Sync, -) -> Result<Box<dyn warp::Reply>, Infallible> { - db.count_history(&user).await.map_or( - Ok(Box::new(ErrorResponse::reply( - "failed to query history count", - StatusCode::INTERNAL_SERVER_ERROR, - ))), - |count| Ok(Box::new(json(&CountResponse { count }))), - ) -} - -pub async fn list( - req: SyncHistoryRequest, - user: User, - db: impl Database + Clone + Send + Sync, -) -> Result<Box<dyn warp::Reply>, Infallible> { - let history = db - .list_history( - &user, - req.sync_ts.naive_utc(), - req.history_ts.naive_utc(), - req.host, - ) - .await; - - if let Err(e) = history { - error!("failed to load history: {}", e); - let resp = - ErrorResponse::reply("failed to load history", StatusCode::INTERNAL_SERVER_ERROR); - let resp = Box::new(resp); - return Ok(resp); - } - - let history: Vec<String> = history - .unwrap() - .iter() - .map(|i| i.data.to_string()) - .collect(); - - debug!( - "loaded {} items of history for user {}", - history.len(), - user.id - ); - - Ok(Box::new(json(&SyncHistoryResponse { history }))) -} - -pub async fn add( - req: Vec<AddHistoryRequest>, - user: User, - db: impl Database + Clone + Send + Sync, -) -> Result<Box<dyn warp::Reply>, Infallible> { - debug!("request to add {} history items", req.len()); - - let history: Vec<NewHistory> = req - .iter() - .map(|h| NewHistory { - client_id: h.id.as_str(), - user_id: user.id, - hostname: h.hostname.as_str(), - timestamp: h.timestamp.naive_utc(), - data: h.data.as_str(), - }) - .collect(); - - if let Err(e) = db.add_history(&history).await { - error!("failed to add history: {}", e); - - return Ok(Box::new(ErrorResponse::reply( - "failed to add history", - StatusCode::INTERNAL_SERVER_ERROR, - ))); - }; - - Ok(Box::new(warp::reply())) -} |
