diff options
Diffstat (limited to 'server/src/routes/mod.rs')
-rw-r--r-- | server/src/routes/mod.rs | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/server/src/routes/mod.rs b/server/src/routes/mod.rs index 332b4c5..f707a60 100644 --- a/server/src/routes/mod.rs +++ b/server/src/routes/mod.rs @@ -1,20 +1,40 @@ -use crate::AppState; -use rocket::{catchers, routes, Build, Rocket}; +use crate::{database::Database, library::Library, CONF}; +use jellyremuxer::RemuxerContext; +use rocket::{catchers, config::SecretKey, routes, Build, Config, Rocket}; use stream::r_stream; -use ui::account::{r_account_login, r_account_register, r_account_register_post}; -use ui::error::r_not_found; -use ui::home::r_home; -use ui::node::{r_item_assets, r_library_node}; -use ui::player::r_player; -use ui::style::{r_assets_font, r_assets_js, r_assets_style}; +use ui::{ + account::{r_account_login, r_account_login_post, r_account_register, r_account_register_post}, + error::r_catch, + home::r_home, + node::{r_item_assets, r_library_node}, + player::r_player, + style::{r_assets_font, r_assets_js, r_assets_style}, +}; pub mod stream; pub mod ui; -pub fn build_rocket(state: AppState) -> Rocket<Build> { +#[macro_export] +macro_rules! uri { + ($kk:tt) => { + &rocket::uri!($kk).to_string() + }; +} + +pub fn build_rocket( + remuxer: RemuxerContext, + library: Library, + database: Database, +) -> Rocket<Build> { rocket::build() - .manage(state) - .register("/", catchers![r_not_found]) + .configure(Config { + secret_key: SecretKey::derive_from(CONF.cookie_key.as_bytes()), + ..Default::default() + }) + .manage(remuxer) + .manage(library) + .manage(database) + .register("/", catchers![r_catch]) .mount( "/", routes![ @@ -26,6 +46,7 @@ pub fn build_rocket(state: AppState) -> Rocket<Build> { r_stream, r_player, r_account_login, + r_account_login_post, r_account_register, r_account_register_post, r_item_assets, |