diff --git a/lib/customers.js b/lib/customers.js index 1070dcf1..2613165f 100644 --- a/lib/customers.js +++ b/lib/customers.js @@ -22,6 +22,8 @@ const idPhotoCardBasedir = _.get('idPhotoCardDir', options) const frontCameraBaseDir = _.get('frontCameraDir', options) const operatorDataDir = _.get('operatorDataDir', options) +const TX_PASSTHROUGH_ERROR_CODES = ['operatorCancel'] + /** * Add new customer * @@ -454,7 +456,6 @@ function batch () { * @returns {array} Array of customers with it's transactions aggregations */ - function getCustomersList (phone = null, name = null, address = null, id = null) { const passableErrorCodes = _.map(Pgp.as.text, TX_PASSTHROUGH_ERROR_CODES).join(',') @@ -502,6 +503,7 @@ function getCustomersList (phone = null, name = null, address = null, id = null) * @returns {array} Array of customers with it's transactions aggregations */ function getCustomerById (id) { + const passableErrorCodes = _.map(Pgp.as.text, TX_PASSTHROUGH_ERROR_CODES).join(',') const sql = `select id, authorized_override, days_suspended, is_suspended, front_camera_path, front_camera_override, phone, sms_override, id_card_data, id_card_data_override, id_card_data_expiration, id_card_photo_path, id_card_photo_override, us_ssn, us_ssn_override, sanctions, sanctions_at, @@ -517,15 +519,15 @@ function getCustomerById (id) { c.sanctions_at, c.sanctions_override, t.tx_class, t.fiat, t.fiat_code, t.created, row_number() over (partition by c.id order by t.created desc) as rn, sum(case when t.id is not null then 1 else 0 end) over (partition by c.id) as total_txs, - sum(case when error_code is distinct from 'operatorCancel' then t.fiat else 0 end) over (partition by c.id) as total_spent + sum(case when error_code is null or error_code not in ($1^) then t.fiat else 0 end) over (partition by c.id) as total_spent from customers c left outer join ( select 'cashIn' as tx_class, id, fiat, fiat_code, created, customer_id, error_code from cash_in_txs where send_confirmed = true union select 'cashOut' as tx_class, id, fiat, fiat_code, created, customer_id, error_code from cash_out_txs where confirmed_at is not null) t on c.id = t.customer_id - where c.id = $1 + where c.id = $2 ) as cl where rn = 1` - return db.oneOrNone(sql, [id]) + return db.oneOrNone(sql, [passableErrorCodes, id]) .then(populateOverrideUsernames) .then(camelize) }