From b4c815f1d71f6c94267af4e8d89fbf5ed970419d Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 27 Jun 2020 19:06:56 +0100 Subject: [PATCH] horrible lineless error! --- src/bin/server.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/bin/server.rs b/src/bin/server.rs index 463dbad7..cc18233b 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -111,6 +111,13 @@ fn session(form : Json) -> Result { Ok(Template::render("test",&c)) } +#[derive(Error,Debug)] +#[error("operation error {:?}",self)] +enum OpError { + PieceGone, + PieceHeld, +} + #[derive(Debug,Serialize,Deserialize)] struct ApiGrab { t : String, @@ -119,7 +126,17 @@ struct ApiGrab { #[post("/_/api/grab", format="json", data="
")] #[throws(RE)] fn api_grab(form : Json) -> impl response::Responder<'static> { - eprintln!("API {:?}", &form); + let iad = lookup_token(&form.t).ok_or_else(||anyhow!("unknown token"))?; + let g = iad.i.lock().map_err(|e| anyhow!("lock poison {:?}",&e))?; + let r : Result<(),OpError> = { + let p = g.gs.pieces.get_mut(form.p)/*.ok_or(OpError::PieceGone)?*/; +/* + if p.held != None { Err(OpError::PieceHeld)? }; + p.held = Some(iad.user); +*/ + Ok(()) + }; + eprintln!("API {:?} => {:?}", &form, &r); "" } -- 2.30.2