Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. /**
  2. * Entity-based service.
  3. * Provides methods to store, modify, and retrieve events entity
  4. */
  5.  
  6. // TODO: replace with DB
  7. const storage = {};
  8.  
  9. /**
  10. * Adds event to storage
  11. * @returns newly created event id
  12. */
  13. const create = (event) => {
  14. const id = Object.keys(storage).length + 1;
  15. storage[id] = event;
  16. return id;
  17. };
  18.  
  19. /** Returns all entities in storage */
  20. const list = () => (Object.keys(storage).map(key => storage[key]));
  21.  
  22. /** Returns event by id */
  23. const find = (id) => {
  24. if (!storage[id]) {
  25. throw new Error(`No event with id "${id}" exists`);
  26. }
  27. return storage[id];
  28. };
  29.  
  30. /** Replaces event by id with given new event */
  31. const update = (id, newEvent) => {
  32. if (!storage[id]) {
  33. throw new Error(`No event with id "${id}" exists`);
  34. }
  35. storage[id] = newEvent;
  36. };
  37.  
  38. /** Removes event by id */
  39. const remove = (id) => {
  40. if (!storage[id]) {
  41. throw new Error(`No event with id "${id}" exists`);
  42. }
  43. delete storage[id];
  44. };
  45.  
  46. module.exports = {
  47. create,
  48. list,
  49. find,
  50. update,
  51. remove,
  52. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement