resources/frontend/core/services/resource.service.js
export default class ResourceService {
constructor(idParam = 'id') {
this.idParam = idParam;
}
getItemRequestUri(id) {
throw new Error('getItemRequestUri must be implemented in Resource class');
}
getIdParam() {
return this.idParam;
}
getAll() {
throw new Error('getAll must be implemented in Resource class');
}
getItem(id) {
throw new Error('getItem must be implemented in Resource class');
}
deleteItem(id) {
return undefined;
}
save(data, isNew = false) {
return undefined;
}
create(data) {
return undefined;
}
getOptionLabelKey() {
return undefined;
}
getOptionList() {
return this.getAll({ headers: { 'X-Paginate': 'false' } }).then(({ data }) =>
data.data.map(option => ({
value: option.id,
label: option[this.getOptionLabelKey()],
})),
);
}
}