@@ -11,6 +11,7 @@ const {
11
11
userResources,
12
12
organizationResources
13
13
} = require ( '../common/constants' )
14
+ const config = require ( 'config' )
14
15
15
16
/**
16
17
* Process create entity message
@@ -27,8 +28,8 @@ async function processCreate (message, transactionId) {
27
28
index : topResources [ resource ] . index ,
28
29
type : topResources [ resource ] . type ,
29
30
id : message . payload . id ,
30
- body : _ . omit ( message . payload , 'resource' ) ,
31
- refresh : 'true '
31
+ body : _ . omit ( message . payload , [ 'resource' , 'originalTopic' ] ) ,
32
+ refresh : 'wait_for '
32
33
} )
33
34
} else if ( _ . includes ( _ . keys ( userResources ) , resource ) ) {
34
35
// process user resources such as userSkill, userAttribute...
@@ -45,7 +46,7 @@ async function processCreate (message, transactionId) {
45
46
logger . error ( `Can't create existed ${ resource } with the ${ userResource . relateKey } : ${ relateId } , userId: ${ message . payload . userId } ` )
46
47
throw helper . getErrorWithStatus ( '[version_conflict_engine_exception]' , 409 )
47
48
} else {
48
- user [ userResource . propertyName ] . push ( _ . omit ( message . payload , 'resource' ) )
49
+ user [ userResource . propertyName ] . push ( _ . omit ( message . payload , [ 'resource' , 'originalTopic' ] ) )
49
50
await helper . updateUser ( message . payload . userId , user , seqNo , primaryTerm , transactionId )
50
51
}
51
52
} else if ( _ . includes ( _ . keys ( organizationResources ) , resource ) ) {
@@ -63,7 +64,7 @@ async function processCreate (message, transactionId) {
63
64
logger . error ( `Can't create existing ${ resource } with the ${ orgResources . relateKey } : ${ relateId } , organizationId: ${ message . payload . organizationId } ` )
64
65
throw helper . getErrorWithStatus ( '[version_conflict_engine_exception]' , 409 )
65
66
} else {
66
- org [ orgResources . propertyName ] . push ( _ . omit ( message . payload , 'resource' ) )
67
+ org [ orgResources . propertyName ] . push ( _ . omit ( message . payload , [ 'resource' , 'originalTopic' ] ) )
67
68
await helper . updateOrg ( message . payload . organizationId , org , seqNo , primaryTerm , transactionId )
68
69
}
69
70
} else {
@@ -78,7 +79,8 @@ processCreate.schema = {
78
79
timestamp : Joi . date ( ) . required ( ) ,
79
80
'mime-type' : Joi . string ( ) . required ( ) ,
80
81
payload : Joi . object ( ) . keys ( {
81
- resource : Joi . string ( ) . required ( )
82
+ resource : Joi . string ( ) . required ( ) ,
83
+ originalTopic : Joi . string ( ) . required ( ) . valid ( config . UBAHN_CREATE_TOPIC )
82
84
} ) . required ( ) . unknown ( true )
83
85
} ) . required ( ) ,
84
86
transactionId : Joi . string ( ) . required ( )
@@ -105,10 +107,11 @@ async function processUpdate (message, transactionId) {
105
107
id,
106
108
transactionId,
107
109
body : {
108
- doc : _ . assign ( source . _source , _ . omit ( message . payload , 'resource' ) )
110
+ doc : _ . assign ( source . _source , _ . omit ( message . payload , [ 'resource' , 'originalTopic' ] ) )
109
111
} ,
110
112
if_seq_no : source . _seq_no ,
111
- if_primary_term : source . _primary_term
113
+ if_primary_term : source . _primary_term ,
114
+ refresh : 'wait_for'
112
115
} )
113
116
} else if ( _ . includes ( _ . keys ( userResources ) , resource ) ) {
114
117
// process user resources such as userSkill, userAttribute...
@@ -127,7 +130,7 @@ async function processUpdate (message, transactionId) {
127
130
throw helper . getErrorWithStatus ( '[resource_not_found_exception]' , 404 )
128
131
} else {
129
132
const updateIndex = _ . findIndex ( user [ userResource . propertyName ] , [ userResource . relateKey , relateId ] )
130
- user [ userResource . propertyName ] . splice ( updateIndex , 1 , _ . omit ( message . payload , 'resource' ) )
133
+ user [ userResource . propertyName ] . splice ( updateIndex , 1 , _ . omit ( message . payload , [ 'resource' , 'originalTopic' ] ) )
131
134
logger . info ( `Updating ${ user . id } and ${ relateId } ` )
132
135
await helper . updateUser ( message . payload . userId , user , seqNo , primaryTerm , transactionId )
133
136
logger . info ( `Updated ${ user . id } and ${ relateId } ` )
@@ -146,7 +149,7 @@ async function processUpdate (message, transactionId) {
146
149
throw helper . getErrorWithStatus ( '[resource_not_found_exception]' , 404 )
147
150
} else {
148
151
const updateIndex = _ . findIndex ( org [ orgResource . propertyName ] , [ orgResource . relateKey , relateId ] )
149
- org [ orgResource . propertyName ] . splice ( updateIndex , 1 , _ . omit ( message . payload , 'resource' ) )
152
+ org [ orgResource . propertyName ] . splice ( updateIndex , 1 , _ . omit ( message . payload , [ 'resource' , 'originalTopic' ] ) )
150
153
await helper . updateOrg ( message . payload . organizationId , org , seqNo , primaryTerm , transactionId )
151
154
}
152
155
} else {
@@ -161,7 +164,8 @@ processUpdate.schema = {
161
164
timestamp : Joi . date ( ) . required ( ) ,
162
165
'mime-type' : Joi . string ( ) . required ( ) ,
163
166
payload : Joi . object ( ) . keys ( {
164
- resource : Joi . string ( ) . required ( )
167
+ resource : Joi . string ( ) . required ( ) ,
168
+ originalTopic : Joi . string ( ) . required ( ) . valid ( config . UBAHN_UPDATE_TOPIC )
165
169
} ) . required ( ) . unknown ( true )
166
170
} ) . required ( ) ,
167
171
transactionId : Joi . string ( ) . required ( )
@@ -182,7 +186,7 @@ async function processDelete (message, transactionId) {
182
186
index : topResources [ resource ] . index ,
183
187
type : topResources [ resource ] . type ,
184
188
id : message . payload . id ,
185
- refresh : 'true '
189
+ refresh : 'wait_for '
186
190
} )
187
191
} else if ( _ . includes ( _ . keys ( userResources ) , resource ) ) {
188
192
// process user resources such as userSkill, userAttribute...
@@ -226,7 +230,8 @@ processDelete.schema = {
226
230
timestamp : Joi . date ( ) . required ( ) ,
227
231
'mime-type' : Joi . string ( ) . required ( ) ,
228
232
payload : Joi . object ( ) . keys ( {
229
- resource : Joi . string ( ) . required ( )
233
+ resource : Joi . string ( ) . required ( ) ,
234
+ originalTopic : Joi . string ( ) . required ( ) . valid ( config . UBAHN_DELETE_TOPIC )
230
235
} ) . required ( ) . unknown ( true )
231
236
} ) . required ( ) ,
232
237
transactionId : Joi . string ( ) . required ( )
0 commit comments