From 32ee49ed08d296dd1d4a7a229adab7d54a6e1225 Mon Sep 17 00:00:00 2001 From: shockrah Date: Mon, 10 Aug 2020 22:34:26 -0700 Subject: [PATCH] adding some dynamic route basees new feature to check for open routes --- server/src/routes.rs | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/server/src/routes.rs b/server/src/routes.rs index 054c839..b27b106 100644 --- a/server/src/routes.rs +++ b/server/src/routes.rs @@ -1,4 +1,3 @@ -pub const INVITE_JOIN: &'static str = "/invite/join"; // requires @code pub const INVITE_CREATE: &'static str = "/invite/create"; // requires none pub const CHANNELS_LIST: &'static str = "/channels/list"; // requires none @@ -7,8 +6,13 @@ pub const CHANNELS_DELETE: &'static str = "/channels/delete"; // requires @name pub const MESSAGE_SEND: &'static str = "/message/send"; // requires @content -const DYNAMIC_ROUTE_BASES: [&'static str;1] = [ - "/invites", +pub const SERVER_META: &'static str = "/meta"; // open + +// potentially adding more bases later +const DYNAMIC_ROUTE_BASES: [(&'static str, bool);3] = [ + ("/join", true), // open + ("/public", true), // open : valid sections := neighbors|rules|description + ("/user", false), // TODO: valid sections := /meta/|/dm/ ]; pub struct DynRoute { @@ -21,9 +25,9 @@ pub fn resolve_dynamic_route(uri: &str) -> Option { let mut valid = false; let mut base_ref = ""; for base in DYNAMIC_ROUTE_BASES.iter() { - if uri.starts_with(base) { + if uri.starts_with(base.0) { valid = true; - base_ref = base; + base_ref = base.0; break; } } @@ -37,3 +41,15 @@ pub fn resolve_dynamic_route(uri: &str) -> Option { None } } + +pub fn is_open(path: &str) -> bool { + let mut ret = false; + ret = path == SERVER_META; + for route in DYNAMIC_ROUTE_BASES.iter() { + if route.1 == true || ret == true{ + ret = true; + break; + } + } + return ret; +}