format
All checks were successful
CI/CD Pipeline / test (push) Successful in 5m20s
CI/CD Pipeline / deploy (push) Successful in 3m56s

This commit is contained in:
Philipp Hofer 2025-04-21 15:14:52 +02:00
parent d57fd670b3
commit 6b07772a18
15 changed files with 47 additions and 45 deletions

View File

@ -1,7 +1,7 @@
use crate::{auth::Backend, models::rating::Rating, page, AppState}; use crate::{AppState, auth::Backend, models::rating::Rating, page};
use axum::{extract::State, routing::get, Router}; use axum::{Router, extract::State, routing::get};
use axum_login::login_required; use axum_login::login_required;
use maud::{html, Markup}; use maud::{Markup, html};
use rand::{ use rand::{
distr::{Distribution, Uniform}, distr::{Distribution, Uniform},
rng, rng,

View File

@ -1,6 +1,6 @@
use crate::{ use crate::{
admin::{station::Station, team::Team},
AppState, AppState,
admin::{station::Station, team::Team},
}; };
use axum::Router; use axum::Router;
use futures::future::join_all; use futures::future::join_all;

View File

@ -1,12 +1,12 @@
use super::Route; use super::Route;
use crate::{admin::station::Station, er, page, suc, AppState}; use crate::{AppState, admin::station::Station, er, page, suc};
use axum::{ use axum::{
Form, Router,
extract::State, extract::State,
response::{IntoResponse, Redirect}, response::{IntoResponse, Redirect},
routing::{get, post}, routing::{get, post},
Form, Router,
}; };
use maud::{html, Markup, PreEscaped}; use maud::{Markup, PreEscaped, html};
use serde::Deserialize; use serde::Deserialize;
use sqlx::SqlitePool; use sqlx::SqlitePool;
use std::sync::Arc; use std::sync::Arc;

View File

@ -1,13 +1,13 @@
use super::{generate_random_alphanumeric, team::Team}; use super::{generate_random_alphanumeric, team::Team};
use crate::{ use crate::{
AppState,
admin::route::Route, admin::route::Route,
models::rating::{Rating, TeamsAtStationLocation}, models::rating::{Rating, TeamsAtStationLocation},
AppState,
}; };
use axum::Router; use axum::Router;
use chrono::{DateTime, Local, NaiveDateTime, Utc}; use chrono::{DateTime, Local, NaiveDateTime, Utc};
use futures::{stream, StreamExt}; use futures::{StreamExt, stream};
use maud::{html, Markup, Render}; use maud::{Markup, Render, html};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use sqlx::{FromRow, SqlitePool}; use sqlx::{FromRow, SqlitePool};

View File

@ -1,17 +1,18 @@
use crate::{ use crate::{
AppState,
admin::{station::Station, team::Team}, admin::{station::Station, team::Team},
er, err, er, err,
models::rating::{Rating, TeamsAtStationLocation}, models::rating::{Rating, TeamsAtStationLocation},
partials::page, partials::page,
suc, succ, AppState, suc, succ,
}; };
use axum::{ use axum::{
Form, Router,
extract::State, extract::State,
response::{IntoResponse, Redirect}, response::{IntoResponse, Redirect},
routing::{get, post}, routing::{get, post},
Form, Router,
}; };
use maud::{html, Markup}; use maud::{Markup, html};
use serde::Deserialize; use serde::Deserialize;
use sqlx::SqlitePool; use sqlx::SqlitePool;
use std::{collections::HashMap, sync::Arc}; use std::{collections::HashMap, sync::Arc};

View File

@ -1,7 +1,7 @@
use crate::{ use crate::{
AppState,
admin::{route::Route, station::Station}, admin::{route::Route, station::Station},
models::rating::Rating, models::rating::Rating,
AppState,
}; };
use axum::Router; use axum::Router;
use chrono::{DateTime, Local, NaiveDateTime, Utc}; use chrono::{DateTime, Local, NaiveDateTime, Utc};

View File

@ -1,18 +1,19 @@
use super::{CreateError, LastContactTeam, Team}; use super::{CreateError, LastContactTeam, Team};
use crate::{ use crate::{
AppState,
admin::{route::Route, station::Station}, admin::{route::Route, station::Station},
err, err,
models::rating::Rating, models::rating::Rating,
partials::page, partials::page,
pl, succ, AppState, pl, succ,
}; };
use axum::{ use axum::{
Form, Router,
extract::State, extract::State,
response::{IntoResponse, Redirect}, response::{IntoResponse, Redirect},
routing::{get, post}, routing::{get, post},
Form, Router,
}; };
use maud::{html, Markup, PreEscaped}; use maud::{Markup, PreEscaped, html};
use serde::Deserialize; use serde::Deserialize;
use sqlx::SqlitePool; use sqlx::SqlitePool;
use std::{collections::HashMap, sync::Arc}; use std::{collections::HashMap, sync::Arc};
@ -47,20 +48,20 @@ async fn create(
} }
Err(CreateError::DuplicateName(e)) => { Err(CreateError::DuplicateName(e)) => {
err!( err!(
session, session,
"Team '{}' konnte _NICHT_ erstellt werden, da es bereits ein Team mit diesem Namen gibt ({e})!", "Team '{}' konnte _NICHT_ erstellt werden, da es bereits ein Team mit diesem Namen gibt ({e})!",
form.name form.name
); );
return Redirect::to("/admin/team"); return Redirect::to("/admin/team");
} }
Err(CreateError::NoStationForRoute) => { Err(CreateError::NoStationForRoute) => {
err!( err!(
session, session,
"Team '{}' konnte _NICHT_ erstellt werden, da in der angegebenen Route '{}' noch keine Stationen vorkommen", "Team '{}' konnte _NICHT_ erstellt werden, da in der angegebenen Route '{}' noch keine Stationen vorkommen",
form.name, form.name,
route.name route.name
); );
return Redirect::to("/admin/team"); return Redirect::to("/admin/team");
} }

View File

@ -1,7 +1,7 @@
use super::generate_random_alphanumeric; use super::generate_random_alphanumeric;
use crate::{auth::User, AppState}; use crate::{AppState, auth::User};
use argon2::password_hash::rand_core::OsRng; use argon2::password_hash::rand_core::OsRng;
use argon2::{password_hash::SaltString, Argon2, PasswordHasher}; use argon2::{Argon2, PasswordHasher, password_hash::SaltString};
use axum::Router; use axum::Router;
use sqlx::SqlitePool; use sqlx::SqlitePool;

View File

@ -1,11 +1,11 @@
use crate::{auth::User, err, partials::page, succ, AppState}; use crate::{AppState, auth::User, err, partials::page, succ};
use axum::{ use axum::{
Form, Router,
extract::State, extract::State,
response::{IntoResponse, Redirect}, response::{IntoResponse, Redirect},
routing::{get, post}, routing::{get, post},
Form, Router,
}; };
use maud::{html, Markup}; use maud::{Markup, html};
use serde::Deserialize; use serde::Deserialize;
use sqlx::SqlitePool; use sqlx::SqlitePool;
use std::sync::Arc; use std::sync::Arc;

View File

@ -1,13 +1,13 @@
use crate::{er, page, suc, AppState}; use crate::{AppState, er, page, suc};
use async_trait::async_trait; use async_trait::async_trait;
use axum::{ use axum::{
Form, Router,
http::StatusCode, http::StatusCode,
response::{IntoResponse, Redirect}, response::{IntoResponse, Redirect},
routing::{get, post}, routing::{get, post},
Form, Router,
}; };
use axum_login::{AuthUser, AuthnBackend}; use axum_login::{AuthUser, AuthnBackend};
use maud::{html, Markup}; use maud::{Markup, html};
use password_auth::verify_password; use password_auth::verify_password;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use sqlx::{FromRow, SqlitePool}; use sqlx::{FromRow, SqlitePool};

View File

@ -19,20 +19,20 @@ i18n!("locales", fallback = "de-AT");
use admin::station::Station; use admin::station::Station;
use auth::{AuthSession, Backend, User}; use auth::{AuthSession, Backend, User};
use axum::{ use axum::{
Form, Router,
body::Body, body::Body,
extract::{FromRef, State}, extract::{FromRef, State},
response::{IntoResponse, Redirect, Response}, response::{IntoResponse, Redirect, Response},
routing::{get, post}, routing::{get, post},
Form, Router,
}; };
use axum_login::AuthManagerLayerBuilder; use axum_login::AuthManagerLayerBuilder;
use maud::{html, Markup}; use maud::{Markup, html};
use partials::page; use partials::page;
use serde::Deserialize; use serde::Deserialize;
use sqlx::SqlitePool; use sqlx::SqlitePool;
use std::{env, sync::Arc}; use std::{env, sync::Arc};
use tokio::net::TcpListener; use tokio::net::TcpListener;
use tower_sessions::{cookie::time::Duration, Expiry, Session, SessionManagerLayer}; use tower_sessions::{Expiry, Session, SessionManagerLayer, cookie::time::Duration};
use tower_sessions_sqlx_store_chrono::SqliteStore; use tower_sessions_sqlx_store_chrono::SqliteStore;
pub(crate) mod admin; pub(crate) mod admin;

View File

@ -1,5 +1,5 @@
use dotenv::dotenv; use dotenv::dotenv;
use sqlx::{pool::PoolOptions, SqlitePool}; use sqlx::{SqlitePool, pool::PoolOptions};
use std::env; use std::env;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};

