From adfc48fb9e8d7119d100a3cc28a753eb86b667b5 Mon Sep 17 00:00:00 2001 From: Artem Goncharov Date: Mon, 24 Feb 2025 19:44:10 +0100 Subject: [PATCH] chore: Drop unnecessary abstraction --- src/api/v3/auth/token/mod.rs | 2 +- src/token/application_credential.rs | 17 +--------- src/token/domain_scoped.rs | 17 +--------- src/token/mod.rs | 1 - src/token/project_scoped.rs | 17 +--------- src/token/types.rs | 52 +++++++++++++---------------- src/token/unscoped.rs | 17 +--------- 7 files changed, 29 insertions(+), 94 deletions(-) diff --git a/src/api/v3/auth/token/mod.rs b/src/api/v3/auth/token/mod.rs index af2fe237..ebb97104 100644 --- a/src/api/v3/auth/token/mod.rs +++ b/src/api/v3/auth/token/mod.rs @@ -18,7 +18,7 @@ use utoipa_axum::{router::OpenApiRouter, routes}; use crate::api::auth::Auth; use crate::api::error::KeystoneApiError; use crate::keystone::ServiceState; -use crate::token::{TokenApi, types::TokenData}; +use crate::token::TokenApi; use types::{TokenBuilder, TokenResponse}; pub mod types; diff --git a/src/token/application_credential.rs b/src/token/application_credential.rs index bcbb8075..e3756d75 100644 --- a/src/token/application_credential.rs +++ b/src/token/application_credential.rs @@ -21,7 +21,7 @@ use crate::token::{ error::TokenProviderError, fernet::{self, MsgPackToken}, fernet_utils, - types::{Token, TokenData}, + types::Token, }; #[derive(Clone, Debug, Default)] @@ -34,21 +34,6 @@ pub struct ApplicationCredentialToken { pub application_credential_id: String, } -impl TokenData for ApplicationCredentialToken { - fn user_id(&self) -> &String { - &self.user_id - } - fn expires_at(&self) -> &DateTime { - &self.expires_at - } - fn methods(&self) -> &Vec { - &self.methods - } - fn audit_ids(&self) -> &Vec { - &self.audit_ids - } -} - impl From for Token { fn from(value: ApplicationCredentialToken) -> Self { Token::ApplicationCredential(value) diff --git a/src/token/domain_scoped.rs b/src/token/domain_scoped.rs index a675fd12..d8bdc269 100644 --- a/src/token/domain_scoped.rs +++ b/src/token/domain_scoped.rs @@ -21,7 +21,7 @@ use crate::token::{ error::TokenProviderError, fernet::{self, MsgPackToken}, fernet_utils, - types::{Token, TokenData}, + types::Token, }; #[derive(Clone, Debug, Default)] @@ -33,21 +33,6 @@ pub struct DomainScopeToken { pub domain_id: String, } -impl TokenData for DomainScopeToken { - fn user_id(&self) -> &String { - &self.user_id - } - fn expires_at(&self) -> &DateTime { - &self.expires_at - } - fn methods(&self) -> &Vec { - &self.methods - } - fn audit_ids(&self) -> &Vec { - &self.audit_ids - } -} - impl From for Token { fn from(value: DomainScopeToken) -> Self { Token::DomainScope(value) diff --git a/src/token/mod.rs b/src/token/mod.rs index 5c15a004..3fa25a2e 100644 --- a/src/token/mod.rs +++ b/src/token/mod.rs @@ -34,7 +34,6 @@ pub use application_credential::ApplicationCredentialToken; pub use domain_scoped::DomainScopeToken; pub use project_scoped::ProjectScopeToken; pub use types::Token; -use types::TokenData; pub use unscoped::UnscopedToken; #[derive(Clone, Debug)] diff --git a/src/token/project_scoped.rs b/src/token/project_scoped.rs index a93b982c..ea341476 100644 --- a/src/token/project_scoped.rs +++ b/src/token/project_scoped.rs @@ -21,7 +21,7 @@ use crate::token::{ error::TokenProviderError, fernet::{self, MsgPackToken}, fernet_utils, - types::{Token, TokenData}, + types::Token, }; #[derive(Clone, Debug, Default)] @@ -33,21 +33,6 @@ pub struct ProjectScopeToken { pub project_id: String, } -impl TokenData for ProjectScopeToken { - fn user_id(&self) -> &String { - &self.user_id - } - fn expires_at(&self) -> &DateTime { - &self.expires_at - } - fn methods(&self) -> &Vec { - &self.methods - } - fn audit_ids(&self) -> &Vec { - &self.audit_ids - } -} - impl From for Token { fn from(value: ProjectScopeToken) -> Self { Token::ProjectScope(value) diff --git a/src/token/types.rs b/src/token/types.rs index 3d22fb48..7ba41f8f 100644 --- a/src/token/types.rs +++ b/src/token/types.rs @@ -30,44 +30,40 @@ pub enum Token { ApplicationCredential(ApplicationCredentialToken), } -pub trait TokenData { - fn user_id(&self) -> &String; - fn expires_at(&self) -> &DateTime; - fn methods(&self) -> &Vec; - fn audit_ids(&self) -> &Vec; -} - -impl TokenData for Token { - fn user_id(&self) -> &String { +impl Token { + pub fn user_id(&self) -> &String { match self { - Token::Unscoped(x) => x.user_id(), - Token::ProjectScope(x) => x.user_id(), - Token::DomainScope(x) => x.user_id(), - Token::ApplicationCredential(x) => x.user_id(), + Token::Unscoped(x) => &x.user_id, + Token::ProjectScope(x) => &x.user_id, + Token::DomainScope(x) => &x.user_id, + Token::ApplicationCredential(x) => &x.user_id, } } - fn expires_at(&self) -> &DateTime { + + pub fn expires_at(&self) -> &DateTime { match self { - Token::Unscoped(x) => x.expires_at(), - Token::ProjectScope(x) => x.expires_at(), - Token::DomainScope(x) => x.expires_at(), - Token::ApplicationCredential(x) => x.expires_at(), + Token::Unscoped(x) => &x.expires_at, + Token::ProjectScope(x) => &x.expires_at, + Token::DomainScope(x) => &x.expires_at, + Token::ApplicationCredential(x) => &x.expires_at, } } - fn methods(&self) -> &Vec { + + pub fn methods(&self) -> &Vec { match self { - Token::Unscoped(x) => x.methods(), - Token::ProjectScope(x) => x.methods(), - Token::DomainScope(x) => x.methods(), - Token::ApplicationCredential(x) => x.methods(), + Token::Unscoped(x) => &x.methods, + Token::ProjectScope(x) => &x.methods, + Token::DomainScope(x) => &x.methods, + Token::ApplicationCredential(x) => &x.methods, } } - fn audit_ids(&self) -> &Vec { + + pub fn audit_ids(&self) -> &Vec { match self { - Token::Unscoped(x) => x.audit_ids(), - Token::ProjectScope(x) => x.audit_ids(), - Token::DomainScope(x) => x.audit_ids(), - Token::ApplicationCredential(x) => x.audit_ids(), + Token::Unscoped(x) => &x.audit_ids, + Token::ProjectScope(x) => &x.audit_ids, + Token::DomainScope(x) => &x.audit_ids, + Token::ApplicationCredential(x) => &x.audit_ids, } } } diff --git a/src/token/unscoped.rs b/src/token/unscoped.rs index 1e4e9175..88b20b18 100644 --- a/src/token/unscoped.rs +++ b/src/token/unscoped.rs @@ -21,7 +21,7 @@ use crate::token::{ error::TokenProviderError, fernet::{self, MsgPackToken}, fernet_utils, - types::{Token, TokenData}, + types::Token, }; #[derive(Clone, Debug, Default)] @@ -32,21 +32,6 @@ pub struct UnscopedToken { pub expires_at: DateTime, } -impl TokenData for UnscopedToken { - fn user_id(&self) -> &String { - &self.user_id - } - fn expires_at(&self) -> &DateTime { - &self.expires_at - } - fn methods(&self) -> &Vec { - &self.methods - } - fn audit_ids(&self) -> &Vec { - &self.audit_ids - } -} - impl From for Token { fn from(value: UnscopedToken) -> Self { Token::Unscoped(value)