BiawakBakar

Lokasi Seq

Dec 3rd, 2024
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.21 KB | None | 0 0
  1. ---
  2. config:
  3. theme: neo-dark
  4. ---
  5. sequenceDiagram
  6. participant frontend as Frontend/Client
  7. participant controller as Controller
  8. participant service as Service
  9. participant database as Database
  10. participant storage as Storage: S3
  11. participant queue as beanstalkd
  12.  
  13. Note over frontend,queue: List lokasi
  14.  
  15. frontend->>+controller: GET /lokasi
  16. controller->>+controller: validasi k_jenjang
  17. controller->>+service: fetch lokasi per jenjang
  18. service->>+database: select from lokasi
  19. database-->>-service: data lokasi
  20. service-->>-controller: data lokasi
  21. controller-->>-frontend: data response
  22.  
  23. Note over frontend,queue: Init save
  24.  
  25. frontend->>+controller: GET /lokasi/init-save
  26. controller->>controller: validasi k_jenjang
  27. controller-->>-frontend: data response
  28.  
  29. Note over frontend,queue: Init save
  30.  
  31. frontend->>+controller: POST /lokasi/validate-save
  32. controller->>controller: validasi form request
  33. controller->>+service: create object lokasi
  34. service-->>-controller: object lokasi
  35. controller-->>-frontend: data response
  36.  
  37. Note over frontend,queue: Save
  38.  
  39. frontend->>+controller: POST /lokasi/save
  40. controller->>controller: validasi form request
  41. controller->>+service: create object lokasi
  42. service->>+controller: object lokasi
  43. controller->>+service: config multi kompetensi
  44. service->>+database: insert lokasi
  45. database-->>-service: status query insert
  46. service-->>-controller: object lokasi
  47. controller-->>-frontend: data response
  48.  
  49. Note over frontend,queue: Unduh Template
  50.  
  51. frontend->>+controller: GET /lokasi/template-upload
  52. controller->>+service: get fields dan data
  53. service->>+database: get fields dan data
  54. database-->>-service: data
  55. service-->>-controller: .
  56. controller->>+service: generate excel
  57. controller-->>-frontend: status success
  58. service-->>-frontend: stream excel
  59.  
  60. Note over frontend,queue: Inisialisasi
  61.  
  62. frontend->>+controller: POST /lokasi/init-upload
  63. controller->>+service: get status upload
  64. service->>+database: cek status upload
  65. database-->>-service: status upload
  66. service-->>-controller: status upload
  67. opt Inisialisasi ulang
  68. controller->>+service: reset status upload
  69. service->>+database: update state = IDLE
  70. database-->>-service: status direset
  71. service-->>-controller: status upload
  72. end
  73. controller->>-frontend: status idle
  74.  
  75. Note over frontend,queue: Unggah Excel
  76.  
  77. frontend->>+controller: POST /lokasi/validate-upload
  78. controller->>+service: validate
  79. service->>+database: insert state = QUEUE-VALIDATE
  80. database-->>-service: .
  81. service->>+queue: queue job import-validate
  82. queue-->>-service: .
  83. service-->>-controller: .
  84. controller->>-frontend: status success
  85.  
  86. Note over frontend,queue: Proses Validasi
  87.  
  88. queue->>+service: trigger validasi
  89. service->>+storage: get file excel
  90. storage->>+service: get format validasi
  91. loop Setiap 100 Data
  92. loop Setiap Row
  93. service->>service: validasi format
  94. service->>service: validasi data
  95. end
  96. service->>+database: simpan hasil validasi
  97. database-->>-service: .
  98. end
  99. service->>+database: update state = VALIDATED
  100. database-->>-storage: .
  101. storage-->>-queue: done
  102.  
  103. Note over frontend,queue: Download Hasil Validasi
  104.  
  105. frontend->>+controller: POST /lokasi/download-error
  106. controller->>+service: buat excel
  107. opt Hanya error
  108. service-->>service: filter yang error
  109. end
  110. service->>service: generate excel
  111. service-->>-controller: .
  112. controller->>-frontend: status success
  113. service-->>-frontend: stream excel
  114.  
  115. Note over frontend,queue: Simpan Data (jika ada yang valid)
  116.  
  117. frontend->>+controller: POST /lokasi/save-upload
  118. controller->>+service: save
  119. service->>service: update dengan state antri simpan
  120. service->>+queue: queue job import-save
  121. queue-->>-service: .
  122. service-->>-controller: .
  123. controller->>-frontend: status success
  124.  
  125. Note over frontend,queue: Proses Simpan
  126.  
  127. queue->>+service: trigger simpan
  128. service->>+database: read data
  129. database-->>-service: .
  130. loop Setiap Record Yang Valid
  131. service->>service: proses data
  132. service->>+database: simpan data
  133. database-->>-service: .
  134. end
  135. service->>+database: update dengan state selesai simpan
  136. database-->>-service: .
  137. service-->>-queue: done
  138.  
  139. Note over frontend,queue: Fetch
  140.  
  141. frontend->>+controller: GET /lokasi/:lokasi
  142. controller->>+service: validasi id lokasi yang dikirim
  143. service->>+database: select lokasi berdasarkan id yang dikirim
  144. database-->>-service: data lokasi
  145. service-->>-controller: data lokasi
  146. controller-->>-frontend: data response
  147.  
  148. Note over frontend,queue: Update
  149.  
  150. frontend->>+controller: POST /lokasi/:lokasi/lokasi
  151. controller->>controller: validasi request
  152. controller->>+service: validasi data lokasi dari id yang dikirim
  153. service->>+database: get lokasi
  154. database-->>-service: object lokasi
  155. service-->>-controller: lokasi instance
  156. controller->>+service: panggil fungsi update
  157. service->>+database: update data lokasi
  158. database-->>-service: update data
  159. service-->>-controller: data lokasi
  160. controller-->>-frontend: data response
  161.  
  162. Note over frontend,queue: Delete
  163.  
  164. frontend->>+controller: POST /lokasi/:lokasi/delete
  165. controller->>controller: validasi request
  166. controller->>+service: validasi data lokasi dari id yang dikirim
  167. service->>+database: get lokasi
  168. database-->>-service: object lokasi
  169. service-->>-controller: lokasi instance
  170. controller->>+service: panggil fungsi delete
  171. service->>+database: delete data lokasi
  172. database-->>-service: status query
  173. service-->>-controller: status aksi hapus
  174. controller-->>-frontend: data response
  175.  
  176. Note over frontend,queue: Fetch lokasi daftar
  177.  
  178. frontend->>+controller: POST /lokasi/:lokasi/daftar
  179. controller->>+service: validasi id lokasi yang dikirim
  180. service->>+database: select lokasi berdasarkan id yang dikirim
  181. database-->>-service: data lokasi daftar
  182. service-->>-controller: data lokasi daftar
  183. controller-->>-frontend: data response
  184.  
  185. Note over frontend,queue: Init lokasi daftar
  186.  
  187. frontend->>+controller: POST /lokasi/:lokasi/daftar/init-save
  188. controller->>+service: get data user lokasi
  189. service->>+database: select user lokasi
  190. database-->>-service: data user lokasi
  191. service-->>-controller: data user lokasi
  192. controller->>+service: get jenjang jalur tahap yang tersedia
  193. service-->>-controller: data jenjang jalur tahap yang tersedia
  194. controller-->>-frontend: data response
  195.  
  196. Note over frontend,queue: Validasi lokasi daftar
  197.  
  198. frontend->>+controller: POST /lokasi/:lokasi/daftar/validate-save
  199. controller->>controller: validasi request
  200. controller->>+service: get data user lokasi
  201. service->>+database: select user lokasi
  202. database-->>-service: data user lokasi
  203. service-->>-controller: data user lokasi
  204. controller->>+service: get jenjang jalur tahap yang tersedia
  205. service-->>-controller: data jenjang jalur tahap yang tersedia
  206. controller->>+service: validasi lokasi daftar
  207. service-->>-controller: object lokasi daftar
  208. controller-->>-frontend: data response
  209.  
  210. Note over frontend,queue: Simpan lokasi daftar
  211.  
  212. frontend->>+controller: POST /lokasi/:lokasi/daftar/save
  213. controller->>controller: validasi request
  214. controller->>+service: get data user lokasi
  215. service->>+database: select user lokasi
  216. database-->>-service: data user lokasi
  217. service-->>-controller: data user lokasi
  218. controller->>+service: get jenjang jalur tahap yang tersedia
  219. service-->>-controller: data jenjang jalur tahap yang tersedia
  220. controller->>+service: validasi lokasi daftar
  221. service-->>-controller: object lokasi daftar
  222. controller->>+service: simpan lokasi daftar
  223. service->>+database: simpan lokasi daftar
  224. database-->>-service: status query
  225. service-->>-controller: status simpan lokasi daftar
  226. controller-->>-frontend: data response
  227.  
Advertisement
Add Comment
Please, Sign In to add comment