diff options
Diffstat (limited to 'crates/rocie-server/src/main.rs')
| -rw-r--r-- | crates/rocie-server/src/main.rs | 77 |
1 files changed, 42 insertions, 35 deletions
diff --git a/crates/rocie-server/src/main.rs b/crates/rocie-server/src/main.rs index dc5be0b..caa210d 100644 --- a/crates/rocie-server/src/main.rs +++ b/crates/rocie-server/src/main.rs @@ -26,39 +26,42 @@ use actix_session::{SessionMiddleware, storage::CookieSessionStore}; async fn main() -> Result<(), std::io::Error> { #[derive(OpenApi)] #[openapi( - paths( - api::get::product::product_by_id, - api::get::product::product_by_name, - api::get::product::product_suggestion_by_name, - api::get::product::products_registered, - api::get::product::products_in_storage, - api::get::product::products_by_product_parent_id_indirect, - api::get::product::products_by_product_parent_id_direct, - api::get::product_parent::product_parents, - api::get::product_parent::product_parents_toplevel, - api::get::product_parent::product_parents_under, - api::get::recipe::recipe_by_id, - api::get::recipe::recipes, - api::get::unit::units, - api::get::unit::units_by_property_id, - api::get::unit::unit_by_id, - api::get::unit_property::unit_property_by_id, - api::get::unit_property::unit_properties, - api::get::inventory::amount_by_id, - api::set::product::register_product, - api::set::product::associate_barcode, - api::set::product_parent::register_product_parent, - api::set::recipe::add_recipe, - api::set::unit::register_unit, - api::set::unit_property::register_unit_property, - api::set::barcode::buy_barcode, - api::set::barcode::consume_barcode, + paths( + api::get::auth::product::product_by_id, + api::get::auth::product::product_by_name, + api::get::auth::product::product_suggestion_by_name, + api::get::auth::product::products_registered, + api::get::auth::product::products_in_storage, + api::get::auth::product::products_by_product_parent_id_indirect, + api::get::auth::product::products_by_product_parent_id_direct, + api::get::auth::product_parent::product_parents, + api::get::auth::product_parent::product_parents_toplevel, + api::get::auth::product_parent::product_parents_under, + api::get::auth::recipe::recipe_by_id, + api::get::auth::recipe::recipes, + api::get::auth::unit::units, + api::get::auth::unit::units_by_property_id, + api::get::auth::unit::unit_by_id, + api::get::auth::unit_property::unit_property_by_id, + api::get::auth::unit_property::unit_properties, + api::get::auth::inventory::amount_by_id, + api::get::auth::user::users, + api::get::auth::user::user_by_id, + // + api::set::auth::product::register_product, + api::set::auth::product::associate_barcode, + api::set::auth::product_parent::register_product_parent, + api::set::auth::recipe::add_recipe, + api::set::auth::unit::register_unit, + api::set::auth::unit_property::register_unit_property, + api::set::auth::barcode::buy_barcode, + api::set::auth::barcode::consume_barcode, + api::set::auth::user::register_user, + // + api::set::no_auth::user::login, + api::set::no_auth::user::logout, + api::set::no_auth::user::provision, ), - // security( - // (), - // ("my_auth" = ["read:items", "edit:items"]), - // ("token_jwt" = []) - // ), )] struct ApiDoc; @@ -67,6 +70,7 @@ async fn main() -> Result<(), std::io::Error> { // When using `Key::generate()` it is important to initialize outside of the // `HttpServer::new` closure. When deployed the secret key should be read from a // configuration file or environment variables. + // TODO: Load from a config file. <2025-12-07> let secret_key = Key::generate(); let args = CliArgs::parse(); @@ -91,7 +95,7 @@ async fn main() -> Result<(), std::io::Error> { .wrap(Logger::new( r#"%a "%r" -> %s %b ("%{Referer}i" "%{User-Agent}i" %T s)"#, )) - // Install the identity framework before middle-ware (as actix is filo). + // Install the identity framework before middleware (as actix uses FILO). .wrap(IdentityMiddleware::default()) .wrap( SessionMiddleware::builder( @@ -104,8 +108,10 @@ async fn main() -> Result<(), std::io::Error> { .build(), ) .app_data(Data::clone(&data)) - .configure(api::get::register_paths) - .configure(api::set::register_paths) + .configure(api::get::auth::register_paths) + .configure(api::get::no_auth::register_paths) + .configure(api::set::auth::register_paths) + .configure(api::set::no_auth::register_paths) }) .bind((host, port.unwrap_or(0)))?; @@ -121,6 +127,7 @@ async fn main() -> Result<(), std::io::Error> { } Command::OpenApi => { let openapi = ApiDoc::openapi(); + println!("{}", openapi.to_pretty_json().expect("Comp-time constant")); Ok(()) } |
