mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-11 20:13:07 +00:00
added mock collection REST data
This commit is contained in:
@@ -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": "<p>© 2005-2016 JOHN DOE SOME RIGHTS RESERVED</p>",
|
||||
"introductoryText": "<p class='lead'>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.</p>\r\n<p>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.</p>",
|
||||
"shortDescription": "A collection for testing purposes",
|
||||
"sidebarText": "<p>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</p>",
|
||||
},
|
||||
{
|
||||
"id": "598ce822-c357-46f3-ab70-63724d02d6ad",
|
||||
"name": "Test Collection 2",
|
||||
"handle": "123456789/6547",
|
||||
"type": "collection",
|
||||
"copyrightText": "<p>© 2005-2016 JOHN DOE SOME RIGHTS RESERVED</p>",
|
||||
"introductoryText": "<p class='lead'>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.</p>\r\n<p>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.</p>",
|
||||
"shortDescription": "Another collection for testing purposes",
|
||||
"sidebarText": "<p>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</p>",
|
||||
}
|
||||
];
|
||||
|
||||
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;
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user