Struct rocketjson_data::api::response_err::ApiResponseErr [−][src]
Expand description
Is returned by enpoints to achieve a Json response success or failure
Returned can be errors in [ApiErrors
]. with ApiResponseErr.err(...)
.
To forward Errors as ApiResponseErr
rjtry
can be used.
Example
pub async fn db_get_users() -> Result<String, diesel::result::Error> {
...
}
pub async fn is_admin() -> ApiResponseErr<bool> {
let user = rjtry!(db_get_users().await);
user == "admin"
}
#[derive(serde::Deserialize, validator::Validate, rocketjson::JsonBody)]
pub struct LoginRequest {
#[validate(length(min = 1))]
username: String,
#[validate(length(min = 1))]
password: String
}
#[derive(serde::Serialize)]
pub struct LoginResponse {
message: String
}
#[post("/login", data="<data>")]
pub fn login(data: LoginRequest) -> rocketjson::ApiResponseErr<LoginResponse> {
if data.username == "admin" && data.password == "admin" {
return rocketjson::ApiResponseErr::ok(
rocket::http::Status::Ok,
LoginResponse{ message: "logged in" }
);
}
return rocketjson::ApiResponseErr::api_err(rocket::http::Status::InternalServerError, String::from("login failed"))
}
- Input
{
"username": "admin",
"password": "admin"
}
- Output (200 OK)
{
"message": "logged in"
}
- Input
{
"username": "test",
"password": "test"
}
- Output (500 Internal Server Error)
{
"error": "login failed"
}
Fields
json: Result<Json<T>, ApiErrors>
This is the Json-data sent to the client
status: Option<Status>
This is the Statuscode sent to the client, it is not included in the Json
Implementations
Trait Implementations
Returns Ok
if a Response
could be generated successfully. Otherwise,
returns an Err
with a failing Status
. Read more
Auto Trait Implementations
impl<T> !RefUnwindSafe for ApiResponseErr<T>
impl<T> Send for ApiResponseErr<T> where
T: Send,
impl<T> Sync for ApiResponseErr<T> where
T: Sync,
impl<T> Unpin for ApiResponseErr<T> where
T: Unpin,
impl<T> !UnwindSafe for ApiResponseErr<T>
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
pub fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
Converts self
into a collection.
Convert self
to an expression for Diesel’s query builder. Read more
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression where
&'a Self: AsExpression<T>,
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression where
&'a Self: AsExpression<T>,
Convert &self
to an expression for Diesel’s query builder. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more