+// DataStore is mostly recommended for use in the browser
+import HttpAdapter from 'js-data-http';
+const schemas = require('./schemas')(Schema);
+import * as relations from './relations';
+const convertToDate = function (record) {
+ if (typeof record.created_at === 'string') {
+ record.created_at = new Date(record.created_at)
+ if (typeof record.updated_at === 'string') {
+ record.updated_at = new Date(record.updated_at)
+export const adapter = new HttpAdapter({
+ // Our API sits behind the /api path
+export const store = new DataStore({
+ // Override the original to make sure the date properties are actually Date
+ createRecord (props, opts) {
+ const result = this.constructor.prototype.createRecord.call(this, props, opts);
+ if (Array.isArray(result)) {
+ result.forEach(convertToDate)
+ } else if (this.is(result)) {
+store.registerAdapter('http', adapter, {default: true});
+store.defineMapper('team', {
+store.defineMapper('customer', {
+ relations: relations.customer
+store.defineMapper('city', {
+store.defineMapper('product', {
+store.defineMapper('productCategory', {
+ endpoint: 'products-categories'
+store.defineMapper('module', {
+store.defineMapper('assign', {
+store.defineMapper('addresses', {
+ endpoint: 'customers-addresses'
+store.defineMapper('serviceType', {
+ endpoint: 'services-types'