From 255aff414a69b13f32758ce9e61286d6aa9e8db8 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 5 Apr 2025 15:39:44 +0000 Subject: [PATCH 1/5] user_and_salt (#27) Reviewed-on: https://git.kundeng.us/phoenix/icarus_models/pulls/27 Co-authored-by: phoenix Co-committed-by: phoenix --- src/user.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/user.rs b/src/user.rs index 6efeb3c..56e570d 100644 --- a/src/user.rs +++ b/src/user.rs @@ -27,6 +27,8 @@ pub struct User { pub status: String, #[serde(skip_serializing_if = "String::is_empty")] pub last_login: String, + #[serde(skip_serializing_if = "init::is_uuid_nil")] + pub salt_id: uuid::Uuid, } impl Default for User { @@ -43,6 +45,7 @@ impl Default for User { date_created: String::new(), status: String::new(), last_login: String::new(), + salt_id: uuid::Uuid::nil(), } } } @@ -56,3 +59,29 @@ impl User { } } } + +pub mod salt { + use std::default::Default; + + use crate::init; + + use serde::{Deserialize, Serialize}; + + #[derive(Clone, Debug, Default, Deserialize, Serialize)] + pub struct Salt { + #[serde(skip_serializing_if = "init::is_uuid_nil")] + pub id: uuid::Uuid, + #[serde(skip_serializing_if = "String::is_empty")] + pub salt: String, + } + + impl Salt { + pub fn to_json(&self, output_pretty: bool) -> Result { + if output_pretty { + serde_json::to_string_pretty(&self) + } else { + serde_json::to_string(&self) + } + } + } +} From d476b128cb6d4836d4f5e008fbbc30d20be23c6b Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 5 Apr 2025 16:25:57 +0000 Subject: [PATCH 2/5] user_change (#28) Reviewed-on: https://git.kundeng.us/phoenix/icarus_models/pulls/28 Co-authored-by: phoenix Co-committed-by: phoenix --- Cargo.toml | 1 + src/user.rs | 10 ++++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 585bb1e..98edcd5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ license = "MIT" serde = { version = "1.0.218", features = ["derive"] } serde_json = { version = "1.0.139" } rand = { version = "0.9" } +time = { version = "0.3.41", features = ["macros", "serde"] } uuid = { version = "1.16.0", features = ["v4", "serde"] } [dev-dependencies] tempfile = { version = "3.19.1" } diff --git a/src/user.rs b/src/user.rs index 56e570d..2b5cb22 100644 --- a/src/user.rs +++ b/src/user.rs @@ -21,12 +21,10 @@ pub struct User { #[serde(skip_serializing_if = "String::is_empty")] pub lastname: String, pub email_verified: bool, - #[serde(skip_serializing_if = "String::is_empty")] - pub date_created: String, + pub date_created: Option, #[serde(skip_serializing_if = "String::is_empty")] pub status: String, - #[serde(skip_serializing_if = "String::is_empty")] - pub last_login: String, + pub last_login: Option, #[serde(skip_serializing_if = "init::is_uuid_nil")] pub salt_id: uuid::Uuid, } @@ -42,9 +40,9 @@ impl Default for User { firstname: String::new(), lastname: String::new(), email_verified: false, - date_created: String::new(), + date_created: None, status: String::new(), - last_login: String::new(), + last_login: None, salt_id: uuid::Uuid::nil(), } } From e9d73c391e22a35dbb45814a9e82d02bec0728a8 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 5 Apr 2025 16:58:52 +0000 Subject: [PATCH 3/5] user_change_again (#29) Reviewed-on: https://git.kundeng.us/phoenix/icarus_models/pulls/29 Co-authored-by: phoenix Co-committed-by: phoenix --- Cargo.toml | 2 +- src/user.rs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 98edcd5..62f65b7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT" serde = { version = "1.0.218", features = ["derive"] } serde_json = { version = "1.0.139" } rand = { version = "0.9" } -time = { version = "0.3.41", features = ["macros", "serde"] } +time = { version = "0.3.41", features = ["formatting", "macros", "parsing", "serde"] } uuid = { version = "1.16.0", features = ["v4", "serde"] } [dev-dependencies] tempfile = { version = "3.19.1" } diff --git a/src/user.rs b/src/user.rs index 2b5cb22..5095618 100644 --- a/src/user.rs +++ b/src/user.rs @@ -21,9 +21,11 @@ pub struct User { #[serde(skip_serializing_if = "String::is_empty")] pub lastname: String, pub email_verified: bool, + #[serde(with = "time::serde::rfc3339::option")] pub date_created: Option, #[serde(skip_serializing_if = "String::is_empty")] pub status: String, + #[serde(with = "time::serde::rfc3339::option")] pub last_login: Option, #[serde(skip_serializing_if = "init::is_uuid_nil")] pub salt_id: uuid::Uuid, From 4b6f6cb67d885f965b7906d8d6de78ea2e908b26 Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 5 Apr 2025 17:30:16 +0000 Subject: [PATCH 4/5] rust_version (#31) Reviewed-on: https://git.kundeng.us/phoenix/icarus_models/pulls/31 Co-authored-by: phoenix Co-committed-by: phoenix --- Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Cargo.toml b/Cargo.toml index 62f65b7..f8408f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ name = "icarus_models" version = "0.3.0" edition = "2024" +rust-version = "1.86" description = "models used for the icarus project" license = "MIT" From c555110367969bf04d3aba2f38179bfee020ac4c Mon Sep 17 00:00:00 2001 From: phoenix Date: Sat, 5 Apr 2025 18:13:28 +0000 Subject: [PATCH 5/5] rust_version_bump (#32) Reviewed-on: https://git.kundeng.us/phoenix/icarus_models/pulls/32 Co-authored-by: phoenix Co-committed-by: phoenix --- .gitea/workflows/tag_release.yaml | 2 +- .gitea/workflows/workflow.yaml | 10 +++++----- Cargo.toml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/tag_release.yaml b/.gitea/workflows/tag_release.yaml index 6a11acb..b4106cc 100644 --- a/.gitea/workflows/tag_release.yaml +++ b/.gitea/workflows/tag_release.yaml @@ -19,7 +19,7 @@ jobs: - name: Install Rust uses: actions-rs/toolchain@v1 with: - toolchain: 1.85.0 + toolchain: 1.86.0 components: cargo - name: Extract Version from Cargo.toml diff --git a/.gitea/workflows/workflow.yaml b/.gitea/workflows/workflow.yaml index cf14ef2..ac7c0a1 100644 --- a/.gitea/workflows/workflow.yaml +++ b/.gitea/workflows/workflow.yaml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.85.0 + toolchain: 1.86.0 - run: cargo check test: @@ -28,7 +28,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.85.0 + toolchain: 1.86.0 - run: cargo test fmt: @@ -38,7 +38,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.85.0 + toolchain: 1.86.0 - run: rustup component add rustfmt - run: cargo fmt --all -- --check @@ -49,7 +49,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.85.0 + toolchain: 1.86.0 - run: rustup component add clippy - run: cargo clippy -- -D warnings @@ -60,7 +60,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: - toolchain: 1.85.0 + toolchain: 1.86.0 - run: cargo build diff --git a/Cargo.toml b/Cargo.toml index f8408f1..261f79b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "icarus_models" -version = "0.3.0" +version = "0.4.0" edition = "2024" rust-version = "1.86" description = "models used for the icarus project"