// Forked from https://github.com/LlamaEdge/LlamaEdge/blob/6bfe9c12c85bf390c47d6065686caeca700feffa/llama-api-server/src/error.rs
use hyper::{Body, Response};
use tracing::error;
#[allow(dead_code)]
pub(crate) fn not_implemented() -> Response
{
// log error
error!(target: "stdout", "501 Not Implemented");
Response::builder()
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "*")
.header("Access-Control-Allow-Headers", "*")
.status(hyper::StatusCode::NOT_IMPLEMENTED)
.body(Body::from("501 Not Implemented"))
.unwrap()
}
pub(crate) fn internal_server_error(msg: impl AsRef) -> Response {
let err_msg = match msg.as_ref().is_empty() {
true => "500 Internal Server Error".to_string(),
false => format!("500 Internal Server Error: {}", msg.as_ref()),
};
// log error
error!(target: "stdout", "{}", &err_msg);
Response::builder()
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "*")
.header("Access-Control-Allow-Headers", "*")
.status(hyper::StatusCode::INTERNAL_SERVER_ERROR)
.body(Body::from(err_msg))
.unwrap()
}
pub(crate) fn bad_request(msg: impl AsRef) -> Response {
let err_msg = match msg.as_ref().is_empty() {
true => "400 Bad Request".to_string(),
false => format!("400 Bad Request: {}", msg.as_ref()),
};
// log error
error!(target: "stdout", "{}", &err_msg);
Response::builder()
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "*")
.header("Access-Control-Allow-Headers", "*")
.status(hyper::StatusCode::BAD_REQUEST)
.body(Body::from(err_msg))
.unwrap()
}
pub(crate) fn invalid_endpoint(msg: impl AsRef) -> Response {
let err_msg = match msg.as_ref().is_empty() {
true => "404 The requested service endpoint is not found".to_string(),
false => format!(
"404 The requested service endpoint is not found: {}",
msg.as_ref()
),
};
// log error
error!(target: "stdout", "{}", &err_msg);
Response::builder()
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "*")
.header("Access-Control-Allow-Headers", "*")
.status(hyper::StatusCode::NOT_FOUND)
.body(Body::from(err_msg))
.unwrap()
}