ЕСОЗ - публічна документація
[DRAFT] Approve or Reject Employee Request [API-005-007-002-0115]
Сторінка знаходиться в процесі розробки. Інформація на ній може бути застарілою.
https://e-health-ua.atlassian.net/wiki/spaces/EN/pages/17591304241 (remove the link block before publishing the document)
- 1 Properties of a REST API method document
- 2 Purpose
- 3 Logic
- 3.1 Sample Request
- 4 Configuration parameters
- 5 Dictionaries
- 6 Input parameters
- 7 Request structure
- 8 Headers
- 9 Request data validation
- 10 Authorize
- 11 Processing
- 11.1 Update employee request status to REJECTED
- 11.1.1 Sample Request
- 11.2 Get Employee Request Details
- 11.2.1 Sample Request
- 11.3 Create user in Auth
- 11.4 Create/Update employee
- 11.5 Create related entity party-user
- 11.6 Add role
- 11.6.1 Sample Request
- 11.7 Update employee request status to APPROVED
- 11.7.1 Sample Request
- 11.8 Send Email
- 11.1 Update employee request status to REJECTED
- 12 Response structure examples
- 13 HTTP status codes
- 14 Post-processing processes
- 15 Technical modules where the method is used
Properties of a REST API method document
Document type | Метод REST API |
---|---|
Document title | [DRAFT] Approve or Reject Employee Request [API-005-007-002-0115] |
Guideline ID | GUI-0011 |
Author | @ |
Document version | 1 |
Document status | DRAFT |
Date of creation | ХХ.ХХ.ХХХХ (дата фінальної версії документа – RC або PROD) |
Date of update | ХХ.ХХ.ХХХХ (дата зміни версії) |
Method API ID | API-005-007-002-0115 |
Microservices (namespace) | IL |
Component | Employees |
Component ID | COM-005-007 |
Link на API-специфікацію | |
Resource | {{host}}/employee_requests/{{id}}/actions/{{action}} |
Scope | employee_request:update |
Protocol type | REST |
Request type | POST |
Sync/Async | Sync |
Public/Private | Private |
Purpose
The method is used to approve or reject employee request
Logic
Sample Request
curl -X POST -H 'Content-Type: application/json' -H 'Authorization:Bearer YW5WcFkyVnFkV2xqWldwMWFXTmxDZzpjY1hwWTR0cWRZbGVjNHAxYUdsMXVJ' 'http://ehealth.nebo15.com/employee_requests/d290f1ee-6c54-4b01-90e6-d701748f0851/actions/approve'
Configuration parameters
N/A
Dictionaries
N/A
Input parameters
Input parameter | Mandatory | Type | Description | Example | |
---|---|---|---|---|---|
1 | id |
| String | Required | d290f1ee-6c54-4b01-90e6-d701748f0851 |
2 | action |
| String | Required | APPROVE |
Request structure
See on API-specification
Headers
Request data validation
Authorize
Verify the validity of access token
Check user scope employee_request:update in order to perform this action
In case error - return 401 error
Check action in request
if action = APPROVE, add user new role
if action - REJECT, update employee request status on REJECTED
Processing
Update employee request status to REJECTED
Invoke WS to update employee request status with parameter 'action'='reject'
See service specification
Sample Request
curl -X PATCH -H 'Content-Type: application/json' 'http://ehealth.nebo15.com/employee_requests/d290f1ee-6c54-4b01-90e6-d701748f0851/actions/reject'
Get Employee Request Details
Invoke WS Get Employee Request by ID for further employee creation
See service specification
Sample Request
curl -X GET -H 'Content-Type: application/json' 'http://ehealth.nebo15.com/employee_requests/d290f1ee-6c54-4b01-90e6-d701748f0851'
Create user in Auth
Create user in Auth
Create/Update employee
Search party_id by tax_id (tax_id or passport_number) and birth_date for deduplication Party
If found, update object party - Update party WS
If not found, - Create object party
Update Party. See specification
The following fields can't be changed:
tax_id (tax_id or passport_number)
birth_date
If doctor object in ER is null, don't update party.eductions/party.qualifications/party.specialities/party.science_degree. Otherwise update those objects.
if about_myself/working_experience is null or empty string - don't update correspondent fields in parties.
Create party WS. See specification
create related entity party-user in PRM
Chech employee_id in request
if employee_id is exist in request, Update employee.
if employee_id is not exist, Create employee.
Update employee. See specification
The following fields can't be changed:
employee_type
legal_entity_id
start_date
if employee_type = 'DOCTOR', 'SPECIALIST' or 'ASSISTANT' update doctor object
if one of next fields were changed:
first_name
second_name
last_name
find contracts with contractor_owner_id=$owner_id and status='VERIFIED'. Set ops.contracts.is_suspended=true
Create new employee. See specification
If (employee_type = OWNER || employee_type = PHARMACY_OWNER) : deactivate all other records with the employee_type = OWNER
or employee_type = PHARMACY_OWNER for the legal_entity,
where new owner is creating:
update employees e
set is_active = false
inserted_by = $new_owner_id
inserted_at = md5(clock_timestamp()
where e.legal_entity_id = $employee_request.legal_entity_id
and (e.employee_type = 'OWNER' or e.employee_type = 'PHARMACY_OWNER')
In case new OWNER was added find contracts with contractor_owner_id=$old_owner_id and status='VERIFIED'.
Set ops.contracts.is_suspended=true
Create related entity party-user
Create related entity party-user
It can be only one pair user_id-party_id.
party_id cannot be updated for the user_id.
Check that there is no records in party_users for the stated in employee_request user_id
If not - return 422 error: "Email is already used by another person"
Add role
Add user role by invoke service - название метода
Role is assigned according to employee_type
See service logic
See service specification
Sample Request
curl -X POST -H 'Content-Type: application/json' -d '{
"role": "doctor",
"client_id": "b075f148-7f93-4fc2-b2ec-2d81b19a9b7b"
}' 'https://trump.herokuapp.com/admin/parties/b075f148-7f93-4fc2-b2ec-2d81b19a9b7b/add_role'
Update employee request status to APPROVED
Invoke WS to update employee request status with parameter 'action'='approve'
See service specification
Sample Request
curl -X PATCH -H 'Content-Type: application/json' 'http://ehealth.nebo15.com/employee_requests/b075f148-7f93-4fc2-b2ec-2d81b19a9b7b/actions/approve'
Send Email
Send email with successful registration using WS - Send Message (TBD)
Temporarily use Postmark
Response structure examples
See on API-specification
HTTP status codes
Response code | HTTP Status code | Message | Internal name | Description | |
---|---|---|---|---|---|
1 | Базові | ||||
2 |
| 200 | Response |
|
|
3 |
| 401 |
| Invalid scope |
|
4 |
| 422 | Email is already used by another person |
|
|
5 | Специфічні | ||||
6 |
|
|
|
|
|
Post-processing processes
N/A
Technical modules where the method is used
ЕСОЗ - публічна документація