34 Commits

Author SHA1 Message Date
ac1c2a9797 Update dependency react-router-dom to ^7.6.3
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-12 00:14:39 +00:00
cc1e7345c4 Merge pull request 'Update Rust crate serde_with to 3.14.0' (#520) from renovate/serde_with-3.x into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-11 00:35:39 +00:00
58c1fc27ed Merge pull request 'Update Rust crate redis to 0.32.3' (#519) from renovate/redis-0.x into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-11 00:33:39 +00:00
b26efa30cf Update Rust crate serde_with to 3.14.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-07-11 00:15:07 +00:00
a98080ad32 Update Rust crate redis to 0.32.3
Some checks failed
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is failing
2025-07-11 00:15:02 +00:00
ae1b7f55d0 Merge pull request 'Update Rust crate actix-web to 4.11.0' (#518) from renovate/actix-web-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-10 00:41:25 +00:00
c291dbce70 Merge pull request 'Update Rust crate clap to 4.5.41' (#517) from renovate/clap-4.x into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-10 00:29:53 +00:00
0b93750363 Update Rust crate actix-web to 4.11.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-10 00:15:21 +00:00
f42980b10e Update Rust crate clap to 4.5.41
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-10 00:14:44 +00:00
c6f4879d0d Merge pull request 'Update react' (#516) from renovate/react into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-09 00:36:59 +00:00
029eabce7f Merge pull request 'Update materialui to ^7.2.0' (#515) from renovate/materialui into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-09 00:33:14 +00:00
881b01970b Update react
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-09 00:14:43 +00:00
d403bb4bb0 Update materialui to ^7.2.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-09 00:14:33 +00:00
3635f37c63 Merge pull request 'Update dependency eslint to ^9.30.1' (#514) from renovate/eslint-9.x into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-08 00:28:56 +00:00
3b26fd80b7 Merge pull request 'Update dependency @eslint/js to ^9.30.1' (#513) from renovate/eslint-js-9.x into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-08 00:24:43 +00:00
b6d070b842 Update dependency eslint to ^9.30.1
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-07-08 00:14:26 +00:00
0d428ff3d2 Update dependency @eslint/js to ^9.30.1
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-08 00:14:19 +00:00
fd0dc8df47 Merge pull request 'Update fullcalendar to ^6.1.18' (#512) from renovate/fullcalendar into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-07 00:29:24 +00:00
96fcc7e7f9 Merge pull request 'Update dependency react-qr-code to ^2.0.17' (#511) from renovate/react-qr-code-2.x into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-07 00:25:44 +00:00
782b4fa450 Update fullcalendar to ^6.1.18
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-07 00:14:15 +00:00
8ebaa9bdea Update dependency react-qr-code to ^2.0.18
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-07 00:14:12 +00:00
8d4449a116 Merge pull request 'Update dependency globals to ^16.3.0' (#488) from renovate/globals-16.x into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-07 00:14:07 +00:00
3e29908ee9 Update dependency globals to ^16.3.0
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-06 00:14:26 +00:00
999d0052ca Merge pull request 'Update dependency @mui/x-data-grid to ^7.29.8' (#510) from renovate/mui-x-data-grid-7.x into master
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-05 00:26:18 +00:00
90ad80b84a Update dependency @mui/x-data-grid to ^7.29.8
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2025-07-05 00:08:09 +00:00
9e14fcf4ba Update dependency @emotion/styled to ^11.14.1
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-07-04 00:07:40 +00:00
776d24031b Fix cargo clippy issues
All checks were successful
continuous-integration/drone/push Build is passing
2025-07-03 08:28:00 +02:00
991a3340e5 Update materialui to ^7.1.2
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-26 00:07:51 +00:00
012dc3eb3c Update dependency vite to ^6.3.5
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-25 00:07:48 +00:00
3f43dea93c Update dependency @vitejs/plugin-react to ^4.6.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-24 00:07:24 +00:00
8e7ce2f6bc Update dependency eslint to ^9.29.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-23 00:18:28 +00:00
a1c047f936 Update dependency @vitejs/plugin-react to ^4.5.2
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-22 00:18:27 +00:00
f3f7ebae35 Update dependency @eslint/js to ^9.29.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-21 00:18:28 +00:00
60fd656b94 Update dependency @mui/lab to ^7.0.0-beta.14
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-20 00:18:46 +00:00
20 changed files with 510 additions and 436 deletions

File diff suppressed because it is too large Load Diff

View File

@ -11,19 +11,19 @@
},
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.0",
"@emotion/styled": "^11.14.1",
"@fontsource/roboto": "^5.2.6",
"@fullcalendar/core": "^6.1.17",
"@fullcalendar/daygrid": "^6.1.17",
"@fullcalendar/interaction": "^6.1.17",
"@fullcalendar/list": "^6.1.17",
"@fullcalendar/react": "^6.1.17",
"@fullcalendar/core": "^6.1.18",
"@fullcalendar/daygrid": "^6.1.18",
"@fullcalendar/interaction": "^6.1.18",
"@fullcalendar/list": "^6.1.18",
"@fullcalendar/react": "^6.1.18",
"@mdi/js": "^7.4.47",
"@mdi/react": "^1.6.1",
"@mui/icons-material": "^7.0.2",
"@mui/lab": "^7.0.0-beta.13",
"@mui/material": "^7.0.2",
"@mui/x-data-grid": "^7.29.6",
"@mui/icons-material": "^7.2.0",
"@mui/lab": "^7.0.0-beta.14",
"@mui/material": "^7.2.0",
"@mui/x-data-grid": "^7.29.8",
"@mui/x-date-pickers": "^7.29.4",
"@mui/x-tree-view": "^7.29.1",
"date-and-time": "^3.6.0",
@ -32,25 +32,25 @@
"filesize": "^10.1.6",
"jspdf": "^3.0.1",
"mui-color-input": "^7.0.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-easy-crop": "^5.4.2",
"react-qr-code": "^2.0.16",
"react-router-dom": "^7.4.0",
"react-qr-code": "^2.0.18",
"react-router-dom": "^7.6.3",
"react-zoom-pan-pinch": "^3.7.0",
"svg2pdf.js": "^2.5.0"
},
"devDependencies": {
"@eslint/js": "^9.28.0",
"@types/react": "^19.0.12",
"@types/react-dom": "^19.0.4",
"@vitejs/plugin-react": "^4.4.1",
"eslint": "^9.28.0",
"@eslint/js": "^9.30.1",
"@types/react": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.6.0",
"eslint": "^9.30.1",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.20",
"globals": "^16.0.0",
"globals": "^16.3.0",
"typescript": "^5.8.3",
"typescript-eslint": "^8.34.1",
"vite": "^6.2.3"
"typescript-eslint": "^8.24.1",
"vite": "^6.3.5"
}
}

View File

@ -36,9 +36,9 @@ dependencies = [
[[package]]
name = "actix-http"
version = "3.10.0"
version = "3.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fa882656b67966045e4152c634051e70346939fced7117d5f0b52146a7c74c9"
checksum = "44dfe5c9e0004c623edc65391dfd51daa201e7e30ebd9c9bedf873048ec32bc2"
dependencies = [
"actix-codec",
"actix-rt",
@ -159,9 +159,9 @@ dependencies = [
[[package]]
name = "actix-server"
version = "2.5.1"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6398974fd4284f4768af07965701efbbb5fdc0616bff20cade1bb14b77675e24"
checksum = "a65064ea4a457eaf07f2fba30b4c695bf43b721790e9530d26cb6f9019ff7502"
dependencies = [
"actix-rt",
"actix-service",
@ -196,9 +196,9 @@ dependencies = [
[[package]]
name = "actix-web"
version = "4.10.2"
version = "4.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2e3b15b3dc6c6ed996e4032389e9849d4ab002b1e92fbfe85b5f307d1479b4d"
checksum = "a597b77b5c6d6a1e1097fddde329a83665e25c5437c696a3a9a4aa514a614dea"
dependencies = [
"actix-codec",
"actix-http",
@ -403,12 +403,6 @@ dependencies = [
"derive_arbitrary",
]
[[package]]
name = "arc-swap"
version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
[[package]]
name = "arg_enum_proc_macro"
version = "0.3.4"
@ -597,9 +591,9 @@ dependencies = [
[[package]]
name = "brotli"
version = "7.0.0"
version = "8.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc97b8f16f944bba54f0433f07e30be199b6dc2bd25937444bbad560bcea29bd"
checksum = "9991eea70ea4f293524138648e41ee89b0b2b12ddef3b255effa43c8056e0e0d"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@ -608,9 +602,9 @@ dependencies = [
[[package]]
name = "brotli-decompressor"
version = "4.0.2"
version = "5.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37"
checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03"
dependencies = [
"alloc-no-stdlib",
"alloc-stdlib",
@ -744,9 +738,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.5.40"
version = "4.5.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f"
checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9"
dependencies = [
"clap_builder",
"clap_derive",
@ -754,9 +748,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.40"
version = "4.5.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e"
checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d"
dependencies = [
"anstream",
"anstyle",
@ -766,9 +760,9 @@ dependencies = [
[[package]]
name = "clap_derive"
version = "4.5.40"
version = "4.5.41"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce"
checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491"
dependencies = [
"heck",
"proc-macro2",
@ -1166,6 +1160,12 @@ dependencies = [
"syn",
]
[[package]]
name = "dyn-clone"
version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005"
[[package]]
name = "either"
version = "1.15.0"
@ -2066,6 +2066,17 @@ dependencies = [
"syn",
]
[[package]]
name = "io-uring"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013"
dependencies = [
"bitflags 2.9.0",
"cfg-if",
"libc",
]
[[package]]
name = "ipnet"
version = "2.11.0"
@ -3022,11 +3033,10 @@ dependencies = [
[[package]]
name = "redis"
version = "0.29.5"
version = "0.32.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bc42f3a12fd4408ce64d8efef67048a924e543bd35c6591c0447fda9054695f"
checksum = "7f0f6a8c53351d89a3869a703459995a0bcadcfa846002707fbc7e5cca235c4a"
dependencies = [
"arc-swap",
"combine",
"itoa",
"num-bigint",
@ -3057,6 +3067,26 @@ dependencies = [
"thiserror 1.0.69",
]
[[package]]
name = "ref-cast"
version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf"
dependencies = [
"ref-cast-impl",
]
[[package]]
name = "ref-cast-impl"
version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "regex"
version = "1.11.1"
@ -3321,6 +3351,30 @@ dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "schemars"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f"
dependencies = [
"dyn-clone",
"ref-cast",
"serde",
"serde_json",
]
[[package]]
name = "schemars"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0"
dependencies = [
"dyn-clone",
"ref-cast",
"serde",
"serde_json",
]
[[package]]
name = "scopeguard"
version = "1.2.0"
@ -3420,15 +3474,17 @@ dependencies = [
[[package]]
name = "serde_with"
version = "3.12.0"
version = "3.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa"
checksum = "f2c45cd61fefa9db6f254525d46e392b852e0e61d9a1fd36e5bd183450a556d5"
dependencies = [
"base64",
"chrono",
"hex",
"indexmap 1.9.3",
"indexmap 2.8.0",
"schemars 0.9.0",
"schemars 1.0.4",
"serde",
"serde_derive",
"serde_json",
@ -3438,9 +3494,9 @@ dependencies = [
[[package]]
name = "serde_with_macros"
version = "3.12.0"
version = "3.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e"
checksum = "de90945e6565ce0d9a25098082ed4ee4002e047cb59892c318d66821e14bb30f"
dependencies = [
"darling",
"proc-macro2",
@ -3783,17 +3839,19 @@ dependencies = [
[[package]]
name = "tokio"
version = "1.44.1"
version = "1.46.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a"
checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17"
dependencies = [
"backtrace",
"bytes",
"io-uring",
"libc",
"mio",
"parking_lot",
"pin-project-lite",
"signal-hook-registry",
"slab",
"socket2",
"windows-sys 0.52.0",
]

View File

@ -8,11 +8,11 @@ edition = "2024"
[dependencies]
log = "0.4.27"
env_logger = "0.11.8"
clap = { version = "4.5.40", features = ["derive", "env"] }
clap = { version = "4.5.41", features = ["derive", "env"] }
lazy_static = "1.5.0"
lazy-regex = "3.4.1"
anyhow = "1.0.98"
actix-web = "4.10.2"
actix-web = "4.11.0"
actix-cors = "0.7.1"
actix-multipart = "0.7.2"
actix-remote-ip = "0.1.0"
@ -22,13 +22,13 @@ diesel_migrations = "2.2.0"
serde = { version = "1.0.219", features = ["derive"] }
serde_json = "1.0.140"
mailchecker = "6.0.17"
redis = "0.29.5"
redis = "0.32.3"
lettre = "0.11.17"
rand = "0.9.1"
bcrypt = "0.17.0"
light-openid = "1.0.4"
thiserror = "2.0.12"
serde_with = "3.12.0"
serde_with = "3.14.0"
rust_iso3166 = "0.1.14"
rust-s3 = "0.35.1"
sha2 = "0.10.9"

View File

@ -21,7 +21,7 @@ where
if POSTGRES_CONNECTION.with(|i| i.borrow().is_none()) {
let database_url = AppConfig::get().db_connection_chain();
let conn = PgConnection::establish(&database_url)
.unwrap_or_else(|_| panic!("Error connecting to {}", database_url));
.unwrap_or_else(|_| panic!("Error connecting to {database_url}"));
POSTGRES_CONNECTION.with(|i| *i.borrow_mut() = Some(conn))
}
@ -38,7 +38,7 @@ where
POSTGRES_CONNECTION.with(|i| *i.borrow_mut() = None)
}
log::error!("Database query error! {:?}", e);
log::error!("Database query error! {e:?}");
Err(e.into())
}
}

View File

@ -30,7 +30,7 @@ pub async fn create_bucket_if_required() -> anyhow::Result<()> {
log::warn!("The bucket does not seem to exists, trying to create it!")
}
Err(e) => {
log::error!("Got unexpected error when querying bucket info: {}", e);
log::error!("Got unexpected error when querying bucket info: {e}");
return Err(BucketServiceError::FailedFetchBucketInfo.into());
}
}

View File

@ -79,10 +79,7 @@ pub async fn request_reset_password(
match users_service::get_by_mail(&req.mail).await {
Ok(mut user) => users_service::request_reset_password(&mut user).await?,
Err(e) => {
log::error!(
"Could not locate user account {}! (error silently ignored)",
e
);
log::error!("Could not locate user account {e}! (error silently ignored)");
}
}
@ -122,7 +119,7 @@ pub async fn check_reset_password_token(
RatedAction::CheckResetPasswordTokenFailed,
)
.await?;
log::error!("Password reset token could not be used: {}", e);
log::error!("Password reset token could not be used: {e}");
return Ok(HttpResponse::NotFound().finish());
}
};
@ -156,7 +153,7 @@ pub async fn reset_password(remote_ip: RemoteIP, req: web::Json<ResetPasswordBod
RatedAction::CheckResetPasswordTokenFailed,
)
.await?;
log::error!("Password reset token could not be used: {}", e);
log::error!("Password reset token could not be used: {e}");
return Ok(HttpResponse::NotFound().finish());
}
};
@ -196,7 +193,7 @@ pub async fn password_login(remote_ip: RemoteIP, req: web::Json<PasswordLoginQue
let user = match users_service::get_by_mail(&req.mail).await {
Ok(u) => u,
Err(e) => {
log::error!("Auth failed: could not find account by mail! {}", e);
log::error!("Auth failed: could not find account by mail! {e}");
rate_limiter_service::record_action(remote_ip.0, RatedAction::FailedPasswordLogin)
.await?;
return Ok(HttpResponse::Unauthorized().json("Invalid credentials"));

View File

@ -183,9 +183,9 @@ pub async fn import_family(
}
if let Err(e) = req_member_data.to_member(member).await {
log::error!("Error while processing import (member {:?}) - {e}", req_id);
log::error!("Error while processing import (member {req_id:?}) - {e}");
return Ok(
HttpResponse::BadRequest().json(format!("Failed to validate member {:?}!", req_id))
HttpResponse::BadRequest().json(format!("Failed to validate member {req_id:?}!"))
);
}

View File

@ -31,7 +31,7 @@ impl Display for HttpErr {
impl actix_web::error::ResponseError for HttpErr {
fn error_response(&self) -> HttpResponse<BoxBody> {
log::error!("Error while processing request! {}", self);
log::error!("Error while processing request! {self}");
HttpResponse::InternalServerError().body("Failed to execute request!")
}
}

View File

@ -75,7 +75,7 @@ impl FromRequest for FamilyAndAccommodationInPath {
Self::load_accommodation_from_path(family, accommodation_id)
.await
.map_err(|e| {
log::error!("Failed to extract accommodation ID from URL! {}", e);
log::error!("Failed to extract accommodation ID from URL! {e}");
actix_web::error::ErrorNotFound("Could not fetch accommodation information!")
})
})

View File

@ -85,7 +85,7 @@ impl FromRequest for FamilyAndAccommodationReservationCalendarInPath {
Self::load_calendar_from_path(family, accommodation_id)
.await
.map_err(|e| {
log::error!("Failed to extract calendar ID from URL! {}", e);
log::error!("Failed to extract calendar ID from URL! {e}");
actix_web::error::ErrorNotFound("Could not fetch calendar information!")
})
})

View File

@ -95,7 +95,7 @@ impl FromRequest for FamilyAndAccommodationReservationInPath {
Self::load_accommodation_reservation_from_path(family, reservation_id)
.await
.map_err(|e| {
log::error!("Failed to extract accommodation ID from URL! {}", e);
log::error!("Failed to extract accommodation ID from URL! {e}");
actix_web::error::ErrorNotFound("Could not fetch accommodation information!")
})
})

View File

@ -71,7 +71,7 @@ impl FromRequest for FamilyAndCoupleInPath {
FamilyAndCoupleInPath::load_couple_from_path(family, couple_id)
.await
.map_err(|e| {
log::error!("Failed to extract couple ID from URL! {}", e);
log::error!("Failed to extract couple ID from URL! {e}");
actix_web::error::ErrorNotFound("Could not fetch couple information!")
})
})

View File

@ -62,7 +62,7 @@ impl FromRequest for FamilyInPath {
FamilyInPath::load_family_from_path(&token, family_id)
.await
.map_err(|e| {
log::error!("Failed to extract family ID from URL! {}", e);
log::error!("Failed to extract family ID from URL! {e}");
actix_web::error::ErrorNotFound("Could not fetch family information!")
})
})

View File

@ -71,7 +71,7 @@ impl FromRequest for FamilyAndMemberInPath {
FamilyAndMemberInPath::load_member_from_path(family, member_id)
.await
.map_err(|e| {
log::error!("Failed to extract member ID from URL! {}", e);
log::error!("Failed to extract member ID from URL! {e}");
actix_web::error::ErrorNotFound("Could not fetch member information!")
})
})

View File

@ -43,7 +43,7 @@ impl User {
.as_deref()
.map(|hash| {
bcrypt::verify(password, hash).unwrap_or_else(|e| {
log::error!("Failed to validate password! {}", e);
log::error!("Failed to validate password! {e}");
false
})
})

View File

@ -125,13 +125,13 @@ async fn load_token_info(token: &LoginTokenValue) -> anyhow::Result<Option<Login
let token = match user_tokens.iter_mut().find(|t| t.key == key) {
Some(t) => t,
None => {
log::error!("Could not find token for key '{}' (missing token)", key);
log::error!("Could not find token for key '{key}' (missing token)");
return Ok(None);
}
};
if token.is_expired() {
log::error!("Could not find token for key '{}' (token expired)", key);
log::error!("Could not find token for key '{key}' (token expired)");
return Ok(None);
}
@ -169,7 +169,7 @@ impl FromRequest for LoginToken {
let token = match load_token_info(&token).await {
Err(e) => {
log::error!("Failed to load auth token! {}", e);
log::error!("Failed to load auth token! {e}");
return Err(actix_web::error::ErrorPreconditionFailed(
"Failed to check auth token!",
));

View File

@ -27,7 +27,7 @@ pub async fn send_mail<D: Display>(to: &str, subject: &str, body: D) -> anyhow::
let mailer = mailer.build();
mailer.send(&email)?;
log::debug!("A mail was sent to {} (subject = {})", to, subject);
log::debug!("A mail was sent to {to} (subject = {subject})");
Ok(())
}

View File

@ -168,7 +168,7 @@ pub mod loop_detection {
None => false,
Some(id) => {
if curr_stack.contains(id) {
log::debug!("Loop detected! {:?}", curr_stack);
log::debug!("Loop detected! {curr_stack:?}");
return true;
}

View File

@ -5,7 +5,7 @@ pub fn sha256(bytes: &[u8]) -> String {
let mut hasher = Sha256::new();
hasher.update(bytes);
let h = hasher.finalize();
format!("{:x}", h)
format!("{h:x}")
}
/// Compute hash of a slice of bytes (sha512)
@ -13,5 +13,5 @@ pub fn sha512(bytes: &[u8]) -> String {
let mut hasher = Sha512::new();
hasher.update(bytes);
let h = hasher.finalize();
format!("{:x}", h)
format!("{h:x}")
}