vikunja-frontend/src/services/savedFilter.ts
2022-04-02 17:14:59 +02:00

38 lines
1 KiB
TypeScript

import AbstractService from '@/services/abstractService'
import SavedFilterModel from '@/models/savedFilter'
import {objectToCamelCase} from '@/helpers/case'
export default class SavedFilterService extends AbstractService {
constructor() {
super({
get: '/filters/{id}',
create: '/filters',
update: '/filters/{id}',
delete: '/filters/{id}',
})
}
modelFactory(data) {
return new SavedFilterModel(data)
}
processModel(model) {
// Make filters from this.filters camelCase and set them to the model property:
// That's easier than making the whole filter component configurable since that still needs to provide
// the filter values in snake_sćase for url parameters.
model.filters = objectToCamelCase(model.filters)
// Make sure all filterValues are passes as strings. This is a requirement of the api.
model.filters.filterValue = model.filters.filterValue.map(v => String(v))
return model
}
beforeUpdate(model) {
return this.processModel(model)
}
beforeCreate(model) {
return this.processModel(model)
}
}