fix: override fields update

This commit is contained in:
Sérgio Salgado 2020-12-14 11:26:54 +00:00 committed by Josh Harvey
parent 1913390eae
commit a432d913be
3 changed files with 10 additions and 3 deletions

View file

@ -97,7 +97,7 @@ function update (id, data, userToken, txId) {
* *
* @returns {Promise} Newly updated Customer * @returns {Promise} Newly updated Customer
*/ */
async function updateCustomer (id, data) { async function updateCustomer (id, data, userToken) {
const formattedData = _.pick( const formattedData = _.pick(
[ [
'authorized_override', 'authorized_override',
@ -110,7 +110,10 @@ async function updateCustomer (id, data) {
], ],
_.mapKeys(_.snakeCase, data)) _.mapKeys(_.snakeCase, data))
const sql = Pgp.helpers.update(formattedData, _.keys(formattedData), 'customers') + const enhancedUpdateData = enhanceAtFields(enhanceOverrideFields(formattedData, userToken))
const updateData = updateOverride(enhancedUpdateData)
const sql = Pgp.helpers.update(updateData, _.keys(updateData), 'customers') +
' where id=$1' ' where id=$1'
await db.none(sql, [id]) await db.none(sql, [id])

View file

@ -49,6 +49,7 @@ const apolloServer = new ApolloServer({
const success = await login.authenticate(token) const success = await login.authenticate(token)
if (!success) throw new AuthenticationError('Authentication failed') if (!success) throw new AuthenticationError('Authentication failed')
return { req: { ...req } }
} }
}) })

View file

@ -311,7 +311,10 @@ const resolvers = {
machineAction: (...[, { deviceId, action, cassette1, cassette2, newName }]) => machineAction({ deviceId, action, cassette1, cassette2, newName }), machineAction: (...[, { deviceId, action, cassette1, cassette2, newName }]) => machineAction({ deviceId, action, cassette1, cassette2, newName }),
createPairingTotem: (...[, { name }]) => pairing.totem(name), createPairingTotem: (...[, { name }]) => pairing.totem(name),
saveAccounts: (...[, { accounts }]) => settingsLoader.saveAccounts(accounts), saveAccounts: (...[, { accounts }]) => settingsLoader.saveAccounts(accounts),
setCustomer: (...[, { customerId, customerInput } ]) => customers.updateCustomer(customerId, customerInput), setCustomer: (root, args, context, info) => {
const token = context.req.cookies && context.req.cookies.token
return customers.updateCustomer(args.customerId, args.customerInput, token)
},
saveConfig: (...[, { config }]) => settingsLoader.saveConfig(config) saveConfig: (...[, { config }]) => settingsLoader.saveConfig(config)
.then(it => { .then(it => {
notify() notify()