funquail/front/src/utils.js
Eliot Berriot e59cc33378 First round of improvements to channel management:
- use modals
- less proeminent button
- field styling/labels
2020-02-23 15:31:03 +01:00

35 lines
975 B
JavaScript

import lodash from '@/lodash'
export function setUpdate(obj, statuses, value) {
let updatedKeys = lodash.keys(obj)
updatedKeys.forEach((k) => {
statuses[k] = value
})
}
export function parseAPIErrors(responseData, parentField) {
let errors = []
for (var field in responseData) {
if (responseData.hasOwnProperty(field)) {
let value = responseData[field]
let fieldName = lodash.startCase(field.replace('_', ' '))
if (parentField) {
fieldName = `${parentField} - ${fieldName}`
}
if (value.forEach) {
value.forEach(e => {
if (e.toLocaleLowerCase().includes('this field ')) {
errors.push(`${fieldName}: ${e}`)
} else {
errors.push(e)
}
})
} else if (typeof value === 'object') {
// nested errors
let nestedErrors = parseAPIErrors(value, fieldName)
errors = [...errors, ...nestedErrors]
}
}
}
return errors
}