dogy_backend_api/service/users/
routes.rs1use axum::{middleware, routing::get, routing::patch, Router};
2
3use crate::{
4 middleware::auth::layer::{auth_middleware, get_internal_id},
5 AppState,
6};
7
8use super::handlers::{
9 create_user, delete_user, get_user, update_user_base, update_user_notification,
10 update_user_subscription,
11};
12
13pub async fn user_routes(app_state: AppState) -> Router<AppState> {
14 Router::new()
15 .route(
16 "/",
17 get(get_user)
18 .delete(delete_user)
19 .patch(update_user_base)
20 .route_layer(middleware::from_fn_with_state(
21 app_state.clone(),
22 get_internal_id,
23 ))
24 .post(create_user),
25 )
26 .route(
27 "/subscriptions",
28 patch(update_user_subscription).route_layer(middleware::from_fn_with_state(
29 app_state.clone(),
30 get_internal_id,
31 )),
32 )
33 .route(
34 "/notifications",
35 patch(update_user_notification)
36 .route_layer(middleware::from_fn_with_state(app_state, get_internal_id)),
37 )
38 .route_layer(middleware::from_fn(auth_middleware))
39}
40
41pub async fn root_user_routes(app_state: AppState) -> Router<AppState> {
42 Router::new().nest("/users", user_routes(app_state).await)
43}