diff options
Diffstat (limited to 'src/webserver')
| -rw-r--r-- | src/webserver/mod.rs | 2 | ||||
| -rw-r--r-- | src/webserver/model.rs | 15 | ||||
| -rw-r--r-- | src/webserver/rocket.rs | 24 |
3 files changed, 41 insertions, 0 deletions
diff --git a/src/webserver/mod.rs b/src/webserver/mod.rs new file mode 100644 index 0000000..526a59d --- /dev/null +++ b/src/webserver/mod.rs @@ -0,0 +1,2 @@ +pub mod model; +pub mod rocket; diff --git a/src/webserver/model.rs b/src/webserver/model.rs new file mode 100644 index 0000000..260f1f5 --- /dev/null +++ b/src/webserver/model.rs @@ -0,0 +1,15 @@ +use serenity::framework::standard::Command; +use serenity::prelude::Mutex; +use std::collections::HashMap; +use std::sync::Arc; +use typemap::TypeMap; + +pub type WispResult<T = ()> = Result<T, Box<dyn std::error::Error + Send + Sync>>; +pub type CommandMap = HashMap<String, dyn Command>; + +#[derive(Clone)] +pub struct WispData { + // pub writer: Arc<Mutex<Writer>>, + // pub commands: CommandMap, + pub data: Arc<Mutex<TypeMap>> +} diff --git a/src/webserver/rocket.rs b/src/webserver/rocket.rs new file mode 100644 index 0000000..ac7401b --- /dev/null +++ b/src/webserver/rocket.rs @@ -0,0 +1,24 @@ +use rocket::response::content; +use rocket::{State, get, post, request::Form, routes}; +use rocket::response::NamedFile; +// use std::sync::Arc; +use crate::webserver::model::*; + +pub async fn start_rocket() -> WispResult { // ctx: WispData + rocket::ignite() + .mount("/", routes![ + icon, index + ]).launch(); + + Ok(()) +} + +#[get("/favicon.ico")] +pub fn icon() -> Option<NamedFile> { + NamedFile::open("static/favicon.ico").ok() +} + +#[get("/")] +pub fn index() -> content::Json<&'static str> { + content::Json("{\"message\": \"online\"}") +} |