diff options
| author | Ellie Huxtable <ellie@elliehuxtable.com> | 2023-03-20 09:26:54 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-20 09:26:54 +0000 |
| commit | dcd77749dd1fdf6b0c8183bfbdf4f97bf238ebe4 (patch) | |
| tree | 97c623911eeb52da65c2b3fd80092f2c86f3dd18 /atuin-server/src/handlers/history.rs | |
| parent | skim-demo (#695) (diff) | |
| download | atuin-dcd77749dd1fdf6b0c8183bfbdf4f97bf238ebe4.zip | |
Add history deletion (#791)
* Drop events. I'd still like to do them, but differently
* Start adding delete api stuff
* Set mailmap
* Delete delete delete
* Fix tests
* Make clippy happy
Diffstat (limited to 'atuin-server/src/handlers/history.rs')
| -rw-r--r-- | atuin-server/src/handlers/history.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/atuin-server/src/handlers/history.rs b/atuin-server/src/handlers/history.rs index 7cf18323..9a7cb245 100644 --- a/atuin-server/src/handlers/history.rs +++ b/atuin-server/src/handlers/history.rs @@ -75,6 +75,28 @@ pub async fn list<DB: Database>( } #[instrument(skip_all, fields(user.id = user.id))] +pub async fn delete<DB: Database>( + user: User, + state: State<AppState<DB>>, + Json(req): Json<DeleteHistoryRequest>, +) -> Result<Json<MessageResponse>, ErrorResponseStatus<'static>> { + let db = &state.0.database; + + // user_id is the ID of the history, as set by the user (the server has its own ID) + let deleted = db.delete_history(&user, req.client_id).await; + + if let Err(e) = deleted { + error!("failed to delete history: {}", e); + return Err(ErrorResponse::reply("failed to delete history") + .with_status(StatusCode::INTERNAL_SERVER_ERROR)); + } + + Ok(Json(MessageResponse { + message: String::from("deleted OK"), + })) +} + +#[instrument(skip_all, fields(user.id = user.id))] pub async fn add<DB: Database>( user: User, state: State<AppState<DB>>, |
