@@ -32,17 +32,20 @@ const uniqueFields = [['handle']]
3232async function create ( entity , auth ) {
3333 await dbHelper . makeSureUnique ( User , entity , uniqueFields )
3434
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+ } )
42+ return result
43+ } catch ( e ) {
44+ if ( payload ) {
45+ helper . postEvent ( config . UBAHN_CREATE_USER_TOPIC , payload )
4246 }
43- } )
44-
45- return result
47+ throw e
48+ }
4649}
4750
4851create . schema = {
@@ -65,19 +68,24 @@ create.schema = {
6568async function patch ( id , entity , auth , params ) {
6669 await dbHelper . makeSureUnique ( User , entity , uniqueFields )
6770
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 )
71+ let payload
72+ try {
73+ const result = await sequelize . transaction ( async ( t ) => {
74+ const newEntity = await dbHelper . update ( User , id , entity , auth , null , t )
75+ payload = newEntity . dataValues
7176
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- } )
77+ await serviceHelper . patchRecordInEs ( resource , newEntity . dataValues , true )
78+
79+ return newEntity
80+ } )
7981
80- return result
82+ return result
83+ } catch ( e ) {
84+ if ( payload ) {
85+ helper . postEvent ( config . UBAHN_UPDATE_USER_TOPIC , payload )
86+ }
87+ throw e
88+ }
8189}
8290
8391patch . schema = {
@@ -180,20 +188,23 @@ async function remove (id, auth, params) {
180188 * @param params the path params
181189 */
182190async 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- } )
191+ let payload = { id}
192+ try {
193+ await sequelize . transaction ( async ( t ) => {
194+ await serviceHelper . deleteChild ( Achievement , id , [ 'userId' , 'achievementsProviderId' ] , 'Achievement' , t )
195+ aa . bb
196+ await serviceHelper . deleteChild ( ExternalProfile , id , [ 'userId' , 'organizationId' ] , 'ExternalProfile' , t )
197+ await serviceHelper . deleteChild ( UserAttribute , id , [ 'userId' , 'attributeId' ] , 'UserAttribute' , t )
198+ await serviceHelper . deleteChild ( UsersRole , id , [ 'userId' , 'roleId' ] , 'UsersRole' , t )
199+ await serviceHelper . deleteChild ( UsersSkill , id , [ 'userId' , 'skillId' ] , 'UsersSkill' , t )
200+ await dbHelper . remove ( User , id , null , t )
201+ await serviceHelper . deleteRecordFromEs ( id , params , resource , true )
202+ } )
203+
204+ } catch ( e ) {
205+ helper . postEvent ( config . UBAHN_DELETE_USER_TOPIC , payload )
206+ throw e
207+ }
197208}
198209
199210module . exports = {
0 commit comments