@@ -6,9 +6,13 @@ const errors = require('common-errors')
6
6
const _ = require ( 'lodash' )
7
7
const uuid = require ( 'uuid/v4' )
8
8
const joi = require ( 'joi' )
9
+ const logger = require ( 'winston' )
10
+
9
11
const dbhelper = require ( '../common/dbhelper' )
10
12
const helper = require ( '../common/helper' )
11
- const { originator, mimeType, events } = require ( '../../constants' ) . busApiMeta
13
+ const {
14
+ originator, mimeType, events
15
+ } = require ( '../../constants' ) . busApiMeta
12
16
const HelperService = require ( './HelperService' )
13
17
14
18
const busApiClient = helper . getBusApiClient ( )
@@ -38,8 +42,19 @@ function * _getReview (reviewId) {
38
42
* @return {Object } Data found from database
39
43
*/
40
44
function * getReview ( reviewId ) {
41
- const response = yield helper . fetchFromES ( { id : reviewId } , helper . camelize ( table ) )
45
+ const response = yield helper . fetchFromES ( {
46
+ id : reviewId
47
+ } , helper . camelize ( table ) )
48
+
42
49
if ( response . total === 0 ) {
50
+ logger . info ( `Couldn't find review ${ reviewId } in ES. Checking db` )
51
+ const review = yield _getReview ( reviewId )
52
+ logger . debug ( `Review: ${ review } ` )
53
+
54
+ if ( review ) {
55
+ return review
56
+ }
57
+
43
58
throw new errors . HttpStatusError ( 404 , `Review with ID = ${ reviewId } is not found` )
44
59
}
45
60
// Return the retrieved review
@@ -87,7 +102,8 @@ function * createReview (authUser, entity) {
87
102
'created' : currDate ,
88
103
'updated' : currDate ,
89
104
'createdBy' : authUser . handle || authUser . sub ,
90
- 'updatedBy' : authUser . handle || authUser . sub } , entity )
105
+ 'updatedBy' : authUser . handle || authUser . sub
106
+ } , entity )
91
107
92
108
// Prepare record to be inserted
93
109
const record = {
@@ -104,7 +120,9 @@ function * createReview (authUser, entity) {
104
120
'originator' : originator ,
105
121
'timestamp' : currDate , // time when submission was created
106
122
'mime-type' : mimeType ,
107
- 'payload' : _ . extend ( { 'resource' : helper . camelize ( table ) } , item )
123
+ 'payload' : _ . extend ( {
124
+ 'resource' : helper . camelize ( table )
125
+ } , item )
108
126
}
109
127
110
128
// Post to Bus API using Client
@@ -181,18 +199,23 @@ function * _updateReview (authUser, reviewId, entity) {
181
199
'originator' : originator ,
182
200
'timestamp' : currDate , // time when submission was updated
183
201
'mime-type' : mimeType ,
184
- 'payload' : _ . extend ( { 'resource' : helper . camelize ( table ) ,
202
+ 'payload' : _ . extend ( {
203
+ 'resource' : helper . camelize ( table ) ,
185
204
'id' : reviewId ,
186
205
'updated' : currDate ,
187
- 'updatedBy' : authUser . handle || authUser . sub } , entity )
206
+ 'updatedBy' : authUser . handle || authUser . sub
207
+ } , entity )
188
208
}
189
209
190
210
// Post to Bus API using Client
191
211
yield busApiClient . postEvent ( reqBody )
192
212
193
213
// Updating records in DynamoDB doesn't return any response
194
214
// Hence returning the response which will be in compliance with Swagger
195
- return _ . extend ( exist , entity , { 'updated' : currDate , 'updatedBy' : authUser . handle || authUser . sub } )
215
+ return _ . extend ( exist , entity , {
216
+ 'updated' : currDate ,
217
+ 'updatedBy' : authUser . handle || authUser . sub
218
+ } )
196
219
}
197
220
198
221
/**
0 commit comments