Skip to main content

pleme_auth_sessions/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum SessionError {
5    #[error("Sessão não encontrada")]
6    SessionNotFound,
7
8    #[error("Sessão expirada")]
9    SessionExpired,
10
11    #[error("Sessão inválida: {0}")]
12    InvalidSession(String),
13
14    #[error("Erro ao acessar Redis: {0}")]
15    RedisError(String),
16
17    #[error("Erro ao serializar sessão: {0}")]
18    SerializationError(String),
19
20    #[error("Erro ao desserializar sessão: {0}")]
21    DeserializationError(String),
22
23    #[error("Token de atualização não encontrado")]
24    RefreshTokenNotFound,
25
26    #[error("Token de atualização inválido")]
27    InvalidRefreshToken,
28
29    #[error("Limite de sessões excedido (máximo: {0})")]
30    SessionLimitExceeded(usize),
31
32    #[error("Dispositivo não encontrado: {0}")]
33    DeviceNotFound(String),
34
35    #[error("Muitos dispositivos confiáveis (máximo permitido)")]
36    TooManyTrustedDevices,
37}
38
39impl From<redis::RedisError> for SessionError {
40    fn from(err: redis::RedisError) -> Self {
41        SessionError::RedisError(err.to_string())
42    }
43}
44
45impl From<serde_json::Error> for SessionError {
46    fn from(err: serde_json::Error) -> Self {
47        SessionError::SerializationError(err.to_string())
48    }
49}