Compare commits

...
Author SHA1 Message Date
phoenix bea9489c8e Added features
textsender_models PR / Rustfmt (pull_request) Successful in 58s
textsender_models PR / Clippy (pull_request) Successful in 59s
textsender_models PR / Check (pull_request) Successful in 1m8s
Release Tagging / release (pull_request) Successful in 28s
2026-06-14 17:19:39 -04:00
phoenix bb3f2f3af5 Adding pr workflow
textsender_models PR / Rustfmt (pull_request) Successful in 56s
textsender_models PR / Check (pull_request) Successful in 1m0s
textsender_models PR / Clippy (pull_request) Successful in 1m16s
Release Tagging / release (pull_request) Successful in 29s
2026-06-14 17:09:57 -04:00
phoenix 8622b8c720 Limiting workflows ran in pr
Release Tagging / release (pull_request) Failing after 29s
2026-06-14 17:09:07 -04:00
phoenix c09fa36b15 Claim fix (#27)
Release Tagging / release (push) Successful in 35s
Rust Build / Rustfmt (push) Successful in 39s
Rust Build / Test Suite (push) Successful in 1m13s
Rust Build / Check (push) Successful in 1m30s
Rust Build / build (push) Successful in 47s
Rust Build / Clippy (push) Successful in 1m23s
Reviewed-on: phoenix/textsender_models#27
2026-06-13 19:00:22 -04:00
5 changed files with 58 additions and 10 deletions
+42
View File
@@ -0,0 +1,42 @@
name: textsender_models PR
on:
pull_request:
branches:
- main
jobs:
check:
name: Check
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: 1.95
- uses: Swatinem/rust-cache@v2
- run: cargo check
fmt:
name: Rustfmt
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: 1.95
- uses: Swatinem/rust-cache@v2
- run: rustup component add rustfmt
- run: cargo fmt --all -- --check
clippy:
name: Clippy
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: 1.95
- uses: Swatinem/rust-cache@v2
- run: rustup component add clippy
- run: cargo clippy -- -D warnings
-3
View File
@@ -4,9 +4,6 @@ on:
push: push:
branches: branches:
- main - main
pull_request:
branches:
- main
jobs: jobs:
check: check:
Generated
+1 -1
View File
@@ -522,7 +522,7 @@ dependencies = [
[[package]] [[package]]
name = "textsender_models" name = "textsender_models"
version = "0.3.2" version = "0.3.4"
dependencies = [ dependencies = [
"const_format", "const_format",
"dotenvy", "dotenvy",
+8 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "textsender_models" name = "textsender_models"
version = "0.3.2" version = "0.3.4"
edition = "2024" edition = "2024"
rust-version = "1.95" rust-version = "1.95"
description = "Models used for the textsender project" description = "Models used for the textsender project"
@@ -15,4 +15,11 @@ const_format = { version = "0.2.36" }
josekit = { version = "0.10.3" } josekit = { version = "0.10.3" }
utoipa = { version = "5.4.0", features = ["uuid", "time"] } utoipa = { version = "5.4.0", features = ["uuid", "time"] }
[features]
default = ["full"]
full = ["user", "message", "contact"]
user = []
message = []
contact = []
[dev-dependencies] [dev-dependencies]
+7 -5
View File
@@ -3,7 +3,8 @@ use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default, Deserialize, Serialize)] #[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct Claims { pub struct Claims {
pub user_id: uuid::Uuid, pub user_id: uuid::Uuid,
pub role: String, #[serde(skip_serializing_if = "Option::is_none")]
pub role: Option<String>,
#[serde(alias = "iss")] #[serde(alias = "iss")]
pub issued: String, pub issued: String,
#[serde(alias = "exp")] #[serde(alias = "exp")]
@@ -42,7 +43,7 @@ pub struct LoginResult {
pub issued_at: i64, pub issued_at: i64,
} }
// Alias for LoginResult /// Alias for LoginResult
pub type Login = LoginResult; pub type Login = LoginResult;
pub fn get_issued() -> time::Result<time::OffsetDateTime> { pub fn get_issued() -> time::Result<time::OffsetDateTime> {
@@ -63,9 +64,10 @@ pub struct TokenResource {
pub message: String, pub message: String,
pub issuer: String, pub issuer: String,
pub audiences: Vec<String>, pub audiences: Vec<String>,
pub id: uuid::Uuid, pub user_id: uuid::Uuid,
} }
/// Token type
pub const TOKEN_TYPE: &str = "JWT"; pub const TOKEN_TYPE: &str = "JWT";
pub fn create_token( pub fn create_token(
@@ -83,8 +85,8 @@ pub fn create_token(
payload.set_subject(message); payload.set_subject(message);
payload.set_issuer(issuer); payload.set_issuer(issuer);
payload.set_audience(audiences.clone()); payload.set_audience(audiences.clone());
if !token_resource.id.is_nil() { if !token_resource.user_id.is_nil() {
match payload.set_claim("id", Some(serde_json::json!(token_resource.id))) { match payload.set_claim("user_id", Some(serde_json::json!(token_resource.user_id))) {
Ok(_) => {} Ok(_) => {}
Err(err) => { Err(err) => {
return Err(err); return Err(err);