cms/app-client/app/mirage/config.js
changeset 126 e87a340711a4
child 127 5cd8c3065c38
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cms/app-client/app/mirage/config.js	Mon Feb 22 18:06:39 2016 +0100
@@ -0,0 +1,104 @@
+import ENV from 'app-client/config/environment';
+import _ from 'lodash/lodash';
+
+export default function() {
+
+  // These comments are here to help you get started. Feel free to delete them.
+
+  /*
+    Config (with defaults).
+
+    Note: these only affect routes defined *after* them!
+  */
+  // this.urlPrefix = '';    // make this `http://localhost:8080`, for example, if your API is on a different server
+  // this.namespace = '';    // make this `api`, for example, if your API is namespaced
+  this.namespace = ENV.baseURL.replace(/\/$/,"")+'/api/v1';
+  // this.timing = 400;      // delay for each request, automatically set to 0 during testing
+
+  this.get('/documents');
+  this.get('/documents/:id', function(db, request) {
+    var docId = decodeURIComponent(request.params.id);
+    console.log("DOC ID", docId);
+
+    return {
+      'document': db.documents.find(docId)
+    };
+  });
+
+  this.get('/languages', function(db) {
+    var res = {};
+    _.each(db.languages, function(lang) {
+      res[lang.id] = lang.count;
+    });
+    return res;
+  });
+
+  /*
+    Route shorthand cheatsheet
+  */
+  /*
+    GET shorthands
+
+    // Collections
+    this.get('/contacts');
+    this.get('/contacts', 'users');
+    this.get('/contacts', ['contacts', 'addresses']);
+
+    // Single objects
+    this.get('/contacts/:id');
+    this.get('/contacts/:id', 'user');
+    this.get('/contacts/:id', ['contact', 'addresses']);
+  */
+
+  /*
+    POST shorthands
+
+    this.post('/contacts');
+    this.post('/contacts', 'user'); // specify the type of resource to be created
+  */
+
+  /*
+    PUT shorthands
+
+    this.put('/contacts/:id');
+    this.put('/contacts/:id', 'user'); // specify the type of resource to be updated
+  */
+
+  /*
+    DELETE shorthands
+
+    this.del('/contacts/:id');
+    this.del('/contacts/:id', 'user'); // specify the type of resource to be deleted
+
+    // Single object + related resources. Make sure parent resource is first.
+    this.del('/contacts/:id', ['contact', 'addresses']);
+  */
+
+  /*
+    Function fallback. Manipulate data in the db via
+
+      - db.{collection}
+      - db.{collection}.find(id)
+      - db.{collection}.where(query)
+      - db.{collection}.update(target, attrs)
+      - db.{collection}.remove(target)
+
+    // Example: return a single object with related models
+    this.get('/contacts/:id', function(db, request) {
+      var contactId = +request.params.id;
+
+      return {
+        contact: db.contacts.find(contactId),
+        addresses: db.addresses.where({contact_id: contactId})
+      };
+    });
+
+  */
+}
+
+/*
+You can optionally export a config that is only loaded during tests
+export function testConfig() {
+
+}
+*/