Merge pull request 'Next release' (#38) from devel into main
All checks were successful
Release Tagging / release (push) Successful in 42s
Rust Build / Check (push) Successful in 33s
Rust Build / Test Suite (push) Successful in 39s
Rust Build / Rustfmt (push) Successful in 31s
Rust Build / Clippy (push) Successful in 37s
Rust Build / build (push) Successful in 30s
Rust Build / Check (pull_request) Successful in 27s
Rust Build / Test Suite (pull_request) Successful in 25s
Rust Build / Rustfmt (pull_request) Successful in 25s
Rust Build / Clippy (pull_request) Successful in 27s
Rust Build / build (pull_request) Successful in 26s
All checks were successful
Release Tagging / release (push) Successful in 42s
Rust Build / Check (push) Successful in 33s
Rust Build / Test Suite (push) Successful in 39s
Rust Build / Rustfmt (push) Successful in 31s
Rust Build / Clippy (push) Successful in 37s
Rust Build / build (push) Successful in 30s
Rust Build / Check (pull_request) Successful in 27s
Rust Build / Test Suite (pull_request) Successful in 25s
Rust Build / Rustfmt (pull_request) Successful in 25s
Rust Build / Clippy (pull_request) Successful in 27s
Rust Build / build (pull_request) Successful in 26s
Reviewed-on: #38
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "icarus_models"
|
name = "icarus_models"
|
||||||
version = "0.4.1"
|
version = "0.4.3"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
rust-version = "1.86"
|
rust-version = "1.86"
|
||||||
description = "models used for the icarus project"
|
description = "models used for the icarus project"
|
||||||
|
31
src/token.rs
31
src/token.rs
@@ -5,10 +5,10 @@ use serde::{Deserialize, Serialize};
|
|||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
pub struct Token {
|
pub struct Token {
|
||||||
pub scope: String,
|
pub scope: String,
|
||||||
pub expiration: i32,
|
pub expiration: i64,
|
||||||
pub audience: String,
|
pub audience: String,
|
||||||
pub issuer: String,
|
pub issuer: String,
|
||||||
pub issued: i32,
|
pub issued: i64,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Deserialize, Serialize)]
|
#[derive(Clone, Debug, Deserialize, Serialize)]
|
||||||
@@ -22,7 +22,7 @@ pub struct AccessToken {
|
|||||||
#[serde(alias = "token_type")]
|
#[serde(alias = "token_type")]
|
||||||
pub token_type: String,
|
pub token_type: String,
|
||||||
#[serde(alias = "expiration")]
|
#[serde(alias = "expiration")]
|
||||||
pub expiration: i32,
|
pub expiration: i64,
|
||||||
#[serde(alias = "message")]
|
#[serde(alias = "message")]
|
||||||
pub message: String,
|
pub message: String,
|
||||||
}
|
}
|
||||||
@@ -57,14 +57,27 @@ impl Token {
|
|||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Implement
|
|
||||||
pub fn contains_scope(&self, des_scope: &String) -> bool {
|
pub fn contains_scope(&self, des_scope: &String) -> bool {
|
||||||
let extracted_token: String = String::from("Token");
|
self.scope.contains(des_scope)
|
||||||
|
}
|
||||||
if extracted_token == *des_scope {
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
false
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_token_scope_check() {
|
||||||
|
let mut token = Token::default();
|
||||||
|
token.scope = String::from("song:read song:upload song:download");
|
||||||
|
|
||||||
|
let check_scope = String::from("song:download");
|
||||||
|
let result = token.contains_scope(&check_scope);
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
result,
|
||||||
|
"Error: The scope {:?} was not found in the token's scope {:?}",
|
||||||
|
check_scope, token.scope
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user