@startuml ' title =**Get All Subscriptions** participant SubscriptionController << (C, #ADD1B2) @Controller >> -> SubscriptionController: ""GET /subscriptions/{username}.json"" \n"" /subscriptions/{username}/{deviceid}.json"" \n//@RequestParam("jsonp") String functionJSONP// \n\n-> getSubscriptions(""username"", ""deviceid"", //functionJSONP//) activate SubscriptionController note right Die Parameter ""deviceid"" und //functionJSONP// werden ignoriert, da nicht zwischen Geräten unterschieden und JSONP nicht unterstützt wird. end note participant SubscriptionService << (C, #ADD1B2) @Service >> SubscriptionController -> SubscriptionService: getSubscriptions(""username"") activate SubscriptionService participant SubscriptionDataAccessService << (C, #ADD1B2) @Repository >> SubscriptionService -> SubscriptionDataAccessService: getSubscriptions(""username"") activate SubscriptionDataAccessService SubscriptionDataAccessService -> SubscriptionDataAccessService: getSubscriptionsSince(""username"", LocalDateTime.MIN) database Database activate SubscriptionDataAccessService SubscriptionDataAccessService -> Database: get all Subscriptions for ""username"" activate Database Database --> SubscriptionDataAccessService: List subscriptions SubscriptionDataAccessService -> Database: get Podcasts from Subscriptions Database --> SubscriptionDataAccessService: List subscribedPodcasts deactivate Database SubscriptionDataAccessService --> SubscriptionDataAccessService: List podcastURLs deactivate SubscriptionDataAccessService SubscriptionDataAccessService --> SubscriptionService: List podcastURLs deactivate SubscriptionDataAccessService SubscriptionService --> SubscriptionController: List podcastURLs deactivate SubscriptionService <-- SubscriptionController: ResponseEntity> podcastURLs \n \n-> ""HTTP status code"" \n-> ""JSON"" deactivate SubscriptionController @enduml