From 65176885d15d818cc9adf58dd51037aed556d9bd Mon Sep 17 00:00:00 2001 From: vdennis Date: Fri, 18 Dec 2020 13:32:03 +0700 Subject: [PATCH] [#8] Create User Documentation and add a figure of users table (#19) * [#8] Create User Documentation and add a figure of users table * [#8] Update User Documentation based on review * [#3] Update Regions Documentation and add a figure of regions table (#16) * [#3] Update Regions Documentation and add a figure of regions table * [#3] Update Region Documentation based on review * [#3] Update Region Documentation based on 2nd review * [#3] add region code must be unique and remove the last line that does not need comma * [#3] Update region-layer * [#3] Rename regions.png to region-layer.png * [#3] Remove company_code and kunci from regions table * [#8] Create User Documentation and add a figure of users table * [#8] Update User Documentation based on review * [#8] Update User Add Documentation * [#8] Update User Add Documentation * [#8] Update User Edit Documentation * [#8] Update type akses and add positive case edit password * [#8] Update status code when not found 400 to 404 * [#8] Update view and delete user documentation * [#8] Update User documentation, view all user, and database image * [#8] update user documentation on edit Co-authored-by: Muhammad Sofi Yuniarto <58578584+msyuniarto@users.noreply.github.com> --- doc/user-layer.png | Bin 0 -> 87007 bytes doc/users.md | 1767 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1767 insertions(+) create mode 100644 doc/user-layer.png diff --git a/doc/user-layer.png b/doc/user-layer.png new file mode 100644 index 0000000000000000000000000000000000000000..28148530f5800d04377ea9b4f2c8d209145293b7 GIT binary patch literal 87007 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 literal 0 HcmV?d00001 diff --git a/doc/users.md b/doc/users.md index a9e9188..f206562 100644 --- a/doc/users.md +++ b/doc/users.md @@ -1 +1,1768 @@ # Users Module +Module | HTTP Method | URL | Description +--- | --- | --- | --- +[Add User](#add) | POST | /users | Add User +[Edit User](#edit) | PUT | /users | Edit User +[View User](#view) | GET | /users/{id} | View User +[View All User](#index) | GET | /users | View All User +[Delete User](#delete) | DELETE | /users/{id} | Delete User + +## Add Data User + +### Endpoint +POST /user + +### Database +![](./user-layer.png) + +### Headers +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json +Email | admin@cdc.id + +### Request Payloads +Name | Type | Example Value +--- | --- | --- +name | string | dennis +username | string | vdennis +email | string | vdennis@cdc.id +type_akses | int | 4 +company_id | string | 5fb5df66-5f80-416d-a055-401bcf944ef7 +region_id | string | 5fb5e66d-e47c-47fd-b4bf-4064cf944ef7 +branch_id | string | 5fb5e437-69dc-4eb6-8f8c-4022cf944ef7 +kios_id | string | 5fb5e626-65ac-473d-af2c-3ff2cf944ef7 +``` +{ + "name" : "dennis", + "username" : "vdennis", + "email" : "vdennis@cdc.id", + "type_akses" : 4, + "company_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id" : "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "5fb5e626-65ac-473d-af2c-3ff2cf944ef7" +} +``` + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +400 | Bad Request | Bad request payload +403 | Forbidden | dont have permission +404 | Not Found | company_id, region_id, branch_id, or kios_id is invalid +500 | Internal Server Error | some un-handle error in server +201 | Created | Created +``` +{ + "status_code": "CDC-400", + "status_message": "Bad Request", + "data": null +} +``` + +``` +{ + "status_code": "CDC-403", + "status_message": "dont have permission to add", + "data": null +} +``` + +``` +{ + "status_code": "cdc-404", + "status_message": "company_id not found in companies", + "data": null +} +``` + +``` +{ + "status_code": "CDC-201", + "status_message": "Created", + "data": { + "id":1, + "name" : "dennis", + "username" : "vdennis", + "email" : "vdennis@cdc.id", + "type_akses" : 4, + "company_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id" : "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "5fb5e626-65ac-473d-af2c-3ff2cf944ef7", + "created" : "2020-12-02 09:03:44", + "modified" : "2020-12-02 09:03:44" + } +} +``` + +### Logic +- is_login, last_login, last_activity are not required in stateless concepts + +type_akses list : +- 0 = SUPER USER +- 1 = COMPANY +- 2 = REGION +- 3 = AHASS +- 4 = POS/KIOS +- 5 = ALL-WMS +- 6 = WMS-NETWORK DEV +- 7 = WMS-SE +- 8 = WMS-Salesman PMD + +for add, you need get : +- Super User access. +- company_id from companies tables if type_akses in range 1-4. +- branch_id from branches tables if type_akses in range 3-4. +- region_id from regions tables if type_akses is 2. +- kios_id from kios tables if type_akses is 4. + +#### Validation +- super user access +- name: required and not empty +- username: required and not empty +- email: required and not empty and validated by filter_var FILTER_VALIDATE_EMAIL +- type_akses: required and not empty and must in range (1-8) +- company_id: required and not empty and must be registered in companies if type_akses in range (1-4) +- region_id: required and not empty and must be registered in regions if type_akses = 2 +- branch_id: required and not empty and must be registered in branches if type_akses in range (3-4) +- kios_id: required and not empty and must be registered in kios if type_akses = 4 + +### Scenario Test + +#### Case : Negative Case 1 + +Request Payload : empty + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "name is required", + "data": null +} +``` + +#### Case : Negative Case 2 + +Request Payload : +``` +{} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "name is required", + "data": null +} +``` + +#### Case : Negative Case 3 + +Request payload : +``` +{ + "name": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "name is empty", + "data": null +} +``` + +#### Case : Negative Case 4 + +Request Payload : +``` +{ + "name": "dennis" +} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "username is required", + "data": null +} +``` + +#### Case : Negative Case 5 + +Request Payload : +``` +{ + "name": "dennis", + "username": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload: +``` +{ + "status_code": "cdc-400", + "status_message": "username is empty", + "data": null +} +``` + +#### Case : Negative Case 6 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "username already in use", + "data": null +} +``` + +#### Case : Negative Case 7 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "email is required", + "data": null +} +``` + +#### Case : Negative Case 8 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "email is empty", + "data": null +} +``` + +#### Case : Negative Case 9 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis_@a_" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "email is not valid", + "data": null +} +``` + +#### Case : Negative Case 10 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "type_akses is required", + "data": null +} +``` + +#### Case : Negative Case 11 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "email already in use", + "data": null +} +``` + +#### Case : Negative Case 12 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "type_akses is empty", + "data": null +} +``` + +#### Case : Negative Case 13 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 9 +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "type_akses must in range 1-8", + "data": null +} +``` + +#### Case : Negative Case 14 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 1 +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "company_id is required", + "data": null +} +``` + +#### Case : Negative Case 15 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 1, + "company_id": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "company_id is empty", + "data": null +} +``` + +#### Case : Negative Case 16 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 1, + "company_id": "test" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "company_id not found in companies", + "data": null +} +``` + +#### Case : Negative Case 17 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 2 +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "region_id is required", + "data": null +} +``` + +#### Case : Negative Case 18 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 2, + "region_id": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "region_id is empty", + "data": null +} +``` + +#### Case : Negative Case 19 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 2, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "test" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "region_id not found in regions", + "data": null +} +``` + +#### Case : Negative Case 20 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "branch_id is required", + "data": null +} +``` + +#### Case : Negative Case 21 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "branch_id is empty", + "data": null +} +``` + +#### Case : Negative Case 22 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "test" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "branch_id not found in branches", + "data": null +} +``` + +#### Case : Negative Case 23 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "test" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "kios_id is required", + "data": null +} +``` + +#### Case : Negative Case 24 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "test", + "kios_id" : "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "kios_id is empty", + "data": null +} +``` + +#### Case : Negative Case 25 + +Request Payload +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "test", + "kios_id" : "test" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "kios_id not found in kios", + "data": null +} +``` + +#### Case : Positive Case 1 + +Request Payload : +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 1, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7" +} +``` + +Response HTTP Status Code : 201 + +Response Payload : +``` +{ + "status_code": "CDC-201", + "status_message": "Created", + "data": { + "id":1, + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 1, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "created": "2020-12-02 09:03:44", + "modified": "2020-12-02 09:03:44" + } +} +``` + +#### Case : Positive Case 2 + +Request Payload : +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 2, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7" +} +``` + +Response HTTP Status Code : 201 + +Response Payload : +``` +{ + "status_code": "CDC-201", + "status_message": "Created", + "data": { + "id":1, + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 2, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "created": "2020-12-02 09:03:44", + "modified": "2020-12-02 09:03:44" + } +} +``` + +#### Case : Positive Case 3 + +Request Payload : +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id": "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7" +} +``` + +Response HTTP Status Code : 201 + +Response Payload : +``` +{ + "status_code": "CDC-201", + "status_message": "Created", + "data": { + "id":1, + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id": "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "created": "2020-12-02 09:03:44", + "modified": "2020-12-02 09:03:44" + } +} +``` + +#### Case : Positive Case 4 + +Request Payload : +``` +{ + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id": "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id": "5fb5e626-65ac-473d-af2c-3ff2cf944ef7" +} +``` + +Response HTTP Status Code : 201 + +Response Payload : +``` +{ + "status_code": "CDC-201", + "status_message": "Created", + "data": { + "id":1, + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id": "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id": "5fb5e626-65ac-473d-af2c-3ff2cf944ef7", + "created": "2020-12-02 09:03:44", + "modified": "2020-12-02 09:03:44" + } +} +``` + +## Edit Data User + +### Endpoint +PUT /users/:id + +### Headers +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json +Email | admin@cdc.id + +### Request Payloads +Name | Type | Example Value +--- | --- | --- +name | string | dennis +type_akses | int | 4 +company_id | string | 5fb5df66-5f80-416d-a055-401bcf944ef7 +region_id | string | 5fb5e66d-e47c-47fd-b4bf-4064cf944ef7 +branch_id | string | 5fb5e437-69dc-4eb6-8f8c-4022cf944ef7 +kios_id | string | 5fb5e626-65ac-473d-af2c-3ff2cf944ef7 +``` +{ + "name" : "dennis", + "type_akses" : 4, + "company_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id" : "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "5fb5e626-65ac-473d-af2c-3ff2cf944ef7" +} +``` + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +400 | Bad Request | Bad request payload +403 | Forbidden | user not owned by user login +404 | Not Found | id, company_id, region_id, branch_id, or kios_id is invalid +500 | Internal Server Error | some un-handle error in server +200 | OK | OK +``` +{ + "status_code": "CDC-400", + "status_message": "Bad Request", + "data": null +} +``` + +``` +{ + "status_code": "cdc-403", + "status_message": "user not owned by user login", + "data": null +} +``` + +``` +{ + "status_code": "cdc-404", + "status_message": "user id not found", + "data": null +} +``` + +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "name" : "dennis", + "username" : "vdennis", + "type_akses" : 4, + "company_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id" : "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "5fb5e626-65ac-473d-af2c-3ff2cf944ef7", + "created" : "2020-12-02 09:03:44", + "modified" : "2020-12-14 12:07:14" + } +} +``` + +### Logic +- is_login, last_login, last_activity are not required in stateless concepts + +type_akses list : +- 0 = SUPER USER +- 1 = COMPANY +- 2 = REGION +- 3 = AHASS +- 4 = POS/KIOS +- 5 = ALL-WMS +- 6 = WMS-NETWORK DEV +- 7 = WMS-SE +- 8 = WMS-Salesman PMD + +for edit, you need get : +- if type_akses given then company_id, branch_id, region_id, kios_id is required depend on the value. +- company_id from companies tables if type_akses in range 1-4. +- branch_id from branches tables if type_akses in range 3-4. +- region_id from regions tables if type_akses is 2. +- kios_id from kios tables if type_akses is 4. + +#### Validation +- name: not empty +- type_akses: must in range (1-8) +- company_id: required and not empty and must be registered in companies if type_akses in range (1-4) +- region_id: required and not empty and must be registered in regions if type_akses = 2 +- branch_id: required and not empty and must be registered in branches if type_akses in range (3-4) +- kios_id: required and not empty and must be registered in kios if type_akses = 4 + +### Scenario Test + +#### Case : Negative Case 1 + +Request Payload : empty + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "cdc-200", + "status_message": "no change is requested", + "data": null +} +``` + +#### Case : Negative Case 2 + +Request Payload : +``` +{} +``` + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "cdc-200", + "status_message": "no change is requested", + "data": null +} +``` + +#### Case : Negative Case 3 + +Request payload : +``` +{ + "name": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload : +``` +{ + "status_code": "cdc-400", + "status_message": "name is empty", + "data": null +} +``` + +#### Case : Negative Case 4 + +Request Payload +``` +{ + "type_akses": 9 +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "type_akses must in range 1-8", + "data": null +} +``` + +#### Case : Negative Case 5 + +Request Payload +``` +{ + "type_akses": 1, + "company_id": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "company_id is empty", + "data": null +} +``` + +#### Case : Negative Case 6 + +Request Payload +``` +{ + "type_akses": 1, + "company_id": "test" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "company_id not found in companies", + "data": null +} +``` + +#### Case : Negative Case 7 + +Request Payload +``` +{ + "type_akses": 2, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "region_id is required because type_akses edited from 1", + "data": null +} +``` + +#### Case : Negative Case 8 + +Request Payload +``` +{ + "type_akses": 2, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "region_id is empty", + "data": null +} +``` + +#### Case : Negative Case 9 + +Request Payload +``` +{ + "type_akses": 2, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "test" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "region_id not found in regions", + "data": null +} +``` + +#### Case : Negative Case 10 + +Request Payload +``` +{ + "type_akses": 2, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "5fb5df66-5f80-416d-a055-401bcf944ef7" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "region_id doesnt belong to company_id", + "data": null +} +``` + +#### Case : Negative Case 11 + +Request Payload +``` +{ + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "branch_id is required because type_akses edited from 1 or 2", + "data": null +} +``` + +#### Case : Negative Case 12 + +Request Payload +``` +{ + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "branch_id is empty", + "data": null +} +``` + +#### Case : Negative Case 13 + +Request Payload +``` +{ + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "test" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "branch_id not found in branches", + "data": null +} +``` + +#### Case : Negative Case 14 + +Request Payload +``` +{ + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "branch_id doesnt belong to company_id", + "data": null +} +``` + +#### Case : Negative Case 15 + +Request Payload +``` +{ + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "kios_id is required because type_akses edited from 1 or 2 or 3", + "data": null +} +``` + +#### Case : Negative Case 16 + +Request Payload +``` +{ + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "" +} +``` + +Response HTTP Status Code : 400 + +Response Payload +``` +{ + "status_code": "cdc-400", + "status_message": "kios_id is empty", + "data": null +} +``` + +#### Case : Negative Case 17 + +Request Payload +``` +{ + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "test" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "kios_id not found in kios", + "data": null +} +``` + +#### Case : Negative Case 18 + +Request Payload +``` +{ + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7" +} +``` + +Response HTTP Status Code : 404 + +Response Payload +``` +{ + "status_code": "cdc-404", + "status_message": "kios_id doesnt belong to branch_id", + "data": null +} +``` + +#### Case : Positive Case 1 + +Request Payload : +``` +{ + "name": "dennis" +} +``` + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 1, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "created": "2020-12-02 09:03:44", + "modified": "2020-12-12 09:03:44" + } +} +``` + +#### Case : Positive Case 2 + +Request Payload : +``` +{ + "type_akses": 1, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7" +} +``` + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 1, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "created": "2020-12-02 09:03:44", + "modified": "2020-12-12 09:03:44" + } +} +``` + +#### Case : Positive Case 3 + +Request Payload : +``` +{ + "type_akses": 2, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7" +} +``` + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 2, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "created": "2020-12-02 09:03:44", + "modified": "2020-12-12 09:03:44" + } +} +``` + +#### Case : Positive Case 4 + +Request Payload : +``` +{ + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id": "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7" +} +``` + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 3, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id": "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "created": "2020-12-02 09:03:44", + "modified": "2020-12-12 09:03:44" + } +} +``` + +#### Case : Positive Case 5 + +Request Payload : +``` +{ + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "branch_id": "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id": "5fb5e626-65ac-473d-af2c-3ff2cf944ef7" +} +``` + +Response HTTP Status Code : 200 + +Response Payload : +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "name": "dennis", + "username": "vdennis", + "email": "vdennis@cdc.id", + "type_akses": 4, + "company_id": "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id": "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id": "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id": "5fb5e626-65ac-473d-af2c-3ff2cf944ef7", + "created": "2020-12-02 09:03:44", + "modified": "2020-12-12 09:03:44" + } +} +``` + +## View User + +### Endpoint +GET /users/:id + +### Header +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json +Email | admin@cdc.id + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +404 | Not Found | user not found in database +500 | Internal Server Error | some un-handle error in server +403 | Forbidden | user not owned by user login +200 | OK | OK + +``` +{ + "status_code": "cdc-404", + "status_message": "user id not found", + "data": null +} +``` + +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "name" : "dennis", + "username" : "vdennis", + "email" : "vdennis@cdc.id", + "type_akses" : 4, + "company_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id" : "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "5fb5e626-65ac-473d-af2c-3ff2cf944ef7", + "created" : "2020-12-02 09:03:44", + "modified" : "2020-12-14 12:07:14" + } +} +``` + +### Logic + +#### Validation + +### Scenario Test + +#### Case : Negative Case + +response HTTP Status Code : 404 + +Response Payload : +``` +{ + "status_code": "cdc-404", + "status_message": "user not found", + "data": null +} +``` + +``` +{ + "status_code": "cdc-403", + "status_message": "user not owned by user login", + "data": null +} +``` + +#### Case : Positive Case + +Response HTTP Status Code : 200 + +Response Payload : +``` + +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "name" : "dennis", + "username" : "vdennis", + "email" : "vdennis@cdc.id", + "type_akses" : 4, + "company_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id" : "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "5fb5e626-65ac-473d-af2c-3ff2cf944ef7", + "created" : "2020-12-02 09:03:44", + "modified" : "2020-12-14 12:07:14" + } +} +``` + +## View All Users + +### Endpoint +GET /users + +### Header +Key | Value +--- | --- +Content-Type | application/json +Accept | application/json +Email | admin@cdc.id + +### Param Query +GET /users?keyword=dennis&page=1&limit=20&order=users.id&sort=desc&type_akses=4&company_id=5fb5df66-5f80-416d-a055-401bcf944ef7®ion_id=5fb5e66d-e47c-47fd-b4bf-4064cf944ef7&branch_id=5fb5e437-69dc-4eb6-8f8c-4022cf944ef7&kios_id=5fb5e626-65ac-473d-af2c-3ff2cf944ef7 + +Name | Example Value | Description +--- | --- | --- +keyword | dennis | the keyword for searching users +page | 1 | current page in pagination. default value is 1. if there is no param page, page will be set with 1. +limit | 20 | the amount of data displayed on current page in pagination. if there is no param limit, it will be set with no limit. +order | users.id | ordering data displayed by id of branches. +sort | desc | sorting data displayed by desc +type_akses | 1 | conditions of data displayed by type_akses +company_id | 5fb5df66-5f80-416d-a055-401bcf944ef7 | conditions of data displayed by id of company +region_id | 5fb5e66d-e47c-47fd-b4bf-4064cf944ef7 | conditions of data displayed by id of region +branch_id | 5fb5e437-69dc-4eb6-8f8c-4022cf944ef71 | conditions of data displayed by id of branch +kios_id | 5fb5e626-65ac-473d-af2c-3ff2cf944ef7 | conditions of data displayed by id of kios + +### Request Payloads +No Request Payloads + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +500 | Internal Server Error | some un-handle error in server +200 | OK | OK + +``` +{ + "status_code": "cdc-200", + "status_message": "data not found", + "data": [] +} +``` + +``` +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": [ + { + "id":1, + "name" : "dennis", + "username" : "vdennis", + "email" : "vdennis@cdc.id", + "type_akses" : 4, + "company_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id" : "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "5fb5e626-65ac-473d-af2c-3ff2cf944ef7", + "created" : "2020-12-02 09:03:44", + "modified" : "2020-12-14 12:07:14" + }, + { + "id":2, + "name" : "vincent", + "username" : "vincent", + "email" : "vincent@cdc.id", + "type_akses" : 1, + "company_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7", + "created" : "2020-12-02 09:03:44", + "modified" : "2020-12-14 12:07:14" + } + ] +} +``` + +### Logic + +#### Validation + +### Scenario Test + +#### Case : Negative Case + +response HTTP Status Code : 404 + +Response Payload : +``` +{ + "status_code": "cdc-404", + "status_message": "user not found", + "data": null +} +``` + +#### Case : Positive Case + +Response HTTP Status Code : 200 + +Response Payload : +``` + +{ + "status_code": "CDC-200", + "status_message": "OK", + "data": { + "id":1, + "name" : "dennis", + "username" : "vdennis", + "email" : "vdennis@cdc.id", + "type_akses" : 4, + "company_id" : "5fb5df66-5f80-416d-a055-401bcf944ef7", + "region_id" : "5fb5e66d-e47c-47fd-b4bf-4064cf944ef7", + "branch_id" : "5fb5e437-69dc-4eb6-8f8c-4022cf944ef7", + "kios_id" : "5fb5e626-65ac-473d-af2c-3ff2cf944ef7", + "created" : "2020-12-02 09:03:44", + "modified" : "2020-12-14 12:07:14" + } +} +``` + +## Delete + +### Endpoint +DELETE /users/:id + +### Header +Key | Value +--- | --- +Content-Type | * +Accept | application/json +Email | admin@cdc.id + +### Response Payloads +HTTP Code | Status | Description +--- | --- | --- +404 | Not Found | user not found in database +403 | Forbidden | dont have permission +500 | Internal Server Error | some un-handle error in server +204 | No Content | Delete data user + +### Logic + +#### Validation +- super user access + +### Scenario Test + +#### Case : Negative Case 1 + +response HTTP Status Code : 403 + +Response Payload : +``` +{ + "status_code": "cdc-403", + "status_message": "dont have permission to delete", +} +``` + +#### Case : Negative Case 2 + +response HTTP Status Code : 404 + +Response Payload : +``` +{ + "status_code": "cdc-404", + "status_message": "user not found", +} +``` + +#### Case : Positive Case + +response HTTP Status Code : 204