Table of Contents |
---|
...
Page Properties | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||
|
Logic
Only authenticated and authorized user can use this service
Only ACTIVE employee role can be deactivated
Legal entity can deactivate only its own employee roles
...
API paragraph not found
Request data validation
API paragraph not found
Processing
...
Validate legal entity
Check that legal entity is active (status = ACTIVE, SUSPENDED)
Extract client_id from token (token.client_id == legal_entity_id)
Check legal entity status (status = ACTIVE, SUSPENDED)
In case of error - return 409 (Legal entity must be ACTIVE or SUSPENDED)
Validate employee role
Check that employee role with such ID exists in the system (is_active = true)
In case of error - return 404
Check that employee role belongs to the same legal entity as the user
In case of error - return 403
Validate transition
Only ACTIVE employee role can be deactivated
Available transitions
ACTIVE → INACTIVE
In other cases - return 409 error ('{current_status} employee role cannot be DEACTIVATED')
Processing
Update object in DB
Parameter | Source | Description |
---|---|---|
end_date | Timestamp: now() | Get current date-time |
status | Const: INACTIVE | |
updated_at | Timestamp: now() | Get current date-time |
updated_by | Token: user_id |
Response structure
See on Apiary
...
Page Properties | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
|
Service logic
Authentication
Validate legal entity
Check that legal entity is active (status = ACTIVE, SUSPENDED)
...
|
...
In case of error - return 409 (Legal entity must be ACTIVE or SUSPENDED)
Validate employee role
...
|
...
In case of error - return 404
...
|
...
In case of error - return 403
Validate transition
Only ACTIVE employee role can be deactivated
Available transitions
ACTIVE → INACTIVE
In other cases - return 409 error ('{current_status} employee role cannot be DEACTIVATED')
Update object in DB
...
Parameter
...
Source
...
Description
...
end_date
...
Timestamp: now()
...
Get current date-time
...
status
...
Const: INACTIVE
...
updated_at
...
Timestamp: now()
...
Get current date-time
...
updated_by
...
|