31 lines
866 B
JavaScript
31 lines
866 B
JavaScript
const _ = require('lodash')
|
|
const Filter = require('scim-query-filter-parser')
|
|
|
|
module.exports = {
|
|
generateSuccess (msg) {
|
|
return {
|
|
succeeded: true,
|
|
code: 0,
|
|
slug: 'ok',
|
|
message: _.defaultTo(msg, 'Operation succeeded.')
|
|
}
|
|
},
|
|
generateError (err, complete = true) {
|
|
const error = {
|
|
succeeded: false,
|
|
code: err.code || 1,
|
|
slug: err.name,
|
|
message: err.message || 'An unexpected error occured.'
|
|
}
|
|
return (complete) ? { operation: error } : error
|
|
},
|
|
filter (arr, filterString) {
|
|
const prvFilter = new Filter(_.toString(filterString).replace(/'/g, `"`))
|
|
return arr.filter(prvFilter.test)
|
|
},
|
|
orderBy (arr, orderString) {
|
|
let orderParams = _.zip(orderString.split(',').map(ord => _.trim(ord).split(' ').map(_.trim)))
|
|
return _.orderBy(arr, orderParams[0], orderParams[1])
|
|
}
|
|
}
|