@startuml

actor Client
participant Client

box "Prime"
    participant "client-api"
    participant "payment-processor"
    participant "DAO"
end box
participant Stripe

activate Client
    Client -> "client-api": GET /sources
    activate "client-api"

    "client-api" -> "payment-processor" : getSavedSources(name)
    activate "payment-processor"

    "payment-processor" -> DAO : getStripeCustomerId(name)
    activate DAO
    DAO -> "payment-processor" : {customerId}
    deactivate DAO

    "payment-processor" -> Stripe : GET /v1/customers/<customerId>
    activate Stripe
    Stripe -> "payment-processor" : {customer}
    deactivate Stripe
    note right of "payment-processor" : The {customer} object includes a list of sources

    "payment-processor" -> "client-api" :  [{source}, ... ]
    deactivate "payment-processor"

    "client-api" -> Client : {result}
    deactivate "client-api"

deactivate Client

@enduml
