@startuml
actor User
boundary ProfileAPI
control UserService
entity DeviceIdentifier
entity GGIUser
database SessionDatabase
database UserDatabase
autonumber
title Get User Profile

User -> ProfileAPI : Get User Profile
ProfileAPI -> UserService : Get User and Device Information
UserService -> DeviceIdentifier : Get User and Device Identifier Combination
|||
group Get User Identifier
    DeviceIdentifier -> SessionDatabase : Select User Identifier based on Device Identifier
    SessionDatabase -> DeviceIdentifier : Return User Identifier
    DeviceIdentifier -> UserService : Return User Identifier
end
|||
group Get User Data
    UserService -> GGIUser : Select GGI User based on User Identifier
    GGIUser -> UserDatabase : Select User using User Identifier
    UserDatabase --> GGIUser : Return User Data
    GGIUser --> UserService : Return User Data
end
UserService --> ProfileAPI : Send User Information
ProfileAPI --> User : Response 200 OK with User Data
@enduml