@startuml dependencies actor Client participant "OAuth2PasswordBearer" as oauth2 participant "Dependencies" as dependencies participant "JWTError" as jwtError participant "HTTPException" as httpException database "TinyDBHelper" as db Client -> dependencies : get_current_user(token) activate dependencies dependencies -> oauth2 : token oauth2 --> dependencies : token dependencies -> dependencies : decode_jwt(token) activate dependencies alt success dependencies --> dependencies : payload else JWTError dependencies -> jwtError : raise credentials_exception jwtError --> dependencies : HTTP_401_UNAUTHORIZED end deactivate dependencies dependencies -> db : query_token(user_id, token) activate db alt token valid db --> dependencies : true else token invalid db --> dependencies : false dependencies -> httpException : raise expiry_exception httpException --> dependencies : HTTP_401_UNAUTHORIZED end deactivate db dependencies --> Client : user_details deactivate dependencies @enduml