94 Commits

Author SHA1 Message Date
6c9f868db1 Update dependency eslint-plugin-react-dom to ^1.53.1
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-31 00:30:21 +00:00
7ad8a36477 Merge pull request 'Update Rust crate sha2 to 0.11.0' (#207) from renovate/sha2-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-30 00:29:11 +00:00
0ed837b8d7 Update Rust crate sha2 to 0.11.0
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-29 00:28:49 +00:00
034e3d3512 Merge pull request 'Update dependency shared_preferences to v2.5.5' (#206) from renovate/shared_preferences-2.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-28 00:26:59 +00:00
681695ce27 Update dependency shared_preferences to v2.5.5
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-28 00:26:39 +00:00
bb658d1651 Merge pull request 'Update dependency cupertino_icons to v1.0.9' (#205) from renovate/cupertino_icons-1.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-27 00:29:25 +00:00
a4f68cc268 Update dependency cupertino_icons to v1.0.9
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-27 00:28:12 +00:00
05f24d9129 Merge pull request 'Update Rust crate env_logger to 0.11.10' (#204) from renovate/env_logger-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-25 00:23:49 +00:00
3e4c9b7468 Update Rust crate env_logger to 0.11.10
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-24 00:36:47 +00:00
a0f0b3501a Merge pull request 'Update dependency @mui/x-charts to ^8.28.0' (#203) from renovate/mui-x-charts-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-23 00:35:17 +00:00
6e527b749e Update dependency @mui/x-charts to ^8.28.0
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-22 00:35:47 +00:00
67bed33760 Merge pull request 'Update Rust crate diesel_migrations to 2.3.1' (#202) from renovate/diesel_migrations-2.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-21 00:28:51 +00:00
585f676e64 Update Rust crate diesel_migrations to 2.3.1
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-20 00:28:33 +00:00
f9880473f5 Merge pull request 'Update Rust crate diesel to 2.3.7' (#201) from renovate/diesel-2.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-18 00:29:58 +00:00
78798545e0 Update Rust crate diesel to 2.3.7
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-17 00:28:50 +00:00
1b9ab8c9a1 Merge pull request 'Update dependency dayjs to ^1.11.20' (#200) from renovate/dayjs-1.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-16 00:31:42 +00:00
3ee5239e1f Update dependency dayjs to ^1.11.20
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-15 00:31:21 +00:00
b93f907b81 Merge pull request 'Update dependency @mui/x-charts to ^8.27.5' (#199) from renovate/mui-x-charts-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-14 00:32:45 +00:00
40d1a126c9 Update dependency @mui/x-charts to ^8.27.5
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-13 00:29:25 +00:00
559fe8c18b Merge pull request 'Update dependency eslint to ^9.39.4' (#198) from renovate/eslint-9.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-12 00:31:50 +00:00
cb7ac515ba Update dependency eslint to ^9.39.4
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-11 00:19:55 +00:00
7ce69d2df9 Merge pull request 'Update dependency @mui/x-charts to ^8.27.4' (#197) from renovate/mui-x-charts-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-10 00:17:36 +00:00
ea136058ab Update dependency @mui/x-charts to ^8.27.4
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-09 00:17:59 +00:00
8b7a9efd21 Merge pull request 'Update dependency @eslint/js to ^9.39.4' (#196) from renovate/eslint-js-9.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-08 00:17:30 +00:00
6a7479278a Update dependency @eslint/js to ^9.39.4
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-07 00:21:57 +00:00
f03cdbb29a Merge pull request 'Update Rust crate chrono to 0.4.44' (#195) from renovate/chrono-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-06 00:18:15 +00:00
b9f1c3b470 Update Rust crate chrono to 0.4.44
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-05 00:17:36 +00:00
7126ce2e86 Merge pull request 'Update dependency dio to v5.9.2' (#194) from renovate/dio-5.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-04 00:21:54 +00:00
d68f2c5b50 Update dependency dio to v5.9.2
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-04 00:21:50 +00:00
c2a8255c82 Merge pull request 'Update Rust crate anyhow to 1.0.102' (#193) from renovate/anyhow-1.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-03 00:20:55 +00:00
a422f5e3c4 Update Rust crate anyhow to 1.0.102
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-03-02 00:22:12 +00:00
a9da492cc9 Merge pull request 'Update dependency eslint to ^9.39.3' (#192) from renovate/eslint-9.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-01 00:21:31 +00:00
0d563803f4 Update dependency eslint to ^9.39.3
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-28 00:16:30 +00:00
b60522c69b Merge pull request 'Update dependency dart_jsonwebtoken to v3.3.2' (#191) from renovate/dart_jsonwebtoken-3.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-27 00:15:35 +00:00
f95f759970 Update dependency dart_jsonwebtoken to v3.3.2
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-27 00:15:30 +00:00
12c0fe5754 Merge pull request 'Update dependency @fontsource/roboto to ^5.2.10' (#190) from renovate/fontsource-roboto-5.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-26 00:15:46 +00:00
ee0b6413aa Update dependency @fontsource/roboto to ^5.2.10
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-24 00:15:33 +00:00
62f00ad396 Merge pull request 'Update dependency @eslint/js to ^9.39.3' (#189) from renovate/eslint-js-9.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-23 00:16:23 +00:00
ef0301aff2 Update dependency @eslint/js to ^9.39.3
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-22 00:16:33 +00:00
d51f46a168 Merge pull request 'Update Rust crate clap to 4.5.60' (#188) from renovate/clap-4.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-21 00:17:25 +00:00
70b4fbc643 Update Rust crate clap to 4.5.60
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-20 00:16:54 +00:00
e74d794d08 Updated project dependencies
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-19 17:50:54 +01:00
81e01ec946 Merge pull request 'Update Rust crate clap to 4.5.59' (#187) from renovate/clap-4.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-18 00:28:56 +00:00
40337d2abb Update Rust crate clap to 4.5.59
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-17 00:29:02 +00:00
eb0ba1148c Merge pull request 'Update Rust crate anyhow to 1.0.101' (#186) from renovate/anyhow-1.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-16 00:28:46 +00:00
afba2c5e8f Update Rust crate anyhow to 1.0.101
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-15 00:29:11 +00:00
a71efb7abf Merge pull request 'Update dependency @types/react to ^19.2.14' (#185) from renovate/react into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-14 00:29:00 +00:00
2e1eec548a Update dependency @types/react to ^19.2.14
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-13 00:29:10 +00:00
a58bac400b Merge pull request 'Update Rust crate actix-files to 0.6.10' (#184) from renovate/actix-files-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-10 00:28:11 +00:00
85d8edca57 Update Rust crate actix-files to 0.6.10
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-09 00:28:13 +00:00
b867eb7559 Merge pull request 'Update dependency google_mlkit_text_recognition to v0.15.1' (#183) from renovate/google_mlkit_text_recognition-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-08 00:28:47 +00:00
0855378613 Update dependency google_mlkit_text_recognition to v0.15.1
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-08 00:28:41 +00:00
f3d85f8ea9 Merge pull request 'Update dependency @types/react to ^19.2.13' (#182) from renovate/react into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-07 00:28:39 +00:00
ca1f4a6b63 Update dependency @types/react to ^19.2.13
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-06 00:27:44 +00:00
94460f1e8e Merge pull request 'Update dependency @mui/x-charts to ^8.27.0' (#181) from renovate/mui-x-charts-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-04 00:27:31 +00:00
87f7d6a5fb Update dependency @mui/x-charts to ^8.27.0
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-02-03 00:27:29 +00:00
3e2e98251f Merge pull request 'Update Rust crate clap to 4.5.56' (#180) from renovate/clap-4.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-02-01 00:27:24 +00:00
89a37c44fe Update Rust crate clap to 4.5.56
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-31 00:27:32 +00:00
bed6f88ae8 Merge pull request 'Update dependency dio to v5.9.1' (#179) from renovate/dio-5.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-30 00:29:05 +00:00
f9b1108f3d Update dependency dio to v5.9.1
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-30 00:28:59 +00:00
7b60ec875b Merge pull request 'Update react' (#178) from renovate/react into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-29 00:28:09 +00:00
cb2143de9e Update react
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-28 00:28:08 +00:00
8f12f397c1 Merge pull request 'Update Rust crate sha2 to 0.11.0-rc.4' (#177) from renovate/sha2-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-26 00:27:44 +00:00
5d20559d93 Update Rust crate sha2 to 0.11.0-rc.4
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-25 00:28:13 +00:00
032d1fc1d8 Merge pull request 'Update Rust crate jwt-simple to 0.12.14' (#176) from renovate/jwt-simple-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-24 00:27:12 +00:00
ccdfb39717 Update Rust crate jwt-simple to 0.12.14
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-23 00:27:14 +00:00
b032f3e097 Merge pull request 'Update dependency @types/react to ^19.2.9' (#175) from renovate/react into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-22 00:28:34 +00:00
ac6f53ea55 Update dependency @types/react to ^19.2.9
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-21 00:16:02 +00:00
e640e75da0 Merge pull request 'Update Rust crate thiserror to 2.0.18' (#174) from renovate/thiserror-2.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-20 00:12:43 +00:00
d194657af7 Update Rust crate thiserror to 2.0.18
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-19 00:12:13 +00:00
9f2b315b7e Merge pull request 'Update dependency @mui/x-charts to ^8.25.0' (#173) from renovate/mui-x-charts-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-18 00:12:58 +00:00
13fc54a212 Update dependency @mui/x-charts to ^8.25.0
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-17 00:12:16 +00:00
7e88c33f9f Merge pull request 'Update Rust crate chrono to 0.4.43' (#172) from renovate/chrono-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-16 00:28:40 +00:00
6c9a01daac Update Rust crate chrono to 0.4.43
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-15 00:34:10 +00:00
9e913eba68 Merge pull request 'Update dependency build_runner to v2.10.5' (#171) from renovate/build_runner-2.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-14 00:33:52 +00:00
457436a63a Update dependency build_runner to v2.10.5
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-14 00:33:22 +00:00
1c187f0ce0 Merge pull request 'Update dependency @types/react to ^19.2.8' (#170) from renovate/react into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-13 00:26:52 +00:00
528a60a6e5 Update dependency @types/react to ^19.2.8
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-12 00:27:17 +00:00
a6c59ac28c Merge pull request 'Update dependency @mui/x-charts to ^8.24.0' (#169) from renovate/mui-x-charts-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-11 00:27:16 +00:00
b298a77b20 Update dependency @mui/x-charts to ^8.24.0
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-10 00:26:47 +00:00
10c32279a7 Merge pull request 'Update Rust crate serde_json to 1.0.149' (#168) from renovate/serde_json-1.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-09 00:23:18 +00:00
6ccabb24a0 Update Rust crate serde_json to 1.0.149
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-08 00:23:17 +00:00
86ae17e6c5 Merge pull request 'Update Rust crate clap to 4.5.54' (#167) from renovate/clap-4.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-07 00:23:32 +00:00
cc8710a912 Update Rust crate clap to 4.5.54
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2026-01-06 00:23:45 +00:00
973dc7c1a0 Merge pull request 'Update dependency @mui/x-date-pickers to ^8.23.0' (#166) from renovate/mui-x-date-pickers-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2026-01-05 00:24:08 +00:00
7164e779b8 Update dependency @mui/x-date-pickers to ^8.23.0
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-12-31 00:31:58 +00:00
2b8a93615f Merge pull request 'Update Rust crate serde_json to 1.0.148' (#165) from renovate/serde_json-1.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2025-12-30 00:34:12 +00:00
e3bd57ca0c Update Rust crate serde_json to 1.0.148
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-12-29 00:33:03 +00:00
c6802fde68 Merge pull request 'Update dependency @mui/x-charts to ^8.23.0' (#164) from renovate/mui-x-charts-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2025-12-28 00:31:22 +00:00
6f93ac7e01 Update dependency @mui/x-charts to ^8.23.0
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-12-27 00:32:18 +00:00
736d0d56f0 Merge pull request 'Update Rust crate serde_json to 1.0.147' (#163) from renovate/serde_json-1.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2025-12-25 00:34:09 +00:00
b16cb3c9d4 Update Rust crate serde_json to 1.0.147
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-12-24 00:31:43 +00:00
7fd3c0c687 Merge pull request 'Update dependency @mui/x-charts to ^8.22.1' (#162) from renovate/mui-x-charts-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
2025-12-22 00:32:51 +00:00
006959c434 Update dependency @mui/x-charts to ^8.22.1
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2025-12-21 00:31:41 +00:00
10 changed files with 1556 additions and 1313 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -4,36 +4,35 @@ version = "0.1.0"
edition = "2024"
[dependencies]
env_logger = "0.11.8"
env_logger = "0.11.10"
log = "0.4.29"
diesel = { version = "2.2.12", features = ["postgres", "r2d2"] }
diesel_migrations = "2.2.0"
clap = { version = "4.5.53", features = ["env", "derive"] }
actix-web = "4.11.0"
diesel = { version = "2.3.7", features = ["postgres", "r2d2"] }
diesel_migrations = "2.3.1"
clap = { version = "4.5.60", features = ["env", "derive"] }
actix-web = "4.13.0"
actix-cors = "0.7.1"
actix-multipart = "0.7.2"
actix-remote-ip = "0.1.0"
actix-session = { version = "0.10.1", features = ["redis-session"] }
actix-files = "0.6.9"
lazy_static = "1.5.0"
anyhow = "1.0.100"
actix-session = { version = "0.11.0", features = ["redis-session"] }
actix-files = "0.6.10"
anyhow = "1.0.102"
serde = { version = "1.0.228", features = ["derive"] }
rust-s3 = "0.36.0-beta.2"
thiserror = "2.0.17"
tokio = "1.45.1"
futures-util = "0.3.31"
serde_json = "1.0.145"
light-openid = "1.0.4"
rand = "0.9.2"
rust-s3 = "0.37.1"
thiserror = "2.0.18"
tokio = "1.49.0"
futures-util = "0.3.32"
serde_json = "1.0.149"
light-openid = "1.1.0"
rand = "0.10.0"
ipnet = { version = "2.11.0", features = ["serde"] }
lazy-regex = "3.4.2"
jwt-simple = { version = "0.12.13", default-features = false, features = ["pure-rust"] }
lazy-regex = "3.6.0"
jwt-simple = { version = "0.12.14", default-features = false, features = ["pure-rust"] }
mime_guess = "2.0.5"
rust-embed = { version = "8.7.2" }
sha2 = "0.11.0-rc.3"
base16ct = "0.2.0"
rust-embed = { version = "8.11.0" }
sha2 = "0.11.0"
base16ct = { version = "1.0.0", features = ["alloc"] }
httpdate = "1.0.3"
chrono = "0.4.42"
tempfile = "3.20.0"
zip = "3.0.0"
rust_xlsxwriter = "0.87.0"
chrono = "0.4.44"
tempfile = "3.25.0"
zip = "8.1.0"
rust_xlsxwriter = "0.93.0"

View File

@@ -1,6 +1,7 @@
use clap::Parser;
use s3::creds::Credentials;
use s3::{Bucket, Region};
use std::sync::OnceLock;
/// Money Manager backend API
#[derive(Parser, Debug, Clone)]
@@ -132,16 +133,13 @@ pub struct AppConfig {
pub apk_download_url: String,
}
lazy_static::lazy_static! {
static ref ARGS: AppConfig = {
AppConfig::parse()
};
}
/// Cached application config
static ARGS: OnceLock<AppConfig> = OnceLock::new();
impl AppConfig {
/// Get parsed command line arguments
pub fn get() -> &'static AppConfig {
&ARGS
ARGS.get_or_init(AppConfig::parse)
}
/// Get auto login email (if not empty)

View File

@@ -2,8 +2,7 @@ use crate::app_config::AppConfig;
use diesel::PgConnection;
use diesel::r2d2::{ConnectionManager, Pool, PooledConnection};
use diesel_migrations::{EmbeddedMigrations, MigrationHarness, embed_migrations};
use lazy_static::lazy_static;
use std::sync::Arc;
use std::sync::{Arc, OnceLock};
const MIGRATIONS: EmbeddedMigrations = embed_migrations!();
@@ -20,12 +19,13 @@ fn get_db_connection_pool() -> anyhow::Result<DBConn> {
))
}
lazy_static! {
static ref DB_POOL: DBConn = get_db_connection_pool().expect("Failed to connect to database");
}
static DB_POOL: OnceLock<DBConn> = OnceLock::new();
pub fn db() -> anyhow::Result<PooledConnection<ConnectionManager<PgConnection>>> {
Ok(DB_POOL.clone().get()?)
Ok(DB_POOL
.get_or_init(|| get_db_connection_pool().expect("Failed to connect to database"))
.clone()
.get()?)
}
pub fn initialize_conn() -> anyhow::Result<()> {

View File

@@ -1,5 +1,5 @@
use crate::app_config::AppConfig;
use crate::controllers::{HttpFailure, HttpResult};
use crate::controllers::HttpResult;
use crate::extractors::auth_extractor::{AuthExtractor, AuthenticatedMethod};
use crate::extractors::money_session::MoneySession;
use crate::services::{tokens_service, users_service};
@@ -61,9 +61,7 @@ pub async fn finish_oidc(
let prov = AppConfig::get().openid_provider();
let conf = OpenIDConfig::load_from_url(prov.configuration_url)
.await
.map_err(HttpFailure::OpenID)?;
let conf = OpenIDConfig::load_from_url(prov.configuration_url).await?;
let (token, _) = conf
.request_token(
@@ -72,12 +70,8 @@ pub async fn finish_oidc(
&req.code,
&AppConfig::get().oidc_redirect_url(),
)
.await
.map_err(HttpFailure::OpenID)?;
let (user_info, _) = conf
.request_user_info(&token)
.await
.map_err(HttpFailure::OpenID)?;
.await?;
let (user_info, _) = conf.request_user_info(&token).await?;
if user_info.email_verified != Some(true) {
log::error!("Email is not verified!");

View File

@@ -1,7 +1,7 @@
use crate::controllers::backup_controller::BackupControllerError;
use actix_web::http::StatusCode;
use actix_web::{HttpResponse, ResponseError};
use std::error::Error;
use light_openid::errors::OpenIdError;
use zip::result::ZipError;
pub mod accounts_controller;
@@ -28,7 +28,7 @@ pub enum HttpFailure {
#[error("an unhandled session error occurred")]
SessionError(#[from] actix_session::SessionGetError),
#[error("an unspecified open id error occurred: {0}")]
OpenID(Box<dyn Error>),
OpenID(#[from] OpenIdError),
#[error("an unspecified internal error occurred: {0}")]
InternalError(#[from] anyhow::Error),
#[error("a serde_json error occurred: {0}")]

View File

@@ -7,3 +7,20 @@ pub fn sha512(bytes: &[u8]) -> String {
let h = hasher.finalize();
base16ct::lower::encode_string(h.as_slice())
}
#[cfg(test)]
mod tests {
use crate::utils::crypt_utils::sha512;
#[test]
fn test_sha512() {
assert_eq!(
sha512(&[]),
"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"
);
assert_eq!(
sha512("hello".as_bytes()),
"9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043"
);
}
}

View File

@@ -33,10 +33,10 @@ dependencies:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.8
cupertino_icons: 1.0.9
# Preferences management
shared_preferences: 2.5.4
shared_preferences: 2.5.5
# Credentials storage
flutter_secure_storage: ^9.2.4
@@ -68,10 +68,10 @@ dependencies:
logging: ^1.3.0
# API authentication
dart_jsonwebtoken: 3.3.1
dart_jsonwebtoken: 3.3.2
# API requests
dio: 5.9.0
dio: 5.9.2
http_parser: ^4.1.2
# Qr Code library
@@ -94,7 +94,7 @@ dependencies:
pdf_image_renderer: ^1.0.1
# Text extraction
google_mlkit_text_recognition: ^0.15.0
google_mlkit_text_recognition: 0.15.1
dev_dependencies:
flutter_test:
@@ -111,7 +111,7 @@ dev_dependencies:
flutter_launcher_icons: ^0.14.4
# Generate source code
build_runner: 2.10.4
build_runner: 2.10.5
# Riverpod code generation
riverpod_generator: ^2.6.5

File diff suppressed because it is too large Load Diff

View File

@@ -12,32 +12,32 @@
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.1",
"@fontsource/roboto": "^5.2.9",
"@fontsource/roboto": "^5.2.10",
"@jsonjoy.com/base64": "^1.1.2",
"@mdi/js": "^7.4.47",
"@mdi/react": "^1.6.1",
"@mui/icons-material": "^7.1.2",
"@mui/material": "^7.1.2",
"@mui/x-charts": "^8.21.0",
"@mui/x-charts": "^8.28.0",
"@mui/x-data-grid": "^8.18.0",
"@mui/x-date-pickers": "^8.21.0",
"@mui/x-date-pickers": "^8.23.0",
"date-and-time": "^3.6.0",
"dayjs": "^1.11.19",
"dayjs": "^1.11.20",
"filesize": "^10.1.6",
"qrcode.react": "^4.2.0",
"react": "^19.2.3",
"react-dom": "^19.2.3",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"react-router": "^7.6.3",
"react-router-dom": "^7.6.3",
"ts-pattern": "^5.8.0"
},
"devDependencies": {
"@eslint/js": "^9.39.2",
"@types/react": "^19.2.7",
"@eslint/js": "^9.39.4",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^4.7.0",
"eslint": "^9.39.2",
"eslint-plugin-react-dom": "^1.52.4",
"eslint": "^9.39.4",
"eslint-plugin-react-dom": "^1.53.1",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^00.4.20",
"eslint-plugin-react-x": "^1.53.1",