diff --git a/src/main/asciidoc/models/design/seq_users.puml b/src/main/asciidoc/models/design/seq_users.puml new file mode 100644 index 0000000..b25b9f6 --- /dev/null +++ b/src/main/asciidoc/models/design/seq_users.puml @@ -0,0 +1,97 @@ +@startuml + +participant User +participant "User:customer" as User_customer +participant "User:admin" as User_admin +participant UserController +participant UserManagement +participant UserRepository +participant UserDataInitializier +participant Spring + +== Create Admin == + +UserDataInitializier -> UserManagement : createAdmin() +activate UserDataInitializier +activate UserManagement +UserManagement -> UserRepository : "save(User:admin)" +activate User_admin +activate UserRepository +UserManagement <-- UserRepository : User_admin +deactivate UserRepository +UserDataInitializier <-- UserManagement : User +deactivate UserManagement +deactivate UserDataInitializier +deactivate User_admin + +== Create Customer == + +UserDataInitializier -> UserManagement : createCustomer(String,String,String) +activate UserDataInitializier +activate UserManagement +UserManagement -> UserRepository : "save(User:customer)" +activate User_customer +activate UserRepository +UserManagement <-- UserRepository : User +deactivate UserRepository +UserDataInitializier <-- UserManagement : User +deactivate UserManagement +deactivate UserDataInitializier +deactivate User_customer + +== Delete User (Customer) == + +Spring -> UserController : deleteUser() +activate User_customer +activate Spring +activate UserController +UserController -> UserManagement : deleteUser(UserIdentifier) +activate UserManagement +UserManagement -> UserRepository : deleteById(UserIdentifier) +activate UserRepository +UserManagement <-- UserRepository +deactivate UserRepository +UserController <-- UserManagement +deactivate UserManagement +destroy User_customer +UserController <-- Spring: "redirect:/" +deactivate UserController +deactivate Spring + +== View Profile == + +Spring -> UserController : index(Model) +activate User +activate Spring +activate UserController +UserController -> Spring : model.addAttribute("user",User) +UserController <-- Spring : Model +Spring <-- UserController : "profile" +deactivate Spring +deactivate UserController +'technically spring is sending requests to User +'but i wrote these requests in profile.html +'so i'm not sure if i should add them +deactivate User + +== Edit Profile == + +Spring -> UserController : editProfile(String:password,String:address,String:username) +activate User +activate Spring +activate UserController +UserController -> User : [!String:username.isBlank()] setUsername(String:username) +UserController <-- User : boolean +UserController -> User : [!String:address.isBlank()] setAddress(String:address) +UserController <-- User : boolean +UserController -> User : [!String:password.isBlank()] setPassword(String:password) +UserController <-- User : boolean +UserController -> UserManagement : save(User:LoggedIn) +activate UserManagement +UserController <-- UserManagement : User +Spring <-- UserController : "redirect:/profile" +deactivate Spring +deactivate UserController +deactivate User + +@enduml diff --git a/src/main/asciidoc/models/design/seq_users.svg b/src/main/asciidoc/models/design/seq_users.svg new file mode 100644 index 0000000..025ceb4 --- /dev/null +++ b/src/main/asciidoc/models/design/seq_users.svg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b2b81cd4fd86312c761b0f6b3998d21b3b99e5854fe7c939fc2fefb37b0f939 +size 24408