diff options
| author | Fuwn <[email protected]> | 2020-10-30 12:58:50 -0700 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2020-10-30 12:58:50 -0700 |
| commit | 3ca642734629b108ece241ea9644f5ed1ee339cb (patch) | |
| tree | 515fc5c33c62eb4ab970f3d3e5bb7f40ff417df1 /src/webserver | |
| parent | chore: change cc env vars file type, (md -> txt) (diff) | |
| download | dep-core-next-3ca642734629b108ece241ea9644f5ed1ee339cb.tar.xz dep-core-next-3ca642734629b108ece241ea9644f5ed1ee339cb.zip | |
feat (desc)
feat:
- add `Procfile` and `app.json` to "prep" for heroku (probably not going to go to heroku though).
- implement a plugin system and enable `random_hi` plugin.
- move webserver to seperate location
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\"}") +} |