From 3b43c922d4081ed926cde61d67995ba02713df29 Mon Sep 17 00:00:00 2001 From: MegaBrutal Date: Mon, 18 Jul 2022 04:00:00 +0200 Subject: [PATCH] Implement /pdrop --- src/main.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main.rs b/src/main.rs index e1c238a..7a03c3b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -279,6 +279,18 @@ async fn img_pgen1(req: HttpRequest, path: web::Path<(u32, u32, u32)>, canvas1: .body(cursor.into_inner())) } +#[get("/pdrop/{canvas_id}")] +async fn pdrop(canvas_id: web::Path, canvas0: web::Data>>, canvas1: web::Data>>) -> Result { + let canvas_id = canvas_id.into_inner(); + match canvas_id { + 0 => canvas0.lock().unwrap().0.take(), + 1 => canvas1.lock().unwrap().0.take(), + _ => None + }.ok_or_else( || CanvasError::NotExists )?; + Ok(HttpResponse::build(StatusCode::OK) + .body(format!("Canvas {} dropped.", canvas_id))) +} + #[actix_web::main] // or #[tokio::main] async fn main() -> std::io::Result<()> { @@ -292,6 +304,7 @@ async fn main() -> std::io::Result<()> { .service(img_gen1) .service(img_pgen0) .service(img_pgen1) + .service(pdrop) .app_data(web::Data::new(canvas0.clone())) .app_data(web::Data::new(canvas1.clone())) }) -- 2.34.1