View File

@ -1,4 +1,4 @@
use crate::{admin::team::Team, Station}; use crate::{Station, admin::team::Team};
use chrono::{DateTime, Local, NaiveDateTime, Utc}; use chrono::{DateTime, Local, NaiveDateTime, Utc};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use sqlx::{FromRow, SqlitePool}; use sqlx::{FromRow, SqlitePool};

View File

@ -1,5 +1,5 @@
use crate::test_version; use crate::test_version;
use maud::{html, Markup, DOCTYPE}; use maud::{DOCTYPE, Markup, html};
use tower_sessions::Session; use tower_sessions::Session;
pub(crate) async fn page(content: Markup, session: Session, leaflet: bool) -> Markup { pub(crate) async fn page(content: Markup, session: Session, leaflet: bool) -> Markup {

View File

@ -1,14 +1,14 @@
use crate::{ use crate::{
admin::team::Team, err, models::rating::TeamsAtStationLocation, partials, succ, AppState, AppState, Station, admin::team::Team, err, models::rating::TeamsAtStationLocation, partials,
Station, succ,
}; };
use axum::{ use axum::{
Form, Router,
extract::State, extract::State,
response::{IntoResponse, Redirect}, response::{IntoResponse, Redirect},
routing::{get, post}, routing::{get, post},
Form, Router,
}; };
use maud::{html, Markup, PreEscaped}; use maud::{Markup, PreEscaped, html};
use serde::Deserialize; use serde::Deserialize;
use sqlx::SqlitePool; use sqlx::SqlitePool;
use std::sync::Arc; use std::sync::Arc;
@ -571,7 +571,7 @@ pub(super) fn routes() -> Router<AppState> {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use crate::{router, testdb, Station}; use crate::{Station, router, testdb};
use sqlx::SqlitePool; use sqlx::SqlitePool;