function registerRedeemedPromotionDetailRoute({ app, context }) { app.post( [ '/ewl/promotion/v1/redeemedpromotion/detail', '/ewl/bal/v1/redeemedpromotion/detail', ], (req, res) => { const fixtureCustomerId = typeof context.promotionsRedeemedFixture?.data?.customerId === 'string' ? context.promotionsRedeemedFixture.data.customerId : '' const fixtureOutcomeList = Array.isArray(context.promotionsRedeemedFixture?.data?.outcomeList) ? context.cloneJsonValue(context.promotionsRedeemedFixture.data.outcomeList) : [] const accountNum = context.resolveAccountNum(req.body) || fixtureCustomerId const recordedOutcomeList = context.getRecordedRedeemedPromotionOutcomes(accountNum) const fallbackOutcomeList = [context.buildMockRedeemedPromotionOutcome(req.body)] let outcomeList = recordedOutcomeList if (outcomeList.length === 0) { const accountFixture = context.getAccountSpecificRedeemedPromotionsFixture(accountNum) const accountFixtureOutcomeList = Array.isArray(accountFixture?.data?.outcomeList) ? context.cloneJsonValue(accountFixture.data.outcomeList) : null if (accountFixtureOutcomeList !== null) { outcomeList = accountFixtureOutcomeList } else { outcomeList = context.redeemedPromotionDetailIncludeDefaultRecord ? fixtureOutcomeList.length > 0 ? fixtureOutcomeList : fallbackOutcomeList : [] } } return res.status(200).json({ errorCode: context.redeemedPromotionDetailErrorCode, errorMsg: context.redeemedPromotionDetailErrorMsg, accountNum, outcomeList, }) } ) } module.exports = registerRedeemedPromotionDetailRoute