Compare commits

..
+11 -24
View File
@@ -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: i64, pub expiration: i32,
pub audience: String, pub audience: String,
pub issuer: String, pub issuer: String,
pub issued: i64, pub issued: i32,
} }
#[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: i64, pub expiration: i32,
#[serde(alias = "message")] #[serde(alias = "message")]
pub message: String, pub message: String,
} }
@@ -57,27 +57,14 @@ impl Token {
false false
} }
// TODO: Implement
pub fn contains_scope(&self, des_scope: &String) -> bool { pub fn contains_scope(&self, des_scope: &String) -> bool {
self.scope.contains(des_scope) let extracted_token: String = String::from("Token");
}
} if extracted_token == *des_scope {
return true;
#[cfg(test)] }
mod tests {
use super::*; false
#[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
);
} }
} }