summaryrefslogtreecommitdiff
path: root/src/types
diff options
context:
space:
mode:
Diffstat (limited to 'src/types')
-rw-r--r--src/types/extract.rs10
-rw-r--r--src/types/response.rs2
-rw-r--r--src/types/session.rs8
-rw-r--r--src/types/user.rs15
4 files changed, 18 insertions, 17 deletions
diff --git a/src/types/extract.rs b/src/types/extract.rs
index 69c6ed8..7dbf386 100644
--- a/src/types/extract.rs
+++ b/src/types/extract.rs
@@ -22,7 +22,7 @@ impl<S> FromRequestParts<S> for AuthorizedUser where S: Send + Sync {
return Err(ResponseCode::Forbidden.text("No auth token provided"))
};
- let Ok(session) = Session::from_token(&token) else {
+ let Ok(session) = Session::from_token(token) else {
return Err(ResponseCode::Unauthorized.text("Auth token invalid"))
};
@@ -55,16 +55,16 @@ impl<S, B> FromRequest<S, B> for Log where
let uri = req.uri().clone();
let Ok(bytes) = Bytes::from_request(req, state).await else {
- console::log(info.ip().clone(), method.clone(), uri.clone(), Some(path.to_string()), None).await;
+ console::log(info.ip(), method.clone(), uri.clone(), Some(path.to_string()), None).await;
return Ok(Log)
};
let Ok(body) = String::from_utf8(bytes.bytes().flatten().collect()) else {
- console::log(info.ip().clone(), method.clone(), uri.clone(), Some(path.to_string()), None).await;
+ console::log(info.ip(), method.clone(), uri.clone(), Some(path.to_string()), None).await;
return Ok(Log)
};
- console::log(info.ip().clone(), method.clone(), uri.clone(), Some(path.to_string()), Some(body.to_string())).await;
+ console::log(info.ip(), method.clone(), uri.clone(), Some(path.to_string()), Some(body.to_string())).await;
Ok(Log)
}
@@ -101,7 +101,7 @@ impl<T, S, B> FromRequest<S, B> for Json<T> where
return Err(ResponseCode::BadRequest.text("Invalid utf8 body"))
};
- console::log(info.ip().clone(), method.clone(), uri.clone(), Some(path.to_string()), Some(body.to_string())).await;
+ console::log(info.ip(), method.clone(), uri.clone(), Some(path.to_string()), Some(body.to_string())).await;
let Ok(value) = serde_json::from_str::<T>(&body) else {
return Err(ResponseCode::BadRequest.text("Invalid request body"))
diff --git a/src/types/response.rs b/src/types/response.rs
index d10bce9..0c5a78c 100644
--- a/src/types/response.rs
+++ b/src/types/response.rs
@@ -55,7 +55,7 @@ impl ResponseCode {
#[instrument()]
pub async fn file(self, path: &str) -> Response {
- if path.chars().position(|c| c == '.' ).is_none() {
+ if !path.chars().any(|c| c == '.' ) {
return ResponseCode::BadRequest.text("Folders cannot be served");
}
let path = format!("public{}", path);
diff --git a/src/types/session.rs b/src/types/session.rs
index e05dc49..30e430e 100644
--- a/src/types/session.rs
+++ b/src/types/session.rs
@@ -26,14 +26,14 @@ impl Session {
pub fn new(user_id: u64) -> Result<Self> {
let token: String = rand::thread_rng().sample_iter(&Alphanumeric).take(32).map(char::from).collect();
match database::sessions::set_session(user_id, &token) {
- Err(_) => return Err(ResponseCode::BadRequest.text("Failed to create session")),
- Ok(_) => return Ok(Session {user_id, token})
- };
+ Err(_) => Err(ResponseCode::BadRequest.text("Failed to create session")),
+ Ok(_) => Ok(Session {user_id, token})
+ }
}
#[instrument()]
pub fn delete(user_id: u64) -> Result<()> {
- if let Err(_) = database::sessions::delete_session(user_id) {
+ if database::sessions::delete_session(user_id).is_err() {
tracing::error!("Failed to logout user");
return Err(ResponseCode::InternalServerError.text("Failed to logout"));
};
diff --git a/src/types/user.rs b/src/types/user.rs
index 031946a..b26cfd7 100644
--- a/src/types/user.rs
+++ b/src/types/user.rs
@@ -1,6 +1,7 @@
use serde::{Serialize, Deserialize};
use tracing::instrument;
+use crate::api::auth::RegistrationRequet;
use crate::database;
use crate::types::response::{Result, ResponseCode};
@@ -32,12 +33,12 @@ impl User {
#[instrument()]
pub fn from_user_ids(user_ids: Vec<u64>) -> Vec<Self> {
- user_ids.iter().map(|user_id| {
+ user_ids.iter().filter_map(|user_id| {
let Ok(Some(user)) = database::users::get_user_by_id(*user_id, true) else {
return None;
};
Some(user)
- }).flatten().collect()
+ }).collect()
}
#[instrument()]
@@ -67,16 +68,16 @@ impl User {
}
#[instrument()]
- pub fn new(firstname: String, lastname: String, email: String, password: String, gender: String, day: u8, month: u8, year: u32) -> Result<Self> {
- if let Ok(_) = User::from_email(&email) {
- return Err(ResponseCode::BadRequest.text(&format!("Email is already in use by {}", &email)))
+ pub fn new(request: RegistrationRequet) -> Result<Self> {
+ if User::from_email(&request.email).is_ok() {
+ return Err(ResponseCode::BadRequest.text(&format!("Email is already in use by {}", &request.email)))
}
- if let Ok(user) = User::from_password(&password) {
+ if let Ok(user) = User::from_password(&request.password) {
return Err(ResponseCode::BadRequest.text(&format!("Password is already in use by {}", user.email)))
}
- let Ok(user) = database::users::add_user(&firstname, &lastname, &email, &password, &gender, day, month, year) else {
+ let Ok(user) = database::users::add_user(request) else {
tracing::error!("Failed to create new user");
return Err(ResponseCode::InternalServerError.text("Failed to create new uesr"))
};