Contoh Kasus Api Pengajuan Cuti
Sebagai contoh kita akan membuat sebuah kasus pengajuan cuti yang menggunakan camunda berikut BPMN yang akan di gunakan dengan nama process definition Cuti
File Bpmn
file bpmn diatas bisa di download dari (Download Bpmn)
Generate Semua Endpoint
Setelah melakukan konfigurasi teman teman bisa menggunakan php artisan alurkerja:pullprocess:scafond Cuti untuk mengambil semua usertask dan start event yang ada pada process defintion tersebut, dengan hasil
Maka Command tersebut akan mengenerate beberapa controller, service , dan model dengan naming
Controller
Generator akan melakukan generate sesuai dengan nama process definition beserta usertasknya seperti berikut
Controller yang berjenis Process Definition akan melakukan extend pada BpmnController dan Usertask akan melakukan extend pada UserTaskController
Model
Generator akan melakukan generate sesuai dengan nama process definition beserta usertasknya seperti berikut
Model yang berjenis Process Definition akan melakukan extend pada BpmnModel dan Usertask akan melakukan extend pada UserTaskModel
Service
Generator akan melakukan generate sesuai dengan nama process definition beserta usertasknya seperti berikut
Service yang berjenis Process Definition akan melakukan extend pada BpmnService dan Usertask akan melakukan extend pada UserTaskService
Migration
Selaian Model , Controller dan Service akan di generatekan Migration dengan jumlah Usertask ditambah dengan start process
Pada table yang di gunakan untuk start process Akan di buatkan field process_definition_id dengan type data string yang di gunakan untuk menjadi penghubug dengan camunda. Sedangkan table yang di gunakan untuk Usertask akan di berikan field busniess_key digunakan untuk menjadi penghubung dengan table start process
Route yang di generate
Hasil dari process diatas akan mengenerate Route yang dapat di gunakan dengan list item di bawah ini
| Method | URL | Controller yang di gunakan |
|---|---|---|
| GET|HEAD | api/bpmn/cuti | cuti index › Api\Bpmn\CutiController@index |
| POST | api/bpmn/cuti | cuti store › Api\Bpmn\CutiController@store |
| POST | api/bpmn/cuti/bulk | cuti bulk › Api\Bpmn\CutiController@bulk |
| GET|HEAD | api/bpmn/cuti/cuti-konfirmasi-cuti | cuti cuti-konfirmasi-cuti index › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@index |
| POST | api/bpmn/cuti/cuti-konfirmasi-cuti | cuti cuti-konfirmasi-cuti store › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@store |
| POST | api/bpmn/cuti/cuti-konfirmasi-cuti/bulk | cuti cuti-konfirmasi-cuti bulk › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@bulk |
| GET|HEAD | api/bpmn/cuti/cuti-konfirmasi-cuti/scope/{scope} | cuti cuti-konfirmasi-cuti scope › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@scope |
| GET|HEAD | api/bpmn/cuti/cuti-konfirmasi-cuti/spec | cuti cuti-konfirmasi-cuti spec › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@spec |
| PUT | api/bpmn/cuti/cuti-konfirmasi-cuti/task/{id}/{id} | cuti cuti-konfirmasi-cuti task updateTask › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@updat… |
| POST | api/bpmn/cuti/cuti-konfirmasi-cuti/{busniessKey}/task/{taskId}/submit | cuti cuti-konfirmasi-cuti submit-task submitTask › Api\Bpmn\Cuti\CutiKon… |
| GET|HEAD | api/bpmn/cuti/cuti-konfirmasi-cuti/{id} | cuti cuti-konfirmasi-cuti show › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@show |
| POST|PUT | api/bpmn/cuti/cuti-konfirmasi-cuti/{id} | cuti cuti-konfirmasi-cuti update › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@update |
| DELETE | api/bpmn/cuti/cuti-konfirmasi-cuti/{id} | cuti cuti-konfirmasi-cuti destroy › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@destroy |
| GET|HEAD | api/bpmn/cuti/cuti-konfirmasi-cuti/{id}/task | cuti cuti-konfirmasi-cuti task › Api\Bpmn\Cuti\CutiKonfirmasiCutiController@task |
| GET|HEAD | api/bpmn/cuti/cuti-revisi-cuti | cuti cuti-revisi-cuti index › Api\Bpmn\Cuti\CutiRevisiCutiController@index |
| POST | api/bpmn/cuti/cuti-revisi-cuti | cuti cuti-revisi-cuti store › Api\Bpmn\Cuti\CutiRevisiCutiController@store |
| POST | api/bpmn/cuti/cuti-revisi-cuti/bulk | cuti cuti-revisi-cuti bulk › Api\Bpmn\Cuti\CutiRevisiCutiController@bulk |
| GET|HEAD | api/bpmn/cuti/cuti-revisi-cuti/scope/{scope} | cuti cuti-revisi-cuti scope › Api\Bpmn\Cuti\CutiRevisiCutiController@scope |
| GET|HEAD | api/bpmn/cuti/cuti-revisi-cuti/spec | cuti cuti-revisi-cuti spec › Api\Bpmn\Cuti\CutiRevisiCutiController@spec |
| PUT | api/bpmn/cuti/cuti-revisi-cuti/task/{id}/{id} | cuti cuti-revisi-cuti task updateTask › Api\Bpmn\Cuti\CutiRevisiCutiController@updateTask |
| POST | api/bpmn/cuti/cuti-revisi-cuti/{busniessKey}/task/{taskId}/submit | cuti cuti-revisi-cuti submit-task submitTask › Api\Bpmn\Cuti\CutiRevisiCutiC… |
| GET|HEAD | api/bpmn/cuti/cuti-revisi-cuti/{id} | cuti cuti-revisi-cuti show › Api\Bpmn\Cuti\CutiRevisiCutiController@show |
| POST|PUT | api/bpmn/cuti/cuti-revisi-cuti/{id} | cuti cuti-revisi-cuti update › Api\Bpmn\Cuti\CutiRevisiCutiController@update |
| DELETE | api/bpmn/cuti/cuti-revisi-cuti/{id} | cuti cuti-revisi-cuti destroy › Api\Bpmn\Cuti\CutiRevisiCutiController@destroy |
| GET|HEAD | api/bpmn/cuti/cuti-revisi-cuti/{id}/task | cuti cuti-revisi-cuti task › Api\Bpmn\Cuti\CutiRevisiCutiController@task |
| GET|HEAD | api/bpmn/cuti/scope/{scope} | cuti scope › Api\Bpmn\CutiController@scope |
| GET|HEAD | api/bpmn/cuti/spec | cuti spec › Api\Bpmn\CutiController@spec |
| POST | api/bpmn/cuti/start | cuti start › Api\Bpmn\CutiController@start |
| GET|HEAD | api/bpmn/cuti/statistic | cuti statistic › Api\Bpmn\CutiController@statistic |