Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Specification

...

    1. Verify the validity of access token
      1. in case of error return 401 ('Access denied')
    2. Check user scope merge_request:review in order to perform this action
      1. in case of error generate 401 response ('Invalid scopes')

Verify user and role

Extract from token:

...

Response

Update  manual_merge_requests a record by ID


column
value
updated_atnow()
status$status
comment$comment


Add a record to audit log

After status was changed  add new record to audit_log

field
value
idgenerate UUID
actor_id$user_id
resource'manual_merge_process'
resource_id$manual_merge_process.id
changeset{status:$status}
inserted_atDATETIME


Update  manual_merge_candidates 

Update assignee_id

Fetch the record from manual_merge_candidates by manual_merge_candidate_id=dedup.manual_merge_candidates.id

column
value
assignee_idnull
updated_atnow()

Check amount of decisions


In case status was changed to final  SPLIT/MERGE/TRASH recalculate how many decisions on this merge_request was made by each status (qty).

Compare calculated qty to decision_amount. If qty=decision_amount:

  1. update manual_merge_candidates by manual_merge_candidate_id=dedup.manual_merge_candidates.id


Field 
Value
status$PROCESSED
updated_atnow()
updated_by$user_id
decision$status (by calculated qty)


in case final decision is MERGE it should be checked whether deactivated person is a slave/master person in  any other merge candidate.

a) fetch all records from manual_merge_candidates where person_id or master_person_id=$person_id 

b) for such record update  


$user_id
Field 
Value
status$PROCESSED
updated_atnow()updated_by
decision$MERGE
status_reasonauto_merge


2. Add even to terminate declaration and deactivate person by person_id to Kafka in case final decision is MERGE