Skip to content

Commit d41e8ad

Browse files
fix x-headers
1 parent bbcc913 commit d41e8ad

File tree

5 files changed

+40
-7
lines changed

5 files changed

+40
-7
lines changed

src/common/helper.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,23 @@ async function scan (modelName, scanParams) {
256256
})
257257
}
258258

259+
/**
260+
* Get all data collection (avoid default page limit of DynamoDB) by scan parameters
261+
* @param {Object} modelName The dynamoose model name
262+
* @param {Object} scanParams The scan parameters object
263+
* @returns {Array}
264+
*/
265+
async function scanAll (modelName, scanParams) {
266+
let results = await models[modelName].scan(scanParams).exec()
267+
let lastKey = results.lastKey
268+
while (!_.isUndefined(results.lastKey)) {
269+
const newResult = await models[modelName].scan(scanParams).startAt(lastKey).exec()
270+
results = [...results, ...newResult]
271+
lastKey = newResult.lastKey
272+
}
273+
return results
274+
}
275+
259276
/**
260277
* Get data collection by query parameters
261278
* @param {Object} modelName The dynamoose model name
@@ -455,6 +472,7 @@ module.exports = {
455472
update,
456473
query,
457474
scan,
475+
scanAll,
458476
validateDuplicate,
459477
getRequest,
460478
postEvent,

src/controllers/ResourceRoleController.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44

55
const service = require('../services/ResourceRoleService')
6+
const helper = require('../common/helper')
67

78
/**
89
* Get resource roles.
@@ -11,7 +12,8 @@ const service = require('../services/ResourceRoleService')
1112
*/
1213
async function getResourceRoles (req, res) {
1314
const result = await service.getResourceRoles(req.query)
14-
res.send(result)
15+
helper.setResHeaders(req, res, result)
16+
res.send(result.data)
1517
}
1618

1719
/**

src/controllers/ResourceRolePhaseDependencyController.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44

55
const service = require('../services/ResourceRolePhaseDependencyService')
6+
const helper = require('../common/helper')
67

78
/**
89
* Get dependencies.
@@ -11,7 +12,8 @@ const service = require('../services/ResourceRolePhaseDependencyService')
1112
*/
1213
async function getDependencies (req, res) {
1314
const result = await service.getDependencies(req.query)
14-
res.send(result)
15+
helper.setResHeaders(req, res, result)
16+
res.send(result.data)
1517
}
1618

1719
/**

src/services/ResourceRolePhaseDependencyService.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,15 @@ async function getDependencies (criteria) {
2424
options.resourceRoleId = { eq: criteria.resourceRoleId }
2525
}
2626
if (!_.isNil(criteria.phaseState)) {
27-
options.phaseState = { eq: criteria.phaseState }
27+
options.phaseState = { eq: criteria.phaseState === 'true' }
28+
}
29+
const list = await helper.scanAll('ResourceRolePhaseDependency', options)
30+
return {
31+
data: list,
32+
total: list.length,
33+
page: 1,
34+
perPage: Math.max(10, list.length)
2835
}
29-
const list = await helper.scan('ResourceRolePhaseDependency', options)
30-
return list
3136
}
3237

3338
getDependencies.schema = {

src/services/ResourceRoleService.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const payloadFields = ['id', 'name', 'legacyId', 'fullReadAccess', 'fullWriteAcc
1717
* @returns {Array} the search result
1818
*/
1919
async function getResourceRoles (criteria) {
20-
let records = await helper.scan('ResourceRole')
20+
let records = await helper.scanAll('ResourceRole')
2121
if (criteria.name) records = _.filter(records, e => (criteria.name === e.name))
2222
if (criteria.id) records = _.filter(records, e => (criteria.id === e.id))
2323
if (criteria.legacyId) records = _.filter(records, e => (_.toNumber(criteria.legacyId) === _.toNumber(e.legacyId)))
@@ -26,7 +26,13 @@ async function getResourceRoles (criteria) {
2626
if (!_.isUndefined(criteria.fullReadAccess)) records = _.filter(records, e => (e.fullReadAccess === (criteria.fullReadAccess === 'true')))
2727
if (!_.isUndefined(criteria.fullWriteAccess)) records = _.filter(records, e => (e.fullWriteAccess === (criteria.fullWriteAccess === 'true')))
2828

29-
return _.map(records, e => _.pick(e, payloadFields))
29+
const result = _.map(records, e => _.pick(e, payloadFields))
30+
return {
31+
data: result,
32+
total: result.length,
33+
page: 1,
34+
perPage: Math.max(10, result.length)
35+
}
3036
}
3137

3238
getResourceRoles.schema = {

0 commit comments

Comments
 (0)