From 0ae92aa18b1257bb599f10096bf9b013dab906e2 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 27 Nov 2020 00:55:09 +0000 Subject: [PATCH] support /p too Signed-off-by: Ian Jackson --- src/api.rs | 14 ++++++++++++++ src/bin/daemon-otter.rs | 7 ++++--- src/imports.rs | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/api.rs b/src/api.rs index 7a59ca2c..64632f31 100644 --- a/src/api.rs +++ b/src/api.rs @@ -36,6 +36,20 @@ impl PresentationLayout { } } +pub struct AbbrevPresentationLayout(pub PresentationLayout); + +impl<'r> FromParam<'r> for AbbrevPresentationLayout { + type Error = (); + #[throws(Self::Error)] + fn from_param(param: &'r RawStr) -> Self { + AbbrevPresentationLayout(match param.as_str() { + "p "=> PL::Portrait, + "l" => PL::Landscape, + _ => throw!(()) + }) + } +} + #[derive(Debug,Serialize,Deserialize)] struct ApiPiece { ctoken : RawToken, diff --git a/src/bin/daemon-otter.rs b/src/bin/daemon-otter.rs index b681f4ff..ab337ef4 100644 --- a/src/bin/daemon-otter.rs +++ b/src/bin/daemon-otter.rs @@ -66,10 +66,11 @@ fn loading_p(ptoken: WholeQueryString) -> Template { loading(PresentationLayout::Portrait, ptoken)? } // xxx also do p, make it an account/player property -#[get("/l")] +#[get("/")] #[throws(OE)] -fn loading_l(ptoken: WholeQueryString) -> Template { - loading(PresentationLayout::Landscape, ptoken)? +fn loading_l(layout: AbbrevPresentationLayout, ptoken: WholeQueryString) + -> Template { + loading(layout.0, ptoken)? } #[throws(OE)] diff --git a/src/imports.rs b/src/imports.rs index d5323121..cf5d5c97 100644 --- a/src/imports.rs +++ b/src/imports.rs @@ -126,7 +126,7 @@ pub use crate::slotmap_slot_idx::*; pub use crate::cmdlistener::*; pub use crate::mgmtchannel::*; pub use crate::api::{Lens,TransparentLens,ApiPieceOpError}; -pub use crate::api::{PresentationLayout}; +pub use crate::api::{PresentationLayout,AbbrevPresentationLayout}; pub use crate::utils::*; pub use crate::spec::*; pub use crate::debugreader::DebugReader; -- 2.30.2