use actix_web::HttpMessage;
use crate::secret::Secret;
pub(crate) enum AuthTokenAction {
Issue(Secret),
Revoke,
DoNothing,
}
impl AuthTokenAction {
pub(crate) fn insert_into_request(self, request: &impl HttpMessage) {
request
.extensions_mut()
.insert(self);
}
pub(crate) fn take_from_request(request: &impl HttpMessage) -> Self {
request
.extensions_mut()
.remove()
.unwrap_or(AuthTokenAction::DoNothing)
}
}