From 47d13a8540d0d093a73a81265ede1154ec083911 Mon Sep 17 00:00:00 2001 From: Kevin J Hoerr Date: Mon, 27 Aug 2018 23:22:53 -0400 Subject: Replace error_chain with failure; return JSON object for callback api --- src/routes/messages.rs | 19 +++++++++++++++++++ src/routes/mod.rs | 26 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/routes/messages.rs create mode 100644 src/routes/mod.rs (limited to 'src/routes') diff --git a/src/routes/messages.rs b/src/routes/messages.rs new file mode 100644 index 0000000..694a2a2 --- /dev/null +++ b/src/routes/messages.rs @@ -0,0 +1,19 @@ +use std::collections::HashMap; + +trait Content {} + +trait Message { + fn name(&self) -> String; +} + +#[derive(Serialize)] +pub struct Callback { + pub path: Vec, + pub request: HashMap, +} + +impl Message for Callback { + fn name(&self) -> String { + String::from("Callback") + } +} \ No newline at end of file diff --git a/src/routes/mod.rs b/src/routes/mod.rs new file mode 100644 index 0000000..3d11a8b --- /dev/null +++ b/src/routes/mod.rs @@ -0,0 +1,26 @@ +use actix_web::{HttpRequest, Json, Result, Responder}; +use std::ops::Deref; + +pub mod messages; +use messages::*; + +pub fn not_understood(_req: &HttpRequest) -> impl Responder { + "Hello, world!" +} + +pub fn callback(req: &HttpRequest) -> Result> { + let path = String::from(req.path()); + let request = (*(req.query().deref())).clone(); + + Ok(Json(Callback { + path: destruct_path(path), + request: request, + })) +} + +fn destruct_path(path: String) -> Vec { + path.split_terminator("/") + .skip(1) + .map(|s| String::from(s)) + .collect::>() +} \ No newline at end of file -- cgit