client/src/apis/index.js
import _ from 'lodash';
import { createApi } from './utils';
export const EventsAPI = createApi('/api/events', {
modify: body => {
return fetch('/api/events', {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(body)
}).then(response => response.json());
}
});
export const ServicesAPI = createApi('/api/services');
export const ServiceInfoAPI = createApi('/api/serviceInfo');
export const UsersAPI = createApi('/api/users');
const mapper = (API, other = {}) => {
return _.assign(
{
create: API.create,
destroy: API.destroy,
modify: API.modify,
retrieve: API.retrieve,
idAttribute: 'id'
},
other
);
};
export const mapping = {
events: mapper(EventsAPI, { idAttribute: 'serviceInfo.id' }),
services: mapper(ServicesAPI, { idAttribute: 'id' }),
serviceInfo: mapper(ServiceInfoAPI, { idAttribute: 'id' }),
users: mapper(UsersAPI, { idAttribute: 'id' })
};