diff --git a/src/webui/index_views.rs b/src/webui/index_views.rs index 7ca99be..b612559 100644 --- a/src/webui/index_views.rs +++ b/src/webui/index_views.rs @@ -57,7 +57,7 @@ pub async fn index(req: HttpRequest, let mut service_factory = ReadOnlyServiceFactory::new(&mut conn); let authentication_service = service_factory.get_authentication_service().unwrap(); - let userid = authentication_service.get_login(& req);; + let userid = authentication_service.get_login(& req); let username = userid.clone().unwrap_or("".to_string()); let ctx = context!{ is_logged_in => userid.is_some(), diff --git a/src/webui/mod.rs b/src/webui/mod.rs index 3b5b0b9..fcecec6 100644 --- a/src/webui/mod.rs +++ b/src/webui/mod.rs @@ -3,13 +3,7 @@ use std::{env, path::PathBuf}; use actix_files; -use actix_web::{ - dev::ServiceResponse, - error, - http::{header::ContentType, StatusCode}, - middleware::{ErrorHandlerResponse, ErrorHandlers, Logger}, - web, App, FromRequest, HttpRequest, HttpResponse, HttpServer, Responder, Result, -}; +use actix_web::{dev::ServiceResponse, error, http::{header::ContentType, StatusCode}, middleware::{ErrorHandlerResponse, ErrorHandlers, Logger}, web, App, FromRequest, HttpRequest, HttpResponse, HttpServer, Responder, Result, Scope}; use actix_web_lab::respond::Html; use async_channel; use futures::{pin_mut, select, FutureExt}; @@ -19,13 +13,12 @@ use rusqlite::Connection; use crate::events::Event; use crate::util::{CustomResult, Error, SQLiteConnectionFactory}; -use crate::webui::worker::{bob, event_processor_loop}; +use crate::webui::worker::{event_processor_loop}; -mod views; -mod worker; mod index_views; mod services; - +mod views; +mod worker; struct MiniJinjaRenderer { tmpl_env: web::Data, @@ -77,6 +70,28 @@ fn create_auto_reloader(enable_template_autoreload: bool) -> AutoReloader { }) } +fn create_static_scope() -> Scope { + web::scope("/static").service( + actix_files::Files::new("/", "./resources/static/")) +} + +fn create_api_scope() -> Scope { + web::scope("/v1") + .service(views::push_event) +} + +fn create_views_scope() -> Scope { + web::scope("") + .service(index_views::index) + .service(index_views::login) + .service(index_views::logout) + .service(views::actions) + .service(views::accounts) + .service(views::overview) + .service(views::overview_submit_button) + .service(views::actions_partials) +} + #[tokio::main] pub async fn web_ui_main( conn_fact: SQLiteConnectionFactory, @@ -100,18 +115,9 @@ pub async fn web_ui_main( .app_data(tmpl_reloader.clone()) .app_data(web::Data::new(event_sender.clone())) .app_data(web::Data::new(cloned_conn_fact.clone())) - .service( - actix_files::Files::new("/static", "./resources/static/").use_last_modified(true), - ) - .service(index_views::index) - .service(index_views::login) - .service(index_views::logout) - .service(views::actions) - .service(views::accounts) - .service(views::overview) - .service(views::overview_submit_button) - .service(views::actions_partials) - .service(views::push_event) + .service(create_static_scope()) + .service(create_api_scope()) + .service(create_views_scope()) .wrap(ErrorHandlers::new().handler(StatusCode::NOT_FOUND, not_found)) .wrap(Logger::default()) }) @@ -121,13 +127,11 @@ pub async fn web_ui_main( let t1 = server.run().fuse(); let t2 = event_processor_loop(conn_fact, event_receiver).fuse(); - let t3 = bob().fuse(); - pin_mut!(t1, t2, t3); + pin_mut!(t1, t2); select! { x = t1 => x.map_err(Error::IOError), y = t2 => y, - z = t3 => z, } } diff --git a/src/webui/views.rs b/src/webui/views.rs index ce0528a..f6533e5 100644 --- a/src/webui/views.rs +++ b/src/webui/views.rs @@ -72,7 +72,7 @@ struct CreateEventPayload { event_type: String, } -#[actix_web::post("/v1/events/{event_type}")] +#[actix_web::post("/events/{event_type}")] pub async fn push_event( req: HttpRequest, tmpl_env: MiniJinjaRenderer, diff --git a/src/webui/worker.rs b/src/webui/worker.rs index 585d98c..73c8565 100644 --- a/src/webui/worker.rs +++ b/src/webui/worker.rs @@ -26,9 +26,3 @@ pub async fn event_processor_loop( } } -pub async fn bob() -> CustomResult<()> { - loop { - sleep(Duration::from_millis(1000)).await; - // println!("100 ms have elapsed"); - } -}