soap_tools 0.0.13

a tool for soap
Documentation
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::<()>))
}