@startuml ' title =**Upload Subscriptions** participant SubscriptionController << (C, #ADD1B2) @Controller >> -> SubscriptionController: ""PUT /subscriptions/{username}/{deviceid}.json"" \n//@RequestBody List subscriptions// \n\n-> uploadSubscriptions(""username"", ""deviceid"", //subscriptions//) activate SubscriptionController participant SubscriptionService << (C, #ADD1B2) @Service >> SubscriptionController -> SubscriptionService: uploadSubscriptions(""username"", //subscriptions//) activate SubscriptionService participant SubscriptionDataAccessService << (C, #ADD1B2) @Repository >> SubscriptionService -> SubscriptionDataAccessService: uploadSubscriptions(""username"", //subscriptions//) activate SubscriptionDataAccessService database Database SubscriptionDataAccessService -> Database: delete all subsciptions of ""username"" activate Database Database --> SubscriptionDataAccessService SubscriptionDataAccessService -> SubscriptionDataAccessService: addSubscriptions(""username"", //subscriptions//) activate SubscriptionDataAccessService SubscriptionDataAccessService -> Database: upload all subscriptions (//subscriptions//) for ""username"" Database --> SubscriptionDataAccessService deactivate Database SubscriptionDataAccessService --> SubscriptionDataAccessService: int indicating status deactivate SubscriptionDataAccessService SubscriptionDataAccessService --> SubscriptionService: int indicating status deactivate SubscriptionDataAccessService SubscriptionService --> SubscriptionController: int indicating status deactivate SubscriptionService <-- SubscriptionController: ResponseEntity with empty String for success \n\n-> ""HTTP status code"" \n-> ""JSON"" deactivate SubscriptionController @enduml