diff --git a/src/common/helper.js b/src/common/helper.js index 004999b..9a8d624 100644 --- a/src/common/helper.js +++ b/src/common/helper.js @@ -564,6 +564,25 @@ function bigIntToNumber (value) { return null } +function convertBigIntDeep (value) { + if (value === null || value === undefined) { + return value + } + if (typeof value === 'bigint') { + return bigIntToNumber(value) + } + if (Array.isArray(value)) { + return value.map(convertBigIntDeep) + } + if (value instanceof Date) { + return value + } + if (typeof value === 'object') { + return _.mapValues(value, convertBigIntDeep) + } + return value +} + module.exports = { wrapExpress, autoWrapExpress, @@ -591,5 +610,6 @@ module.exports = { getParamsFromQueryAsArray, secureMemberAddressData, truncateLastName, - bigIntToNumber + bigIntToNumber, + convertBigIntDeep } diff --git a/src/services/MemberTraitService.js b/src/services/MemberTraitService.js index 9f5005b..e390bdc 100644 --- a/src/services/MemberTraitService.js +++ b/src/services/MemberTraitService.js @@ -241,7 +241,7 @@ async function getTraits (currentUser, handle, query) { if (!currentUser) { result = _.filter(result, (item) => _.includes(config.MEMBER_PUBLIC_TRAITS, item.traitId)) } - return result + return helper.convertBigIntDeep(result) } getTraits.schema = {