@@ -32,17 +32,21 @@ const uniqueFields = [['handle']]
32
32
async function create ( entity , auth ) {
33
33
await dbHelper . makeSureUnique ( User , entity , uniqueFields )
34
34
35
- const result = await sequelize . transaction ( async ( t ) => {
36
- const userEntity = await dbHelper . create ( User , entity , auth , t )
37
- await serviceHelper . createRecordInEs ( resource , userEntity . dataValues , true )
38
- try {
39
- await helper . postEvent ( config . UBAHN_CREATE_USER_TOPIC , userEntity . dataValues )
40
- } catch ( err ) {
41
- logger . logFullError ( err )
35
+ let payload
36
+ try {
37
+ const result = await sequelize . transaction ( async ( t ) => {
38
+ const userEntity = await dbHelper . create ( User , entity , auth , t )
39
+ payload = userEntity . dataValues
40
+ await serviceHelper . createRecordInEs ( resource , userEntity . dataValues , true )
41
+ return userEntity
42
+ } )
43
+ return result
44
+ } catch ( e ) {
45
+ if ( payload ) {
46
+ helper . postEvent ( config . UBAHN_CREATE_USER_TOPIC , payload )
42
47
}
43
- } )
44
-
45
- return result
48
+ throw e
49
+ }
46
50
}
47
51
48
52
create . schema = {
@@ -65,19 +69,24 @@ create.schema = {
65
69
async function patch ( id , entity , auth , params ) {
66
70
await dbHelper . makeSureUnique ( User , entity , uniqueFields )
67
71
68
- const result = await sequelize . transaction ( async ( t ) => {
69
- const newEntity = await dbHelper . update ( User , id , entity , auth , null , t )
70
- await serviceHelper . patchRecordInEs ( resource , newEntity . dataValues , true )
72
+ let payload
73
+ try {
74
+ const result = await sequelize . transaction ( async ( t ) => {
75
+ const newEntity = await dbHelper . update ( User , id , entity , auth , null , t )
76
+ payload = newEntity . dataValues
71
77
72
- try {
73
- await helper . postEvent ( config . UBAHN_UPDATE_USER_TOPIC , newEntity . dataValues )
74
- } catch ( err ) {
75
- logger . logFullError ( err )
76
- }
77
- return newEntity
78
- } )
78
+ await serviceHelper . patchRecordInEs ( resource , newEntity . dataValues , true )
79
+
80
+ return newEntity
81
+ } )
79
82
80
- return result
83
+ return result
84
+ } catch ( e ) {
85
+ if ( payload ) {
86
+ helper . postEvent ( config . UBAHN_UPDATE_USER_TOPIC , payload )
87
+ }
88
+ throw e
89
+ }
81
90
}
82
91
83
92
patch . schema = {
@@ -180,20 +189,23 @@ async function remove (id, auth, params) {
180
189
* @param params the path params
181
190
*/
182
191
async function beginCascadeDelete ( id , params ) {
183
- await sequelize . transaction ( async ( t ) => {
184
- await serviceHelper . deleteChild ( Achievement , id , [ 'userId' , 'achievementsProviderId' ] , 'Achievement' , t )
185
- await serviceHelper . deleteChild ( ExternalProfile , id , [ 'userId' , 'organizationId' ] , 'ExternalProfile' , t )
186
- await serviceHelper . deleteChild ( UserAttribute , id , [ 'userId' , 'attributeId' ] , 'UserAttribute' , t )
187
- await serviceHelper . deleteChild ( UsersRole , id , [ 'userId' , 'roleId' ] , 'UsersRole' , t )
188
- await serviceHelper . deleteChild ( UsersSkill , id , [ 'userId' , 'skillId' ] , 'UsersSkill' , t )
189
- await dbHelper . remove ( User , id , null , t )
190
- await serviceHelper . deleteRecordFromEs ( id , params , resource , true )
191
- try {
192
- await helper . postEvent ( config . UBAHN_DELETE_USER_TOPIC , { id} )
193
- } catch ( err ) {
194
- logger . logFullError ( err )
195
- }
196
- } )
192
+ let payload = { id}
193
+ try {
194
+ await sequelize . transaction ( async ( t ) => {
195
+ await serviceHelper . deleteChild ( Achievement , id , [ 'userId' , 'achievementsProviderId' ] , 'Achievement' , t )
196
+ aa . bb
197
+ await serviceHelper . deleteChild ( ExternalProfile , id , [ 'userId' , 'organizationId' ] , 'ExternalProfile' , t )
198
+ await serviceHelper . deleteChild ( UserAttribute , id , [ 'userId' , 'attributeId' ] , 'UserAttribute' , t )
199
+ await serviceHelper . deleteChild ( UsersRole , id , [ 'userId' , 'roleId' ] , 'UsersRole' , t )
200
+ await serviceHelper . deleteChild ( UsersSkill , id , [ 'userId' , 'skillId' ] , 'UsersSkill' , t )
201
+ await dbHelper . remove ( User , id , null , t )
202
+ await serviceHelper . deleteRecordFromEs ( id , params , resource , true )
203
+ } )
204
+
205
+ } catch ( e ) {
206
+ helper . postEvent ( config . UBAHN_DELETE_USER_TOPIC , payload )
207
+ throw e
208
+ }
197
209
}
198
210
199
211
module . exports = {
0 commit comments