improve code with clippy

This commit is contained in:
2023-03-23 10:26:18 +01:00
parent 31258bdf15
commit de35247c76
13 changed files with 47 additions and 2187 deletions

View File

@ -16,15 +16,14 @@ pub struct Model {
impl Model {
pub async fn find_or_create_day(date: chrono::NaiveDate, db: &DatabaseConnection) -> Model {
let day = Entity::find_by_id(date).one(db).await.unwrap();
match day {
Some(day) => day,
None => {
let new_day = ActiveModel {
day: Set(date),
..Default::default()
};
new_day.insert(db).await.unwrap()
}
if let Some(day) = day {
day
} else {
let new_day = ActiveModel {
day: Set(date),
..Default::default()
};
new_day.insert(db).await.unwrap()
}
}
}

View File

@ -30,29 +30,28 @@ impl Model {
.await
.unwrap();
match user {
Some(user) => user,
None => {
let user = ActiveModel {
name: Set(name.into()),
..Default::default()
};
log::info!("User {:?} created", user);
user.insert(db).await.unwrap()
}
if let Some(user) = user {
user
} else {
let user = ActiveModel {
name: Set(name.into()),
..Default::default()
};
log::info!("User {:?} created", user);
user.insert(db).await.unwrap()
}
}
}
#[derive(Debug)]
pub enum UserError {
pub enum Error {
NoCookieSet,
NoAdmin,
}
#[rocket::async_trait]
impl<'r> FromRequest<'r> for Model {
type Error = UserError;
type Error = Error;
async fn from_request(req: &'r Request<'_>) -> request::Outcome<Self, Self::Error> {
match req.cookies().get_private("name") {
@ -62,14 +61,14 @@ impl<'r> FromRequest<'r> for Model {
let user = Model::find_or_create_user(name, db.await.unwrap().inner()).await;
Outcome::Success(user)
}
None => Outcome::Failure((Status::Unauthorized, UserError::NoCookieSet)),
None => Outcome::Failure((Status::Unauthorized, Error::NoCookieSet)),
}
}
}
#[rocket::async_trait]
impl<'r> FromRequest<'r> for AdminUser {
type Error = UserError;
type Error = Error;
async fn from_request(req: &'r Request<'_>) -> request::Outcome<Self, Self::Error> {
match req.cookies().get_private("name") {
@ -80,10 +79,10 @@ impl<'r> FromRequest<'r> for AdminUser {
if user.is_admin {
Outcome::Success(AdminUser(user))
} else {
Outcome::Failure((Status::Unauthorized, UserError::NoAdmin))
Outcome::Failure((Status::Unauthorized, Error::NoAdmin))
}
}
None => Outcome::Failure((Status::Unauthorized, UserError::NoCookieSet)),
None => Outcome::Failure((Status::Unauthorized, Error::NoCookieSet)),
}
}
}

View File

@ -93,8 +93,8 @@ async fn savename(
db: &State<DatabaseConnection>,
) -> Flash<Redirect> {
let user = user::Model::find_or_create_user(&name.name, db.inner()).await;
match user.pw {
Some(pw) => match &name.pw {
if let Some(pw) = user.pw {
match &name.pw {
Some(entered_pw) => {
let mut hasher = Sha3_256::new();
hasher.update(entered_pw);
@ -116,12 +116,11 @@ async fn savename(
);
Flash::error(Redirect::to("/name"), "Benutzer besitzt hat Passwort, du hast jedoch keines eingegeben. Bitte nochmal probieren")
}
},
None => {
log::info!("{} hat sich erfolgreich eingeloggt (ohne PW)", name.name);
cookies.add_private(Cookie::new("name", name.name.clone()));
Flash::success(Redirect::to("/"), "Name erfolgreich ausgewählt")
}
} else {
log::info!("{} hat sich erfolgreich eingeloggt (ohne PW)", name.name);
cookies.add_private(Cookie::new("name", name.name.clone()));
Flash::success(Redirect::to("/"), "Name erfolgreich ausgewählt")
}
}

View File

@ -27,15 +27,12 @@ async fn create(db: &State<DatabaseConnection>, day: Form<DayForm>) -> Redirect
.one(db.inner())
.await
.unwrap();
match day {
Some(day) => {
log::info!("{:?} got updated to {:?}", day, new_day);
new_day.update(db.inner()).await.unwrap(); //TODO: fixme
}
None => {
log::info!("{:?} got inserted", new_day);
new_day.insert(db.inner()).await.unwrap(); //TODO: fixme
}
if let Some(day) = day {
log::info!("{:?} got updated to {:?}", day, new_day);
new_day.update(db.inner()).await.unwrap(); //TODO: fixme
} else {
log::info!("{:?} got inserted", new_day);
new_day.insert(db.inner()).await.unwrap(); //TODO: fixme
}
Redirect::to("/")

View File

@ -3,7 +3,7 @@ use rocket::{
response::{Flash, Redirect},
Route, State,
};
use sea_orm::{ActiveModelTrait, ColumnTrait, DatabaseConnection, EntityTrait, QueryFilter, Set};
use sea_orm::{ActiveModelTrait, DatabaseConnection, EntityTrait, Set};
use crate::models::{day, trip, user};
@ -64,23 +64,19 @@ async fn register(
day: Set(day.clone()),
user_id: Set(user.id),
begin: Set(register.time.clone()),
cox_id: Set(register.cox_id.clone()),
cox_id: Set(register.cox_id),
..Default::default()
};
match trip.insert(db.inner()).await {
Ok(_) => {
log::info!("{} registered for {:?}", user.name, day);
Flash::success(Redirect::to("/"), "Erfolgreich angemeldet!")
}
Err(_) => {
log::warn!(
"{} tried to register for {:?}, but is already registered",
user.name,
day
);
Flash::error(Redirect::to("/"), "Du bist bereits angemeldet")
}
if trip.insert(db.inner()).await.is_ok() {
log::info!("{} registered for {:?}", user.name, day);
Flash::success(Redirect::to("/"), "Erfolgreich angemeldet!")
} else {
log::warn!(
"{} tried to register for {:?}, but is already registered",
user.name,
day
);
Flash::error(Redirect::to("/"), "Du bist bereits angemeldet")
}
}