Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7834093a6
|
||
|
|
bea9489c8e
|
||
|
|
bb3f2f3af5
|
||
|
|
8622b8c720
|
||
|
|
c09fa36b15 |
@@ -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
|
||||||
@@ -4,9 +4,6 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check:
|
check:
|
||||||
|
|||||||
Generated
+1
-1
@@ -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",
|
||||||
|
|||||||
+11
-1
@@ -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,14 @@ 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", "config", "envy", "token"]
|
||||||
|
user = []
|
||||||
|
message = []
|
||||||
|
contact = []
|
||||||
|
config = []
|
||||||
|
envy = []
|
||||||
|
token = []
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|||||||
+7
-5
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user