Struct rocketjson_data::api::response_err::ApiResponseErr
source · [−]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
sourceimpl<T: Debug> Debug for ApiResponseErr<T>
impl<T: Debug> Debug for ApiResponseErr<T>
sourceimpl<'r, T> Responder<'r, 'static> for ApiResponseErr<T> where
T: Serialize,
impl<'r, T> Responder<'r, 'static> for ApiResponseErr<T> where
T: Serialize,
sourcefn respond_to(self, req: &'r Request<'_>) -> Result<'static>
fn respond_to(self, req: &'r Request<'_>) -> Result<'static>
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> IntoCollection<T> for T
impl<T> IntoCollection<T> for T
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
fn into_collection<A>(self) -> SmallVec<A> where
A: Array<Item = T>,
Converts self
into a collection.
fn mapped<U, F, A>(self, f: F) -> SmallVec<A> where
F: FnMut(T) -> U,
A: Array<Item = U>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more