Add endpoint to get sales_person for current user

This commit is contained in:
Simon Goller 2024-06-12 12:04:41 +02:00
parent 42ebce15e8
commit bd887cfd7b
12 changed files with 108 additions and 5 deletions

View file

@ -45,7 +45,7 @@ pub async fn get_all_bookings<RestState: RestStateDef>(
pub async fn get_by_week<RestState: RestStateDef>(
rest_state: State<RestState>,
Extension(context): Extension<Context>,
Path((calendar_week, year)): Path<(i32, u32)>,
Path((year, calendar_week)): Path<(u32, u8)>,
) -> Response {
error_handler(
(async {

View file

@ -21,6 +21,7 @@ pub fn generate_route<RestState: RestStateDef>() -> Router<RestState> {
.route("/:id/user", get(get_sales_person_user::<RestState>))
.route("/:id/user", post(set_sales_person_user::<RestState>))
.route("/:id/user", delete(delete_sales_person_user::<RestState>))
.route("/current", get(get_sales_person_current_user::<RestState>))
}
pub async fn get_all_sales_persons<RestState: RestStateDef>(
@ -184,3 +185,24 @@ pub async fn delete_sales_person_user<RestState: RestStateDef>(
.await,
)
}
pub async fn get_sales_person_current_user<RestState: RestStateDef>(
rest_state: State<RestState>,
Extension(context): Extension<Context>,
) -> Response {
error_handler(
(async {
let sales_person = rest_state
.sales_person_service()
.get_sales_person_current_user(context.into())
.await?
.map(|sales_person| SalesPersonTO::from(&sales_person));
Ok(Response::builder()
.status(200)
.body(Body::new(serde_json::to_string(&sales_person).unwrap()))
.unwrap())
})
.await,
)
}