-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsequence_diagram_wiki_list.puml
89 lines (73 loc) · 2.12 KB
/
sequence_diagram_wiki_list.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
@startuml
actor User
boundary WikiScreen
database AsyncStorage
control BearerFilter
control HydraController
control WikiService
control HydraRepository
database DB
box "Client" #LightBlue
participant WikiScreen
participant AsyncStorage
end box
box "Server" #Pink
control BearerFilter
control HydraController
control WikiService
control HydraRepository
end box
box "Model" #Orange
participant DB
end box
User -> WikiScreen : navigateToWikiScreen()
activate WikiScreen
group DECORATE REQUEST WITH JWT TOKEN
WikiScreen -> AsyncStorage : getJwtToken()
activate AsyncStorage
AsyncStorage --> WikiScreen : jwtToken
note right
Currently logged in user jwt token.
Retrieved from server after successful sign in
**(UC_1)**.
end note
deactivate AsyncStorage
WikiScreen -> WikiScreen : decorateRequestHeaders()
end
WikiScreen -> BearerFilter : **GET /wiki/entries** (token)
activate BearerFilter
group VALIDATE USER TOKEN
BearerFilter -> BearerFilter : validateJwtToken(request)
alt token is not valid
BearerFilter --> WikiScreen : error message
deactivate BearerFilter
WikiScreen -> WikiScreen : showErrorMessage()
WikiScreen -> WikiScreen : navigateToLoginScreen()
ref over WikiScreen : **UC_1**
else token is valid
note right of BearerFilter
userId decoded from token
end note
activate BearerFilter
BearerFilter -> BearerFilter : decorateRequestWithUserId()
BearerFilter -> HydraController : << forward request >>
activate HydraController
deactivate BearerFilter
end alt
end
HydraController -> WikiService : getWikiEntries()
activate WikiService
WikiService -> HydraRepository : getWikiEntries()
activate HydraRepository
HydraRepository -> DB
activate DB
DB --> HydraRepository
deactivate DB
HydraRepository --> WikiService : List<Information>
deactivate HydraRepository
WikiService --> HydraController : List<Information>
deactivate WikiService
HydraController --> WikiScreen : List<Information>
deactivate HydraController
WikiScreen -> WikiScreen : renderWikiEntries()
@enduml