@@ -3,6 +3,7 @@ import commandLineUsage from 'command-line-usage'
33import * as fs from 'fs'
44import path from 'path'
55
6+ import { generateUUIDv1 } from '@crowd/common'
67import { CommonMemberService } from '@crowd/common_services'
78import { optionsQx } from '@crowd/data-access-layer'
89import { MemberField , findMemberById } from '@crowd/data-access-layer/src/members'
@@ -33,6 +34,13 @@ const options = [
3334 description :
3435 'The unique ID of a member that will be merged into the first one. This one will be destroyed. You can provide multiple ids here separated by comma.' ,
3536 } ,
37+ {
38+ name : 'userId' ,
39+ alias : 'u' ,
40+ typeLabel : '{underline userId}' ,
41+ type : String ,
42+ description : 'User ID of the user performing the merge.' ,
43+ } ,
3644 {
3745 name : 'help' ,
3846 alias : 'h' ,
@@ -65,6 +73,8 @@ if (parameters.help || !parameters.originalId || !parameters.targetId) {
6573 const originalId = parameters . originalId
6674 const targetIds = parameters . targetId . split ( ',' )
6775
76+ const userId = parameters . userId
77+
6878 const options = await SequelizeRepository . getDefaultIRepositoryOptions ( )
6979 const qx = SequelizeRepository . getQueryExecutor ( options )
7080
@@ -74,6 +84,16 @@ if (parameters.help || !parameters.originalId || !parameters.targetId) {
7484 ] )
7585
7686 options . currentTenant = { id : originalMember . tenantId }
87+ options . currentUser = { id : userId }
88+
89+ const ctx = {
90+ ...options ,
91+ requestId : generateUUIDv1 ( ) ,
92+ userData : {
93+ ip : '127.0.0.1' ,
94+ userAgent : 'merge-members-script' ,
95+ } ,
96+ }
7797
7898 for ( const targetId of targetIds ) {
7999 const targetMember = await findMemberById ( qx , targetId , [
@@ -89,7 +109,7 @@ if (parameters.help || !parameters.originalId || !parameters.targetId) {
89109 log . info ( `Merging ${ targetId } into ${ originalId } ...` )
90110 const service = new CommonMemberService ( optionsQx ( options ) , options . temporal , log )
91111 try {
92- await service . merge ( originalId , targetId )
112+ await service . merge ( originalId , targetId , ctx )
93113 } catch ( err ) {
94114 log . error ( `Error merging members: ${ err . message } ` )
95115 process . exit ( 1 )
0 commit comments