use actix_web::HttpResponse;
use serde::Serialize;
pub fn create_response<T: Serialize>(status: u16, message: String, data: Option<T>) -> serde_json::Value {
match data {
Some(data) => serde_json::json!({
"status": status,
"message": message,
"data": data
}),
None => serde_json::json!({
"status": status,
"message": message
})
}
}
pub fn response_ok<T: Serialize>(data: T) -> HttpResponse {
HttpResponse::Ok().json(create_response(0, "ok".to_string(), Some(data)))
}
pub fn response_empty_ok() -> HttpResponse {
HttpResponse::Ok().json(create_response(0, "ok".to_string(), None::<()>))
}
pub fn response_error(status: u16, err: String) -> HttpResponse {
HttpResponse::Ok().json(create_response(status, err, None::<()>))
}
pub fn response_exception(err: String) -> HttpResponse {
HttpResponse::Ok().json(create_response(4001, err, None::<()>))
}