@webresto/graphql 1.3.1 → 1.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. package/lib/eventHelper.js +1 -0
  2. package/lib/eventHelper.ts +1 -0
  3. package/package.json +1 -1
  4. package/src/additionalResolvers.js +33 -5
  5. package/src/additionalResolvers.ts +38 -5
  6. package/src/graphql.js +35 -22
  7. package/src/graphql.ts +38 -25
  8. package/src/resolvers/cart.d.ts +225 -7
  9. package/src/resolvers/cart.js +27 -7
  10. package/src/resolvers/cart.ts +24 -8
  11. package/src/resolvers/checkout.js +9 -7
  12. package/src/resolvers/checkout.ts +14 -9
  13. package/test/{_bootstrap.js → bootstrap.js} +6 -7
  14. package/test/bootstrap.ts +3 -0
  15. package/test/fixture/.sailsrc +14 -0
  16. package/test/fixture/api/controllers/.gitkeep +0 -0
  17. package/test/fixture/api/models/.gitkeep +0 -0
  18. package/test/fixture/api/services/.gitkeep +0 -0
  19. package/test/fixture/app-export.js +73 -73
  20. package/test/fixture/app.js +56 -56
  21. package/test/fixture/config/adminpanel.js +25 -3
  22. package/test/fixture/config/bootstrap.js +161 -0
  23. package/test/fixture/config/connections.js +9 -9
  24. package/test/fixture/config/env/development.js +10 -10
  25. package/test/fixture/config/env/production.js +16 -16
  26. package/test/fixture/config/globals.js +16 -16
  27. package/test/fixture/config/hookTimeout.js +8 -8
  28. package/test/fixture/config/http.js +93 -93
  29. package/test/fixture/config/i18n.js +57 -57
  30. package/test/fixture/config/log.js +29 -29
  31. package/test/fixture/config/models.js +8 -8
  32. package/test/fixture/config/modulemanager.js +22 -22
  33. package/test/fixture/config/policies.js +51 -51
  34. package/test/fixture/config/routes.js +49 -49
  35. package/test/fixture/config/session.js +100 -100
  36. package/test/fixture/config/sockets.js +141 -141
  37. package/test/fixture/config/views.js +94 -94
  38. package/test/fixture/hacks/waterline.js +39 -0
  39. package/test/fixture/package.json +33 -30
  40. package/test/fixture/seeds/dish.json +37042 -0
  41. package/test/fixture/seeds/group.json +1418 -0
  42. package/test/fixture/seeds/iikoDiscount.json +365 -0
  43. package/test/fixture/views/403.ejs +68 -68
  44. package/test/fixture/views/404.ejs +68 -68
  45. package/test/fixture/views/500.ejs +73 -73
  46. package/test/fixture/views/homepage.ejs +74 -74
  47. package/test/fixture/views/layout.ejs +91 -91
  48. package/test/integration/graphql.test.js +11 -0
  49. package/test/integration/graphql.test.ts +15 -0
  50. package/test/integration/order.test.js +86 -0
  51. package/test/integration/order.test.ts +108 -0
  52. package/test/{unit → integration}/sails_not_crash.test.js +0 -0
  53. package/test/{unit → integration}/sails_not_crash.test.ts +0 -0
  54. package/test/unit/first.test.js +1 -1
  55. package/test/unit/first.test.ts +1 -1
  56. package/test/fixture/.tmp/localDiskDb/archive.db +0 -1
  57. package/test/fixture/.tmp/localDiskDb/dish.db +0 -1
  58. package/test/fixture/.tmp/localDiskDb/dish_images__image_dish.db +0 -1
  59. package/test/fixture/.tmp/localDiskDb/group.db +0 -1
  60. package/test/fixture/.tmp/localDiskDb/group_images__image_group.db +0 -1
  61. package/test/fixture/.tmp/localDiskDb/image.db +0 -1
  62. package/test/fixture/.tmp/localDiskDb/maintenance.db +0 -1
  63. package/test/fixture/.tmp/localDiskDb/order.db +0 -1
  64. package/test/fixture/.tmp/localDiskDb/orderdish.db +0 -1
  65. package/test/fixture/.tmp/localDiskDb/paymentdocument.db +0 -1
  66. package/test/fixture/.tmp/localDiskDb/paymentmethod.db +0 -2
  67. package/test/fixture/.tmp/localDiskDb/place.db +0 -1
  68. package/test/fixture/.tmp/localDiskDb/settings.db +0 -2
  69. package/test/fixture/.tmp/localDiskDb/street.db +0 -1
  70. package/test/fixture/package-lock.json +0 -9805
  71. package/test.zip +0 -0
