Validate request
- Validate request using JSON schema
- In case validation failed - generate 422 error
Authorize user
- Verify the validity of access token
- Check user scopes declaration_request:write in order to perform this action
- In case error - generate 401 response
Get declaration request details
Get declaration request from IL_DB.declaration_request
Determine authorization method
Get authorization_method from IL_DB.declaration_request
SELECT IL_DB.declaration_request.authentication_method FROM IL_DB.declaration_request WHERE IL_DB.declaration_request.id = :id
If authentication_method is NULL - return Error
If authentication_method == OFFLINE - check uploaded documents
If authentication_method IN (SMS, SMS_TRUSTEE) - verify SMS code and check uploaded documents for declaration form
Verify code
Invoke verification module to verify OTP
Check uploaded documents
Invoke Media Content Storage to check documents exist
Check doctor's limit
Get employee.id from declaration request
get party for employee_id
Find all employees in status= 'APPROVED' for the party. Count all declarations in status='active' & declaration_requests in status='APPROVED' for these employees.
- If amount of declarations+declaration_requests for party >= parties.declaration_limit and declaration.overlimit is not true
- return error 422 - This doctor reaches his limit and could not sign more declarations
Change declaration request status
- Change entity status in OPS_DB.declaration_request to APPROVED