From 2ec09de962fdb3d9f16c361ae63041f4e384965d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20S=C3=A1?= Date: Mon, 4 Jul 2022 18:05:31 +0100 Subject: [PATCH] fix: make paper & SMS receipts independent --- lib/graphql/resolvers.js | 26 ++++++++++++++++++++------ lib/graphql/types.js | 1 + 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lib/graphql/resolvers.js b/lib/graphql/resolvers.js index d68bc8ce..eb1988d8 100644 --- a/lib/graphql/resolvers.js +++ b/lib/graphql/resolvers.js @@ -23,16 +23,18 @@ const speedtestFiles = [ ] const addSmthInfo = (dstField, srcFields) => smth => - smth && smth.active ? _.set(dstField, _.pick(srcFields, smth)) : _.identity + (smth && smth.active) ? _.set(dstField, _.pick(srcFields, smth)) : _.identity const addOperatorInfo = addSmthInfo( 'operatorInfo', ['name', 'phone', 'email', 'website', 'companyNumber'] ) -const addReceiptInfo = addSmthInfo( - 'receiptInfo', - [ +const addReceiptInfo = receiptInfo => ret => { + if (!receiptInfo) return ret + + const fields = [ + 'paper', 'sms', 'operatorWebsite', 'operatorEmail', @@ -43,10 +45,22 @@ const addReceiptInfo = addSmthInfo( 'exchangeRate', 'addressQRCode', ] -) + const defaults = _.fromPairs(_.map(field => [field, false], fields)) + + receiptInfo = _.flow( + o => _.set('paper', o.active, o), + _.assign(defaults), + _.pick(fields), + )(receiptInfo) + + return (receiptInfo.paper || receiptInfo.sms) ? + _.set('receiptInfo', receiptInfo, ret) : + ret +} + /* TODO: Simplify this. */ -const buildTriggers = (allTriggers) => { +const buildTriggers = allTriggers => { const normalTriggers = [] const customTriggers = _.filter(o => { if (_.isEmpty(o.customInfoRequestId) || _.isNil(o.customInfoRequestId)) normalTriggers.push(o) diff --git a/lib/graphql/types.js b/lib/graphql/types.js index 90d2472c..1a74179a 100644 --- a/lib/graphql/types.js +++ b/lib/graphql/types.js @@ -32,6 +32,7 @@ type MachineInfo { } type ReceiptInfo { + paper: Boolean! sms: Boolean! operatorWebsite: Boolean! operatorEmail: Boolean!