@startuml getCredits

actor User
participant Middlewares
participant Controllers
database Postgres

autonumber
User -> Middlewares ++: GET/users/credits/mine
group step: Authentication
    Middlewares -> Middlewares : checkAuth
else Unauthorized
    autonumber 3
    Middlewares --[#red]> User : 401 Unauthorized - Token not provided
    autonumber 3
    Middlewares --[#red]> User : 401 Unauthorized - Token not valid
end
group step: Get Credits
    autonumber 3
    Middlewares -> Controllers --++: getCredits
    Controllers -> Postgres ++: findByPk
    Postgres --> Controllers: return User
    Controllers -> Controllers : getCreds
    Controllers --[#green]> User : 200 OK - Credits
else Get Failed
    autonumber 5
    Postgres --[#red]> Controllers --: 500 Internal Server Error
    Controllers --[#red]> User --: 500 Internal Server Error
end

@enduml