mirror of
https://github.com/nitnelave/lldap.git
synced 2023-04-12 14:25:13 +00:00
Add a route to server user details
This commit is contained in:
parent
b0c721bb28
commit
5a3332430f
@ -5,7 +5,7 @@ use crate::{
|
||||
tcp_server::{error_to_http_response, AppState},
|
||||
},
|
||||
};
|
||||
use actix_web::{web, HttpResponse};
|
||||
use actix_web::{web, HttpRequest, HttpResponse};
|
||||
|
||||
pub(crate) fn error_to_api_response<T>(error: DomainError) -> ApiResult<T> {
|
||||
ApiResult::Right(error_to_http_response(error))
|
||||
@ -28,6 +28,23 @@ where
|
||||
.unwrap_or_else(error_to_api_response)
|
||||
}
|
||||
|
||||
async fn user_details_handler<Backend>(
|
||||
data: web::Data<AppState<Backend>>,
|
||||
request: HttpRequest,
|
||||
) -> ApiResult<User>
|
||||
where
|
||||
Backend: TcpBackendHandler + BackendHandler + 'static,
|
||||
{
|
||||
let request = UserDetailsRequest {
|
||||
user_id: request.match_info().get("user_id").unwrap().to_string(),
|
||||
};
|
||||
data.backend_handler
|
||||
.get_user_details(request)
|
||||
.await
|
||||
.map(|res| ApiResult::Left(web::Json(res)))
|
||||
.unwrap_or_else(error_to_api_response)
|
||||
}
|
||||
|
||||
async fn create_user_handler<Backend>(
|
||||
data: web::Data<AppState<Backend>>,
|
||||
info: web::Json<CreateUserRequest>,
|
||||
@ -59,9 +76,16 @@ where
|
||||
.into()
|
||||
});
|
||||
cfg.app_data(json_config);
|
||||
cfg.service(web::resource("/users").route(web::post().to(user_list_handler::<Backend>)));
|
||||
cfg.service(
|
||||
web::resource("/users/create").route(web::post().to(create_user_handler::<Backend>)),
|
||||
web::resource("/user/{user_id}").route(web::get().to(user_details_handler::<Backend>)),
|
||||
);
|
||||
cfg.service(
|
||||
web::scope("/users")
|
||||
.guard(actix_web::guard::Header("content-type", "application/json"))
|
||||
.service(web::resource("").route(web::post().to(user_list_handler::<Backend>)))
|
||||
.service(
|
||||
web::resource("/create").route(web::post().to(create_user_handler::<Backend>)),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,6 @@ fn http_config<Backend>(
|
||||
auth_service::token_validator::<Backend>,
|
||||
))
|
||||
.wrap(auth_service::CookieToHeaderTranslatorFactory)
|
||||
.guard(actix_web::guard::Header("content-type", "application/json"))
|
||||
.configure(tcp_api::api_config::<Backend>),
|
||||
)
|
||||
// Serve the /pkg path with the compiled WASM app.
|
||||
|
Loading…
Reference in New Issue
Block a user