mirror of
https://gitlab.com/comunic/comunicapiv3
synced 2024-11-29 16:56:28 +00:00
Fix returned error in case of bad login tokens
This commit is contained in:
parent
399900077f
commit
89d5eac02b
@ -15,43 +15,33 @@ pub struct HttpError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl HttpError {
|
impl HttpError {
|
||||||
/// Generate a 404 error
|
/// Construct a new custom error
|
||||||
pub fn not_found(message: &str) -> HttpError {
|
pub fn new(code: u16, message: &str) -> HttpError {
|
||||||
HttpError {
|
HttpError {
|
||||||
error: InnerHTTPError {
|
error: InnerHTTPError {
|
||||||
code: 404,
|
code,
|
||||||
message: message.to_string(),
|
message: message.to_string(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Generate a 404 error
|
||||||
|
pub fn not_found(message: &str) -> HttpError {
|
||||||
|
HttpError::new(404, message)
|
||||||
|
}
|
||||||
|
|
||||||
/// Generate a 500 error
|
/// Generate a 500 error
|
||||||
pub fn internal_error(message: &str) -> HttpError {
|
pub fn internal_error(message: &str) -> HttpError {
|
||||||
HttpError {
|
HttpError::new(500, message)
|
||||||
error: InnerHTTPError {
|
|
||||||
code: 500,
|
|
||||||
message: message.to_string(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Generate a 400 error
|
/// Generate a 400 error
|
||||||
pub fn bad_request(message: &str) -> HttpError {
|
pub fn bad_request(message: &str) -> HttpError {
|
||||||
HttpError {
|
HttpError::new(400, message)
|
||||||
error: InnerHTTPError {
|
|
||||||
code: 400,
|
|
||||||
message: message.to_string(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Generate a 401 error
|
/// Generate a 401 error
|
||||||
pub fn forbidden(message: &str) -> HttpError {
|
pub fn forbidden(message: &str) -> HttpError {
|
||||||
HttpError {
|
HttpError::new(401, message)
|
||||||
error: InnerHTTPError {
|
|
||||||
code: 401,
|
|
||||||
message: message.to_string(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,16 +1,18 @@
|
|||||||
use actix_web::{web, HttpRequest, HttpResponse};
|
|
||||||
use crate::controllers::routes::RequestResult;
|
|
||||||
use std::error::Error;
|
|
||||||
use serde::Serialize;
|
|
||||||
use crate::data::error::{ResultBoxError, ExecError};
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use crate::helpers::{api_helper, account_helper};
|
use std::error::Error;
|
||||||
use actix_web::http::{HeaderName, HeaderValue};
|
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use crate::data::config::conf;
|
|
||||||
use crate::data::api_client::APIClient;
|
use actix_web::{HttpRequest, HttpResponse, web};
|
||||||
|
use actix_web::http::{HeaderName, HeaderValue};
|
||||||
|
use serde::Serialize;
|
||||||
|
|
||||||
use crate::api_data::http_error::HttpError;
|
use crate::api_data::http_error::HttpError;
|
||||||
|
use crate::controllers::routes::RequestResult;
|
||||||
|
use crate::data::api_client::APIClient;
|
||||||
|
use crate::data::config::conf;
|
||||||
|
use crate::data::error::{ExecError, ResultBoxError};
|
||||||
use crate::data::user::UserID;
|
use crate::data::user::UserID;
|
||||||
|
use crate::helpers::{account_helper, api_helper};
|
||||||
|
|
||||||
/// Http request handler
|
/// Http request handler
|
||||||
///
|
///
|
||||||
@ -217,14 +219,22 @@ impl HttpRequestHandler {
|
|||||||
let token = self.post_string("userToken1")?;
|
let token = self.post_string("userToken1")?;
|
||||||
|
|
||||||
// Find user
|
// Find user
|
||||||
let user_id = self.ok_or_bad_request(
|
match account_helper::get_user_by_login_token(&token, self.api_client()) {
|
||||||
account_helper::get_user_by_login_token(&token, self.api_client()),
|
Ok(id) => {
|
||||||
"Please check your login tokens!")?;
|
self.curr_user_id = Some(id);
|
||||||
|
|
||||||
self.curr_user_id = Some(user_id);
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
Err(e) => {
|
||||||
|
println!("Error marking login tokens as invalid: {}", e);
|
||||||
|
self.response = Some(
|
||||||
|
actix_web::HttpResponse::
|
||||||
|
build(actix_web::http::StatusCode::from_u16(412)?)
|
||||||
|
.json(HttpError::new(412, "Please check your login tokens!")));
|
||||||
|
Err(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Get user ID. This function assess that a user ID is available to continue
|
/// Get user ID. This function assess that a user ID is available to continue
|
||||||
pub fn user_id(&self) -> ResultBoxError<UserID> {
|
pub fn user_id(&self) -> ResultBoxError<UserID> {
|
||||||
|
Loading…
Reference in New Issue
Block a user