use axum::{
Extension,
response::{IntoResponse, Response},
};
use crate::http::{problem::Problem, request_id::RequestId};
pub(crate) async fn not_found(request_id: Option<Extension<RequestId>>) -> Response {
attach_id(Problem::not_found(), request_id)
}
pub(crate) async fn method_not_allowed(request_id: Option<Extension<RequestId>>) -> Response {
attach_id(Problem::method_not_allowed("GET"), request_id)
}
fn attach_id(problem: Problem, request_id: Option<Extension<RequestId>>) -> Response {
match request_id {
Some(Extension(RequestId(id))) => problem.with_request_id(id),
None => problem,
}
.into_response()
}