diff --git a/src/backend/api.ts b/src/backend/api.ts index 51dfc177c3..21ff469384 100644 --- a/src/backend/api.ts +++ b/src/backend/api.ts @@ -1,12 +1,12 @@ -var util = require('util'); -var { Router } = require('express'); +const util = require('util'); +const { Router } = require('express'); // Our API for demos only import { fakeDataBase } from './db'; import { fakeDemoRedisCache } from './cache'; // you would use cookies/token etc -var USER_ID = 'f9d98cf1-1b96-464e-8755-bcc2a5c09077'; // hardcoded as an example +const USER_ID = 'f9d98cf1-1b96-464e-8755-bcc2a5c09077'; // hardcoded as an example // Our API for demos only export function serverApi(req, res) { @@ -27,80 +27,97 @@ export function serverApi(req, res) { } -// todo API +// collection API -var COUNT = 4; -var TODOS = [ - { id: 0, value: 'finish example', created_at: new Date(), completed: false }, - { id: 1, value: 'add tests', created_at: new Date(), completed: false }, - { id: 2, value: 'include development environment', created_at: new Date(), completed: false }, - { id: 3, value: 'include production environment', created_at: new Date(), completed: false } +let COUNT = 2; +const COLLECTIONS = [ + { + "id": "9e32a2e2-6b91-4236-a361-995ccdc14c60", + "name": "Test Collection 1", + "handle": "123456789/5179", + "type": "collection", + "copyrightText": "

© 2005-2016 JOHN DOE SOME RIGHTS RESERVED

", + "introductoryText": "

An introductory text dolor sit amet, consectetur adipiscing elit. Duis laoreet lorem erat, eget auctor est ultrices quis. Nullam ac tincidunt quam. In nec nisl odio. In egestas aliquam tincidunt.

\r\n

Integer vitae diam id dolor pharetra dignissim in sed enim. Vivamus pulvinar tristique sem a iaculis. Aenean ultricies dui vel facilisis laoreet. Integer porta erat eu ultrices rhoncus. Sed condimentum malesuada ex sit amet ullamcorper. Morbi a ipsum dolor. Vivamus interdum eget lacus ut fermentum.

", + "shortDescription": "A collection for testing purposes", + "sidebarText": "

Some news sed condimentum malesuada ex sit amet ullamcorper. Morbi a ipsum dolor. Vivamus interdum eget lacus ut fermentum. Donec sed ultricies erat, nec sollicitudin mauris. Duis varius nulla quis quam vulputate, at hendrerit turpis rutrum. Integer nec facilisis sapien. Fusce fringilla malesuada lectus id pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae

", + }, + { + "id": "598ce822-c357-46f3-ab70-63724d02d6ad", + "name": "Test Collection 2", + "handle": "123456789/6547", + "type": "collection", + "copyrightText": "

© 2005-2016 JOHN DOE SOME RIGHTS RESERVED

", + "introductoryText": "

Another introductory text dolor sit amet, consectetur adipiscing elit. Duis laoreet lorem erat, eget auctor est ultrices quis. Nullam ac tincidunt quam. In nec nisl odio. In egestas aliquam tincidunt.

\r\n

Integer vitae diam id dolor pharetra dignissim in sed enim. Vivamus pulvinar tristique sem a iaculis. Aenean ultricies dui vel facilisis laoreet. Integer porta erat eu ultrices rhoncus. Sed condimentum malesuada ex sit amet ullamcorper. Morbi a ipsum dolor. Vivamus interdum eget lacus ut fermentum.

", + "shortDescription": "Another collection for testing purposes", + "sidebarText": "

Some more news sed condimentum malesuada ex sit amet ullamcorper. Morbi a ipsum dolor. Vivamus interdum eget lacus ut fermentum. Donec sed ultricies erat, nec sollicitudin mauris. Duis varius nulla quis quam vulputate, at hendrerit turpis rutrum. Integer nec facilisis sapien. Fusce fringilla malesuada lectus id pulvinar. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae

