@@ -15,9 +15,8 @@ const {
15
15
/**
16
16
* Process create entity message
17
17
* @param {Object } message the kafka message
18
- * @param {String } transactionId
19
18
*/
20
- async function processCreate ( message , transactionId ) {
19
+ async function processCreate ( message ) {
21
20
const resource = message . payload . resource
22
21
if ( _ . includes ( _ . keys ( topResources ) , resource ) ) {
23
22
// process the top resources such as user, skill...
@@ -34,7 +33,7 @@ async function processCreate (message, transactionId) {
34
33
// process user resources such as userSkill, userAttribute...
35
34
const userResource = userResources [ resource ]
36
35
userResource . validate ( message . payload )
37
- const { seqNo , primaryTerm , user } = await helper . getUser ( message . payload . userId , transactionId )
36
+ const user = await helper . getUser ( message . payload . userId )
38
37
const relateId = message . payload [ userResource . relateKey ]
39
38
if ( ! user [ userResource . propertyName ] ) {
40
39
user [ userResource . propertyName ] = [ ]
@@ -46,13 +45,13 @@ async function processCreate (message, transactionId) {
46
45
throw helper . getErrorWithStatus ( '[version_conflict_engine_exception]' , 409 )
47
46
} else {
48
47
user [ userResource . propertyName ] . push ( _ . omit ( message . payload , 'resource' ) )
49
- await helper . updateUser ( message . payload . userId , user , seqNo , primaryTerm , transactionId )
48
+ await helper . updateUser ( message . payload . userId , user )
50
49
}
51
50
} else if ( _ . includes ( _ . keys ( organizationResources ) , resource ) ) {
52
51
// process org resources such as org skill provider
53
52
const orgResources = organizationResources [ resource ]
54
53
orgResources . validate ( message . payload )
55
- const { seqNo , primaryTerm , org } = await helper . getOrg ( message . payload . organizationId , transactionId )
54
+ const org = await helper . getOrg ( message . payload . organizationId )
56
55
const relateId = message . payload [ orgResources . relateKey ]
57
56
if ( ! org [ orgResources . propertyName ] ) {
58
57
org [ orgResources . propertyName ] = [ ]
@@ -64,7 +63,7 @@ async function processCreate (message, transactionId) {
64
63
throw helper . getErrorWithStatus ( '[version_conflict_engine_exception]' , 409 )
65
64
} else {
66
65
org [ orgResources . propertyName ] . push ( _ . omit ( message . payload , 'resource' ) )
67
- await helper . updateOrg ( message . payload . organizationId , org , seqNo , primaryTerm , transactionId )
66
+ await helper . updateOrg ( message . payload . organizationId , org )
68
67
}
69
68
} else {
70
69
logger . info ( `Ignore this message since resource is not in [${ _ . union ( _ . keys ( topResources ) , _ . keys ( userResources ) , _ . keys ( organizationResources ) ) } ]` )
@@ -80,16 +79,14 @@ processCreate.schema = {
80
79
payload : Joi . object ( ) . keys ( {
81
80
resource : Joi . string ( ) . required ( )
82
81
} ) . required ( ) . unknown ( true )
83
- } ) . required ( ) ,
84
- transactionId : Joi . string ( ) . required ( )
82
+ } ) . required ( )
85
83
}
86
84
87
85
/**
88
86
* Process update entity message
89
87
* @param {Object } message the kafka message
90
- * @param {String } transactionId
91
88
*/
92
- async function processUpdate ( message , transactionId ) {
89
+ async function processUpdate ( message ) {
93
90
const resource = message . payload . resource
94
91
if ( _ . includes ( _ . keys ( topResources ) , resource ) ) {
95
92
logger . info ( `Processing top level resource: ${ resource } ` )
@@ -98,16 +95,15 @@ async function processUpdate (message, transactionId) {
98
95
const client = await helper . getESClient ( )
99
96
const { index, type } = topResources [ resource ]
100
97
const id = message . payload . id
101
- const source = await client . get ( { index, type, id, transaction : true } )
98
+ const source = await client . getSource ( { index, type, id } )
102
99
await client . update ( {
103
100
index,
104
101
type,
105
102
id,
106
103
body : {
107
- doc : _ . assign ( source . _source , _ . omit ( message . payload , 'resource' ) )
104
+ doc : _ . assign ( source , _ . omit ( message . payload , 'resource' ) )
108
105
} ,
109
- if_seq_no : source . _seq_no ,
110
- if_primary_term : source . _primary_term
106
+ refresh : true
111
107
} )
112
108
} else if ( _ . includes ( _ . keys ( userResources ) , resource ) ) {
113
109
// process user resources such as userSkill, userAttribute...
@@ -116,7 +112,10 @@ async function processUpdate (message, transactionId) {
116
112
logger . info ( `Processing user level resource: ${ resource } :${ relateId } ` )
117
113
userResource . validate ( message . payload )
118
114
logger . info ( `Resource validated for ${ relateId } ` )
119
- const { seqNo, primaryTerm, user } = await helper . getUser ( message . payload . userId , transactionId )
115
+ let user = await helper . getUser ( message . payload . userId , false )
116
+ const seqNo = user . _seq_no
117
+ const primaryTerm = user . _primary_term
118
+ user = user . _source
120
119
logger . info ( `User fetched ${ user . id } and ${ relateId } ` )
121
120
// const relateId = message.payload[userResource.relateKey]
122
121
@@ -128,15 +127,15 @@ async function processUpdate (message, transactionId) {
128
127
const updateIndex = _ . findIndex ( user [ userResource . propertyName ] , [ userResource . relateKey , relateId ] )
129
128
user [ userResource . propertyName ] . splice ( updateIndex , 1 , _ . omit ( message . payload , 'resource' ) )
130
129
logger . info ( `Updating ${ user . id } and ${ relateId } ` )
131
- await helper . updateUser ( message . payload . userId , user , seqNo , primaryTerm , transactionId )
130
+ await helper . updateUser ( message . payload . userId , user , seqNo , primaryTerm )
132
131
logger . info ( `Updated ${ user . id } and ${ relateId } ` )
133
132
}
134
133
} else if ( _ . includes ( _ . keys ( organizationResources ) , resource ) ) {
135
134
logger . info ( `Processing org level resource: ${ resource } ` )
136
135
// process org resources such as org skill providers
137
136
const orgResource = organizationResources [ resource ]
138
137
orgResource . validate ( message . payload )
139
- const { seqNo , primaryTerm , org } = await helper . getOrg ( message . payload . organizationId , transactionId )
138
+ const org = await helper . getOrg ( message . payload . organizationId )
140
139
const relateId = message . payload [ orgResource . relateKey ]
141
140
142
141
// check the resource exist
@@ -146,7 +145,7 @@ async function processUpdate (message, transactionId) {
146
145
} else {
147
146
const updateIndex = _ . findIndex ( org [ orgResource . propertyName ] , [ orgResource . relateKey , relateId ] )
148
147
org [ orgResource . propertyName ] . splice ( updateIndex , 1 , _ . omit ( message . payload , 'resource' ) )
149
- await helper . updateOrg ( message . payload . organizationId , org , seqNo , primaryTerm , transactionId )
148
+ await helper . updateOrg ( message . payload . organizationId , org )
150
149
}
151
150
} else {
152
151
logger . info ( `Ignore this message since resource is not in [${ _ . union ( _ . keys ( topResources ) , _ . keys ( userResources ) , _ . keys ( organizationResources ) ) } ]` )
@@ -162,16 +161,14 @@ processUpdate.schema = {
162
161
payload : Joi . object ( ) . keys ( {
163
162
resource : Joi . string ( ) . required ( )
164
163
} ) . required ( ) . unknown ( true )
165
- } ) . required ( ) ,
166
- transactionId : Joi . string ( ) . required ( )
164
+ } ) . required ( )
167
165
}
168
166
169
167
/**
170
168
* Process delete entity message
171
169
* @param {Object } message the kafka message
172
- * @param {String } transactionId
173
170
*/
174
- async function processDelete ( message , transactionId ) {
171
+ async function processDelete ( message ) {
175
172
const resource = message . payload . resource
176
173
if ( _ . includes ( _ . keys ( topResources ) , resource ) ) {
177
174
// process the top resources such as user, skill...
@@ -187,7 +184,7 @@ async function processDelete (message, transactionId) {
187
184
// process user resources such as userSkill, userAttribute...
188
185
const userResource = userResources [ resource ]
189
186
userResource . validate ( message . payload )
190
- const { seqNo , primaryTerm , user } = await helper . getUser ( message . payload . userId , transactionId )
187
+ const user = await helper . getUser ( message . payload . userId )
191
188
const relateId = message . payload [ userResource . relateKey ]
192
189
193
190
// check the resource exist
@@ -196,13 +193,13 @@ async function processDelete (message, transactionId) {
196
193
throw helper . getErrorWithStatus ( '[resource_not_found_exception]' , 404 )
197
194
} else {
198
195
_ . remove ( user [ userResource . propertyName ] , [ userResource . relateKey , relateId ] )
199
- await helper . updateUser ( message . payload . userId , user , seqNo , primaryTerm , transactionId )
196
+ await helper . updateUser ( message . payload . userId , user )
200
197
}
201
198
} else if ( _ . includes ( _ . keys ( organizationResources ) , resource ) ) {
202
199
// process user resources such as org skill provider
203
200
const orgResource = organizationResources [ resource ]
204
201
orgResource . validate ( message . payload )
205
- const { seqNo , primaryTerm , org } = await helper . getOrg ( message . payload . organizationId , transactionId )
202
+ const org = await helper . getOrg ( message . payload . organizationId )
206
203
const relateId = message . payload [ orgResource . relateKey ]
207
204
208
205
// check the resource exist
@@ -211,7 +208,7 @@ async function processDelete (message, transactionId) {
211
208
throw helper . getErrorWithStatus ( '[resource_not_found_exception]' , 404 )
212
209
} else {
213
210
_ . remove ( org [ orgResource . propertyName ] , [ orgResource . relateKey , relateId ] )
214
- await helper . updateOrg ( message . payload . organizationId , org , seqNo , primaryTerm , transactionId )
211
+ await helper . updateOrg ( message . payload . organizationId , org )
215
212
}
216
213
} else {
217
214
logger . info ( `Ignore this message since resource is not in [${ _ . union ( _ . keys ( topResources ) , _ . keys ( userResources ) , _ . keys ( organizationResources ) ) } ]` )
@@ -227,8 +224,7 @@ processDelete.schema = {
227
224
payload : Joi . object ( ) . keys ( {
228
225
resource : Joi . string ( ) . required ( )
229
226
} ) . required ( ) . unknown ( true )
230
- } ) . required ( ) ,
231
- transactionId : Joi . string ( ) . required ( )
227
+ } ) . required ( )
232
228
}
233
229
234
230
module . exports = {
0 commit comments