Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

orders.js 1.3 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
  1. var uuid = require('uuid');
  2. var fs = require('fs');
  3. var _ = require('lodash');
  4. var Promise = require('bluebird');
  5. var OrderService = {
  6. placePendingOrder: function (order) {
  7. order.id = uuid.v1();
  8. order.payed = false;
  9. var orders = this.load();
  10. orders.push(order);
  11. this.save(orders);
  12. return Promise.resolve(order);
  13. },
  14. retrieveOrder: function (orderId) {
  15. var orders = this.load();
  16. var order = _.find(orders, ['id', orderId]);
  17. return Promise.resolve(order);
  18. },
  19. confirmOrder: function (orderId, paymentDetails) {
  20. var orders = this.load();
  21. var order = _.find(orders, ['id', orderId]);
  22. if (!order) {
  23. return Promise.reject({ error: 'Order ID not found' });
  24. }
  25. if (order.payed) {
  26. return Promise.resolve(order);
  27. }
  28. order.payed = true;
  29. order.paymentDetails = paymentDetails;
  30. this.save(orders);
  31. return Promise.resolve(order);
  32. },
  33. // persistence
  34. load: function () {
  35. var json = fs.readFileSync('./data/orders.json', { encoding: 'utf8' });
  36. return JSON.parse(json);
  37. },
  38. save: function (orders) {
  39. var json = JSON.stringify(orders);
  40. fs.writeFileSync('./data/orders.json', json, { encoding: 'utf8' });
  41. }
  42. };
  43. module.exports = OrderService;
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...