@@ -32,7 +32,10 @@ export default {
32
32
  );
33
33
  order = await getNewCart(args.orderId);
34
34
  }
35
- return await Order.populate(order.id);
35
+
36
+ let fullOrder = await Order.populate(order.id);
37
+ getEmitter().emit("http-api:before-response-order", fullOrder);
38
+ return fullOrder
36
39
  },
37
40
  },
38
41
  },
@@ -95,7 +98,11 @@ export default {
95
98
  args.replace,
96
99
  args.orderDishId
97
100
  );
98
- return await Order.countCart(order);
101
+ await Order.countCart(order);
102
+
103
+ let fullOrder = await Order.populate(order.id);
104
+ getEmitter().emit("http-api:before-response-order-add-dish", fullOrder);
105
+ return fullOrder
99
106
  },
100
107
  },
101
108
  orderReplaceDish: {
@@ -127,7 +134,9 @@ export default {
127
134
  args.orderDishId
128
135
  );
129
136
  await Order.countCart(order);
130
- return await Order.populate(order.id);
137
+ let fullOrder = await Order.populate(order.id);
138
+ getEmitter().emit("http-api:before-response-order-replace-dish", fullOrder);
139
+ return fullOrder
131
140
  },
132
141
  },
133
142
  orderRemoveDish: {
@@ -152,7 +161,9 @@ export default {
152
161
 
153
162
  await Order.removeDish(order.id, orderDish, args.amount, false);
154
163
  await Order.countCart(order);
155
- return await Order.populate(order.id);
164
+ let fullOrder = await Order.populate(order.id);
165
+ getEmitter().emit("http-api:before-response-order-remove-dish", fullOrder);
166
+ return fullOrder
156
167
  },
157
168
  },
158
169
  orderSetDishAmount: {
@@ -190,7 +201,9 @@ export default {
190
201
 
191
202
  await Order.setCount(order.id, dish, args.amount);
192
203
  await Order.countCart(order);
193
- return await Order.populate(order.id);
204
+ let fullOrder = await Order.populate(order.id);
205
+ getEmitter().emit("http-api:before-response-order-set-dish-amount", fullOrder);
206
+ return fullOrder
194
207
  },
195
208
  },
196
209
  orderSetDishComment: {
@@ -227,8 +240,9 @@ export default {
227
240
 
228
241
  await order.setComment(dish, comment);
229
242
  await Order.countCart(order);
230
- return await Order.populate(order.id);
231
- },
243
+ let fullOrder = await Order.populate(order.id);
244
+ getEmitter().emit("http-api:before-response-order-set-dish-comment", fullOrder);
245
+ return fullOrder },
232
246
  },
233
247
 
234
248
  orderUpdate: {
@@ -239,7 +253,9 @@ export default {
239
253
  if (!order.id) throw "order.id field is required"
240
254
  await Order.update({id: order.id}, {trifleFrom: order.trifleFrom})
241
255
  await Order.populate(order.id);
242
- return await Order.populate(order.id);
256
+ let fullOrder = await Order.populate(order.id);
257
+ getEmitter().emit("http-api:before-response-order-update", fullOrder);
258
+ return fullOrder
243
259
  },
244
260
  },
245
261
  },
@@ -62,11 +62,11 @@ exports.default = {
62
62
  order.customData.callback = data.customData.callback;
63
63
  }
64
64
  await Order.update({ id: order.id }, order).fetch();