", + } ]; -export function createTodoApi() { +export function createMockApi() { - var router = Router() + let router = Router(); - router.route('/todos') + router.route('/collections') .get(function(req, res) { console.log('GET'); // 70ms latency setTimeout(function() { - res.json(TODOS); + res.json(COLLECTIONS); }, 0); - }) - .post(function(req, res) { - console.log('POST', util.inspect(req.body, { colors: true })); - var todo = req.body; - if (todo) { - TODOS.push({ - value: todo.value, - created_at: new Date(), - completed: todo.completed, - id: COUNT++ - }); - return res.json(todo); - } - - return res.end(); + // }) + // .post(function(req, res) { + // console.log('POST', util.inspect(req.body, { colors: true })); + // let collection = req.body; + // if (collection) { + // COLLECTIONS.push({ + // value: collection.value, + // created_at: new Date(), + // completed: collection.completed, + // id: COUNT++ + // }); + // return res.json(collection); + // } + // + // return res.end(); }); - router.param('todo_id', function(req, res, next, todo_id) { + router.param('collection_id', function(req, res, next, collection_id) { // ensure correct prop type - var id = Number(req.params.todo_id); + let id = req.params.collection_id; try { - var todo = TODOS[id]; - req.todo_id = id; - req.todo = TODOS[id]; + req.collection_id = id; + req.collection = COLLECTIONS.find((collection) => { + return collection.id = id; + }); next(); } catch (e) { - next(new Error('failed to load todo')); + next(new Error('failed to load collection')); } }); - router.route('/todos/:todo_id') + router.route('/collections/:collection_id') .get(function(req, res) { - console.log('GET', util.inspect(req.todo, { colors: true })); + console.log('GET', util.inspect(req.collection, { colors: true })); - res.json(req.todo); - }) - .put(function(req, res) { - console.log('PUT', util.inspect(req.body, { colors: true })); - - var index = TODOS.indexOf(req.todo); - var todo = TODOS[index] = req.body; - - res.json(todo); - }) - .delete(function(req, res) { - console.log('DELETE', req.todo_id); - - var index = TODOS.indexOf(req.todo); - TODOS.splice(index, 1); - - res.json(req.todo); + res.json(req.collection); + // }) + // .put(function(req, res) { + // console.log('PUT', util.inspect(req.body, { colors: true })); + // + // let index = COLLECTIONS.indexOf(req.collection); + // let collection = COLLECTIONS[index] = req.body; + // + // res.json(collection); + // }) + // .delete(function(req, res) { + // console.log('DELETE', req.collection_id); + // + // let index = COLLECTIONS.indexOf(req.collection); + // COLLECTIONS.splice(index, 1); + // + // res.json(req.collection); }); return router; -}; +} diff --git a/src/server.aot.ts b/src/server.aot.ts index 7df96cb3b9..a649912eb3 100644 --- a/src/server.aot.ts +++ b/src/server.aot.ts @@ -73,10 +73,10 @@ app.use(cacheControl, express.static(path.join(ROOT, 'dist/client'), { index: fa ///////////////////////// // ** Example API // Notice API should be in a separate process -import { serverApi, createTodoApi } from './backend/api'; +import { serverApi, createMockApi } from './backend/api'; // Our API for demos only app.get('/data.json', serverApi); -app.use('/api', createTodoApi()); +app.use('/api', createMockApi()); function ngApp(req, res) { res.render('index', { diff --git a/src/server.ts b/src/server.ts index 5c4250c2f5..82e7fe0d8c 100644 --- a/src/server.ts +++ b/src/server.ts @@ -66,10 +66,10 @@ app.use(cacheControl, express.static(path.join(ROOT, 'dist/client'), { index: fa ///////////////////////// // ** Example API // Notice API should be in aseparate process -import { serverApi, createTodoApi } from './backend/api'; +import { serverApi, createMockApi } from './backend/api'; // Our API for demos only app.get('/data.json', serverApi); -app.use('/api', createTodoApi()); +app.use('/api', createMockApi()); function ngApp(req, res) { res.render('index', {