Untitled
unknown
javascript
3 years ago
1.2 kB
10
Indexable
handler: async (request, h) => {
const { idOrg } = request.params
const { changes: positions } = request.payload
const idFields = positions.map(obj => obj.idField)
const existingFields = await AppDetails.getFieldsByIds({ idFields, idOrg, fields: ["idOrg"] })
if (_.size(existingFields) !== _.size(idFields)) {
return Boom.notFound('Some or all fields from ${idFields} not found')
}
let containsOnlyCustomFieldsForGroupReordering = true;
positions.forEach((position) => {
if (position.idGroup) {
existingFields.forEach((field) => {
if (field.id == position.idField) {
if (field.idOrg != idOrg) {
containsOnlyCustomFieldsForGroupReordering = false;
return
}
}
})
}
})
if (!containsOnlyCustomFieldsForGroupReordering) {
return Boom.notAcceptable('User can only move custom fields between groups')
}
await AppDetails.setFieldsPositions({ idOrg, positions })
const fields = await AppDetails.getFieldsByIds({ idFields, idOrg })
return { fields }
}Editor is loading...