1098df8
ZhenYi
refactor: streamline context handling by replacing space and repo name parameters with context references for improved clarity and consistency
1098df8
use actix_web::http::StatusCode;
use export::http::Response;
use maud::html;
pub fn html_err(code: u16, msg: &str) -> Response {
let safe_msg = match code {
401 => "auth required",
403 => "forbidden",
404 => "not found",
504 => "timeout",
_ => "internal",
};
let display_msg = if msg.is_empty() { safe_msg } else { msg };
let markup = html! {
div class="git-err rounded border border-red-200 bg-red-50 p-3 text-sm text-red-700"
data-code=(code) data-component="git-err" role="alert" {
(display_msg)
}
};
let body = markup.into_string();
let status = StatusCode::from_u16(code).unwrap_or(StatusCode::INTERNAL_SERVER_ERROR);
let mut resp = actix_web::HttpResponse::build(status).body(body);
resp.headers_mut().insert(
actix_web::http::header::CONTENT_TYPE,
"text/html; charset=utf-8".parse().unwrap(),
);
resp.headers_mut().insert(
actix_web::http::header::CACHE_CONTROL,
"no-store".parse().unwrap(),
);
resp.headers_mut()
.insert(actix_web::http::header::VARY, "Cookie".parse().unwrap());
if status == StatusCode::UNAUTHORIZED {
resp.headers_mut().insert(
actix_web::http::header::WWW_AUTHENTICATE,
"Basic realm=\"gitdata\"".parse().unwrap(),
);
}
resp
}
pub fn err_archived() -> String {
String::new()
}