diff --git a/lib/customers.js b/lib/customers.js index 5c82ede0..3a25be04 100644 --- a/lib/customers.js +++ b/lib/customers.js @@ -73,7 +73,9 @@ function update (id, data, userToken, txId) { const formattedData = _.omit(['id'], _.mapKeys(_.snakeCase, data)) const enhancedUpdateData = enhanceAtFields(enhanceOverrideFields(formattedData, userToken)) - const updateData = updateOverride(enhancedUpdateData) + const updateData = updateRawData(updateOverride(enhancedUpdateData)) + + console.log(updateData) const sql = Pgp.helpers.update(updateData, _.keys(updateData), 'customers') + ' where id=$1 returning *' @@ -281,6 +283,18 @@ function enhanceAtFields (fields) { return _.merge(fields, atFields) } +function updateRawData (fields) { + const fieldsWithRawData = [ + 'id_card_data' + ] + + const fieldsToUpdate = _.pick(fieldsWithRawData, fields) + const rawFields = _.fromPairs(_.map(f => [`${f}_raw`, JSON.stringify(fieldsToUpdate[f].raw)], _.keys(fieldsToUpdate))) + const fieldsWithoutRawData = _.mapValues(f => _.omit(['raw'], f), fieldsToUpdate) + + return _.merge(fieldsWithoutRawData, rawFields) +} + /** * Add *override_by and *override_at fields with acting user's token * and date of override respectively before saving to db. diff --git a/migrations/1610716756175-id-card-raw.js b/migrations/1610716756175-id-card-raw.js new file mode 100644 index 00000000..1f854960 --- /dev/null +++ b/migrations/1610716756175-id-card-raw.js @@ -0,0 +1,13 @@ +var db = require('./db') + +exports.up = function (next) { + var sql = [ + 'ALTER TABLE customers ADD COLUMN id_card_data_raw text' + ] + + db.multi(sql, next) +} + +exports.down = function (next) { + next() +}