koprogo_api/application/ports/
refresh_token_repository.rs1use crate::domain::entities::RefreshToken;
2use async_trait::async_trait;
3use uuid::Uuid;
4
5#[async_trait]
6pub trait RefreshTokenRepository: Send + Sync {
7 async fn create(&self, refresh_token: &RefreshToken) -> Result<RefreshToken, String>;
8 async fn find_by_token(&self, token: &str) -> Result<Option<RefreshToken>, String>;
9 async fn find_by_user_id(&self, user_id: Uuid) -> Result<Vec<RefreshToken>, String>;
10 async fn revoke(&self, token: &str) -> Result<bool, String>;
11 async fn revoke_all_for_user(&self, user_id: Uuid) -> Result<u64, String>;
12 async fn delete_expired(&self) -> Result<u64, String>;
13}