chiark / gitweb /
session URL: PresentationLayout is mandatory
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Mar 2022 00:40:14 +0000 (00:40 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Mar 2022 00:40:14 +0000 (00:40 +0000)
These requests come from
  xhr_post_then('/_/session/' + layout
in script.ts, which gets layout via global-info and ultimately from
LoadingRenderContext, which contains a PresentationLayout, not an
Option.

git grep for "/session" reveals one in apitest, but that one is
hardcoded to use /Portrait.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
daemon/session.rs

index 46406a250d03ab9d14914d7ce9694f9252235f8a..2831742993a72f524f836aee4912977554ea2d0b 100644 (file)
@@ -72,9 +72,9 @@ struct SessionForm {
 #[post("/_/session/<layout>", format="json", data="<form>")]
 #[throws(FER)]
 fn session(form: Json<SessionForm>,
-           layout: Option<Parse<PresentationLayout>>)
+           layout: Parse<PresentationLayout>)
            -> Template {
-  session_inner(form, layout.map(|pl| pl.0))?
+  session_inner(form, layout.0)?
 }
 
 #[ext]
@@ -89,7 +89,7 @@ impl SvgAttrs {
 } 
 
 fn session_inner(form: Json<SessionForm>,
-                 layout: Option<PresentationLayout>)
+                 layout: PresentationLayout)
                  -> Result<Template,Fatal> {
   // make session in this game, log a message to other players
   let iad = lookup_token(form.ptoken.borrow())?;
@@ -123,9 +123,7 @@ fn session_inner(form: Json<SessionForm>,
     let gpl = ig.gs.players.byid_mut(player)?;
     let pr = ig.iplayers.byid(player)?;
     let tz = &pr.ipl.tz;
-    if let Some(layout) = layout {
-      gpl.layout = layout;
-    }
+    gpl.layout = layout;
     let layout = gpl.layout;
     let nick = gpl.nick.clone();
     let movehist = gpl.movehist.clone();