65
- let success;
66
- success = await Order.check(order.id, data.customer, isSelfService, data.address, data.paymentMethodId);
67
- order = await Order.findOne(data.orderId).populateAll();
65
+ await Order.check(order.id, data.customer, isSelfService, data.address, data.paymentMethodId);
66
+ order = await Order.findOne(data.orderId);
67
+ console.log(order.dishes);
68
68
  let message;
69
- if (success && order.state === "CHECKOUT") {
69
+ if (order.state === "CHECKOUT") {
70
70
  message = {
71
71
  type: "info",
72
72
  title: "Внимание",
@@ -77,16 +77,17 @@ exports.default = {
77
77
  }
78
78
  else {
79
79
  if (order.message) {
80
- return eventHelper.sendMessage(args.orderId, {
80
+ message = {
81
81
  type: "error",
82
82
  title: "Внимание",
83
83
  message: order.message
84
84
  ? order.message
85
85
  : "Не удалось проверить заказ.",
86
- });
86
+ };
87
87
  }
88
88
  }
89
- return { order: order };
89
+ return eventHelper.sendMessage(args.orderId, message);
90
+ return { message: message, order: order };
90
91
  }
91
92
  catch (e) {
92
93
  let message = {
@@ -203,6 +204,7 @@ exports.default = {
203
204
  // }
204
205
  // }
205
206
  await Order.order(order.id);
207
+ order = await Order.findOne({ id: data.orderId });
206
208
  const message = {
207
209
  type: "info",
208
210
  title: "Успешно",
@@ -42,6 +42,7 @@ export default {
42
42
  message: "Корзина уже заказана",
43
43
  });
44
44
  }
45
+
45
46
  if (data.paymentMethodId) {
46
47
  if (!PaymentMethod.checkAvailable(data.paymentMethodId)) {
47
48
  return eventHelper.sendMessage(args.orderId, {
@@ -70,19 +71,20 @@ export default {
70
71
 
71
72
  await Order.update({ id: order.id }, order).fetch();
72
73
 
73
- let success: boolean;
74
-
75
- success = await Order.check(
74
+ await Order.check(
76
75
  order.id,
77
76
  data.customer,
78
77
  isSelfService,
79
78
  data.address,
80
79
  data.paymentMethodId
81
80
  );
82
- order = await Order.findOne(data.orderId).populateAll();
81
+
82
+ order = await Order.findOne(data.orderId);
83
+ console.log(order.dishes)
84
+
83
85
  let message;
84
86
 
85
- if (success && order.state === "CHECKOUT") {
87
+ if (order.state === "CHECKOUT") {
86
88
  message = {
87
89
  type: "info",
88
90
  title: "Внимание",
@@ -90,19 +92,22 @@ export default {
90
92
  ? order.message
91
93
  : "Заказ готов к оформлению",
92
94
  };
95
+
93
96
  } else {
94
97
  if (order.message) {
95
- return eventHelper.sendMessage(args.orderId, {
98
+ message = {
96
99
  type: "error",
97
100
  title: "Внимание",
98
101
  message: order.message
99
102
  ? order.message
100
103
  : "Не удалось проверить заказ.",
101
- });
104
+ }
102
105
  }
103
106
  }
104
107
 
105
- return { order: order };
108
+ return eventHelper.sendMessage(args.orderId, message);
109
+
110
+ return { message: message, order: order };
106
111
  } catch (e) {
107
112
  let message = {
108
113
  type: "error",
@@ -218,7 +223,7 @@ export default {
218
223
  // }
219
224
 
220
225
  await Order.order(order.id);
221
-
226
+ order = await Order.findOne({ id: data.orderId })
222
227
  const message = {
223
228
  type: "info",
224
229
  title: "Успешно",
@@ -1,15 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  require("mocha");
4
- var Sails = require('./fixtures/v0.12-app/node_modules/sails').Sails;
4
+ require("dotenv").config();
5
+ var Sails = require("./fixture/node_modules/sails").Sails;
6
+ process.env.DEV = "TRUE";
7
+ process.env.LOG_LEVEL = 'silent';
5
8
  before(function (done) {
6
- let rc = require('./fixtures/v0.12-app/app').rc;
9
+ require("./fixture/app-export");
7
10
  this.timeout(50000);
8
- Sails().lift(rc, function (err, _sails) {
11
+ Sails().lift({}, function (err, _sails) {
9
12
  if (err)
10
13
  return done(err);
11
14
  global.sails = _sails;
12
- // console.log(_sails);
13
15
  return done();
14
16
  });
15
17
  });
@@ -18,12 +20,9 @@ after(function (done) {
18
20
  return global.sails.lower(function (err) {
19
21
  if (err) {
20
22
  done();
21
- return process.exit(2);
22
23
  }
23
24
  done();
24
- return process.exit(0);
25
25
  });
26
26
  }
27
27
  done();
28
- return process.exit(2);
29
28
  });
package/test/bootstrap.ts CHANGED
@@ -2,6 +2,9 @@ import "mocha";
2
2
  require("dotenv").config();
3
3
  var Sails = require("./fixture/node_modules/sails").Sails;
4
4
 
5
+ process.env.DEV = "TRUE"
6
+ process.env.LOG_LEVEL= 'silent'
7
+
5
8
  before(function (done) {
6
9
  require("./fixture/app-export");
7
10
  this.timeout(50000);
@@ -0,0 +1,14 @@
1
+ {
2
+ "generators": {
3
+ "modules": {}
4
+ },
5
+ "hooks": {
6
+ "grunt": false,
7
+ ".ci": false,
8
+ "sockets":false,
9
+ "pubsub": false
10
+ },
11
+ "paths": {
12
+ "hooks": "modules"
13
+ }
14
+ }
File without changes
File without changes
File without changes
@@ -1,73 +1,73 @@
1
- /**
2
- * app.js
3
- *
4
- * Use `app.js` to run your app without `sails lift`.
5
- * To start the server, run: `node app.js`.
6
- *
7
- * This is handy in situations where the sails CLI is not relevant or useful.
8
- *
9
- * For example:
10
- * => `node app.js`
11
- * => `forever start app.js`
12
- * => `node debug app.js`
13
- * => `modulus deploy`
14
- * => `heroku scale`
15
- *
16
- *
17
- * The same command-line arguments are supported, e.g.:
18
- * `node app.js --silent --port=80 --prod`
19
- */
20
-
21
-
22
- // Ensure we're in the project directory, so cwd-relative paths work as expected
23
- // no matter where we actually lift from.
24
- // > Note: This is not required in order to lift, but it is a convenient default.
25
- process.chdir(__dirname);
26
-
27
- // Attempt to import `sails`.
28
- var sails;
29
- try {
30
- sails = require('sails');
31
- } catch (e) {
32
- console.error('To run an app using `node app.js`, you usually need to have a version of `sails` installed in the same directory as your app.');
33
- console.error('To do that, run `npm install sails`');
34
- console.error('');
35
- console.error('Alternatively, if you have sails installed globally (i.e. you did `npm install -g sails`), you can use `sails lift`.');
36
- console.error('When you run `sails lift`, your app will still use a local `./node_modules/sails` dependency if it exists,');
37
- console.error('but if it doesn\'t, the app will run with the global sails instead!');
38
- return;
39
- }
40
-
41
- // --•
42
- // Try to get `rc` dependency (for loading `.sailsrc` files).
43
- var rc;
44
- try {
45
- rc = require('rc');
46
- } catch (e0) {
47
- try {
48
- rc = require('sails/accessible/rc');
49
- } catch (e1) {
50
- console.error('Could not find dependency: `rc`.');
51
- console.error('Your `.sailsrc` file(s) will be ignored.');
52
- console.error('To resolve this, run:');
53
- console.error('npm install rc --save');
54
- rc = function () { return {}; };
55
- }
56
- }
57
-
58
-
59
-
60
- // function sails() {
61
- // return new Promise(function (resolve, reject) {
62
- // sails.lift(rc('sails'), (err, _sails) => {
63
- // if (err) { return done(err); }
64
- // resolve(_sails);
65
- // });
66
- // })
67
- // }
68
-
69
-
70
- module.exports = {
71
- sails: sails,
72
- rc: rc('sails')
73
- }
1
+ /**
2
+ * app.js
3
+ *
4
+ * Use `app.js` to run your app without `sails lift`.
5
+ * To start the server, run: `node app.js`.
6
+ *
7
+ * This is handy in situations where the sails CLI is not relevant or useful.
8
+ *
9
+ * For example:
10
+ * => `node app.js`
11
+ * => `forever start app.js`
12
+ * => `node debug app.js`
13
+ * => `modulus deploy`
14
+ * => `heroku scale`
15
+ *
16
+ *
17
+ * The same command-line arguments are supported, e.g.:
18
+ * `node app.js --silent --port=80 --prod`
19
+ */
20
+
21
+
22
+ // Ensure we're in the project directory, so cwd-relative paths work as expected
23
+ // no matter where we actually lift from.
24
+ // > Note: This is not required in order to lift, but it is a convenient default.
25
+ process.chdir(__dirname);
26
+
27
+ // Attempt to import `sails`.
28
+ var sails;
29
+ try {
30
+ sails = require('sails');
31
+ } catch (e) {
32
+ console.error('To run an app using `node app.js`, you usually need to have a version of `sails` installed in the same directory as your app.');
33
+ console.error('To do that, run `npm install sails`');
34
+ console.error('');
35
+ console.error('Alternatively, if you have sails installed globally (i.e. you did `npm install -g sails`), you can use `sails lift`.');
36
+ console.error('When you run `sails lift`, your app will still use a local `./node_modules/sails` dependency if it exists,');
37
+ console.error('but if it doesn\'t, the app will run with the global sails instead!');
38
+ return;
39
+ }
40
+
41
+ // --•
42
+ // Try to get `rc` dependency (for loading `.sailsrc` files).
43
+ var rc;
44
+ try {
45
+ rc = require('rc');
46
+ } catch (e0) {
47
+ try {
48
+ rc = require('sails/accessible/rc');
49
+ } catch (e1) {
50
+ console.error('Could not find dependency: `rc`.');
51
+ console.error('Your `.sailsrc` file(s) will be ignored.');
52
+ console.error('To resolve this, run:');
53
+ console.error('npm install rc --save');
54
+ rc = function () { return {}; };
55
+ }
56
+ }
57
+
58
+
59
+
60
+ // function sails() {
61
+ // return new Promise(function (resolve, reject) {
62
+ // sails.lift(rc('sails'), (err, _sails) => {
63
+ // if (err) { return done(err); }
64
+ // resolve(_sails);
65
+ // });
66
+ // })
67
+ // }
68
+
69
+
70
+ module.exports = {
71
+ sails: sails,
72
+ rc: rc('sails')
73
+ }
@@ -1,56 +1,56 @@
1
- /**
2
- * app.js
3
- *
4
- * Use `app.js` to run your app without `sails lift`.
5
- * To start the server, run: `node app.js`.
6
- *
7
- * This is handy in situations where the sails CLI is not relevant or useful,
8
- * such as when you deploy to a server, or a PaaS like Heroku.
9
- *
10
- * For example:
11
- * => `node app.js`
12
- * => `npm start`
13
- * => `forever start app.js`
14
- * => `node debug app.js`
15
- *
16
- * The same command-line arguments and env vars are supported, e.g.:
17
- * `NODE_ENV=production node app.js --port=80 --verbose`
18
- *
19
- * For more information see:
20
- * https://sailsjs.com/anatomy/app.js
21
- */
22
-
23
-
24
- // Ensure we're in the project directory, so cwd-relative paths work as expected
25
- // no matter where we actually lift from.
26
- // > Note: This is not required in order to lift, but it is a convenient default.
27
- process.chdir(__dirname);
28
-
29
- process.env.DEV = "TRUE";
30
-
31
-
32
- // Attempt to import `sails` dependency, as well as `rc` (for loading `.sailsrc` files).
33
- var sails;
34
- var rc;
35
- try {
36
- sails = require('sails');
37
- rc = require('sails/accessible/rc');
38
- } catch (err) {
39
- console.error('Encountered an error when attempting to require(\'sails\'):');
40
- console.error(err.stack);
41
- console.error('--');
42
- console.error('To run an app using `node app.js`, you need to have Sails installed');
43
- console.error('locally (`./node_modules/sails`). To do that, just make sure you\'re');
44
- console.error('in the same directory as your app and run `npm install`.');
45
- console.error();
46
- console.error('If Sails is installed globally (i.e. `npm install -g sails`) you can');
47
- console.error('also run this app with `sails lift`. Running with `sails lift` will');
48
- console.error('not run this file (`app.js`), but it will do exactly the same thing.');
49
- console.error('(It even uses your app directory\'s local Sails install, if possible.)');
50
- return;
51
- }//-•
52
-
53
- console.log(rc('sails'))
54
-
55
- // Start server
56
- sails.lift(rc('sails'));
1
+ /**
2
+ * app.js
3
+ *
4
+ * Use `app.js` to run your app without `sails lift`.
5
+ * To start the server, run: `node app.js`.
6
+ *
7
+ * This is handy in situations where the sails CLI is not relevant or useful,
8
+ * such as when you deploy to a server, or a PaaS like Heroku.
9
+ *
10
+ * For example:
11
+ * => `node app.js`
12
+ * => `npm start`
13
+ * => `forever start app.js`
14
+ * => `node debug app.js`
15
+ *
16
+ * The same command-line arguments and env vars are supported, e.g.:
17
+ * `NODE_ENV=production node app.js --port=80 --verbose`
18
+ *
19
+ * For more information see:
20
+ * https://sailsjs.com/anatomy/app.js
21
+ */
22
+
23
+
24
+ // Ensure we're in the project directory, so cwd-relative paths work as expected
25
+ // no matter where we actually lift from.
26
+ // > Note: This is not required in order to lift, but it is a convenient default.
27
+ process.chdir(__dirname);
28
+
29
+ process.env.DEV = "TRUE";
30
+ process.env.PORT = 42776;
31
+
32
+ // Attempt to import `sails` dependency, as well as `rc` (for loading `.sailsrc` files).
33
+ var sails;
34
+ var rc;
35
+ try {
36
+ sails = require('sails');
37
+ rc = require('sails/accessible/rc');
38
+ } catch (err) {
39
+ console.error('Encountered an error when attempting to require(\'sails\'):');
40
+ console.error(err.stack);
41
+ console.error('--');
42
+ console.error('To run an app using `node app.js`, you need to have Sails installed');
43
+ console.error('locally (`./node_modules/sails`). To do that, just make sure you\'re');
44
+ console.error('in the same directory as your app and run `npm install`.');
45
+ console.error();
46
+ console.error('If Sails is installed globally (i.e. `npm install -g sails`) you can');
47
+ console.error('also run this app with `sails lift`. Running with `sails lift` will');
48
+ console.error('not run this file (`app.js`), but it will do exactly the same thing.');
49
+ console.error('(It even uses your app directory\'s local Sails install, if possible.)');
50
+ return;
51
+ }//-•
52
+
53
+ console.log(rc('sails'))
54
+
55
+ // Start server
56
+ sails.lift(rc('sails'));
@@ -1,3 +1,25 @@
1
- module.exports.adminpanel = {
2
- // auth: true
3
- }
1
+ 'use strict';
2
+
3
+
4
+ setTimeout(() => {
5
+ sails.after(["hook:orm:loaded"], () => {
6
+ Object.keys(sails.models).forEach((modelname) => {
7
+ let modelName = sails.models[modelname].globalId;
8
+ sails.config.adminpanel.instances["dev" + modelName] = {
9
+ title: "dev" + modelName,
10
+ icon: 'cube',
11
+ model: modelName,
12
+ fields: {
13
+ createdAt: false,
14
+ updatedAt: false
15
+ }
16
+ };
17
+ });
18
+ });
19
+ }, 5000);
20
+
21
+
22
+ module.exports.adminpanel = {
23
+ instances: {
24
+ }
25
+ };