@webresto/graphql 1.3.6 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. package/.gitattributes +2 -0
  2. package/.gitlab-ci.yml +18 -0
  3. package/.vscode/extensions.json +5 -0
  4. package/docs/actions.md +25 -0
  5. package/docs/authorization.md +215 -0
  6. package/docs/captcha.md +71 -0
  7. package/docs/device-id.md +30 -0
  8. package/docs/messages.md +10 -0
  9. package/docs/user.md +54 -0
  10. package/index.d.ts +0 -1
  11. package/index.js +6 -2
  12. package/index.ts +2 -2
  13. package/lib/afterHook.js +8 -0
  14. package/lib/afterHook.ts +9 -0
  15. package/lib/bindTranslations.d.ts +1 -0
  16. package/lib/bindTranslations.js +40 -0
  17. package/lib/bindTranslations.ts +39 -0
  18. package/lib/defaults.d.ts +1 -0
  19. package/lib/defaults.js +49 -10
  20. package/lib/defaults.ts +55 -0
  21. package/lib/eventHelper.d.ts +14 -5
  22. package/lib/eventHelper.js +28 -9
  23. package/lib/eventHelper.ts +41 -8
  24. package/lib/getRecomended.d.ts +1 -0
  25. package/lib/getRecomended.js +29 -0
  26. package/lib/getRecomended.ts +31 -0
  27. package/lib/graphqlHelper.d.ts +3 -4
  28. package/lib/graphqlHelper.js +184 -73
  29. package/lib/graphqlHelper.ts +329 -186
  30. package/lib/jwt.d.ts +10 -0
  31. package/lib/jwt.js +43 -0
  32. package/lib/jwt.ts +61 -0
  33. package/package.json +13 -6
  34. package/src/additionalResolvers.d.ts +72 -9
  35. package/src/additionalResolvers.js +93 -24
  36. package/src/additionalResolvers.ts +105 -34
  37. package/src/graphql.d.ts +5 -3
  38. package/src/graphql.js +170 -37
  39. package/src/graphql.ts +210 -60
  40. package/src/resolvers/bonusProgram.d.ts +32 -0
  41. package/src/resolvers/bonusProgram.js +65 -0
  42. package/src/resolvers/bonusProgram.ts +79 -0
  43. package/src/resolvers/captcha.d.ts +11 -0
  44. package/src/resolvers/captcha.js +19 -0
  45. package/src/resolvers/captcha.ts +16 -0
  46. package/src/resolvers/checkout.d.ts +43 -14
  47. package/src/resolvers/checkout.js +172 -122
  48. package/src/resolvers/checkout.ts +218 -142
  49. package/src/resolvers/dishAndModifier.js +8 -4
  50. package/src/resolvers/dishAndModifier.ts +4 -0
  51. package/src/resolvers/error.d.ts +9 -0
  52. package/src/resolvers/error.js +21 -0
  53. package/src/resolvers/error.ts +21 -0
  54. package/src/resolvers/menu.d.ts +9 -0
  55. package/src/resolvers/menu.js +12 -0
  56. package/src/resolvers/menu.ts +10 -0
  57. package/src/resolvers/order.d.ts +527 -0
  58. package/src/resolvers/order.js +349 -0
  59. package/src/resolvers/order.ts +435 -0
  60. package/src/resolvers/paymentMethod.js +7 -3
  61. package/src/resolvers/paymentMethod.ts +9 -5
  62. package/src/resolvers/pickupPoint.d.ts +1 -0
  63. package/src/resolvers/pickupPoint.js +24 -0
  64. package/src/resolvers/pickupPoint.ts +23 -0
  65. package/src/resolvers/recomended.d.ts +13 -0
  66. package/src/resolvers/recomended.js +80 -0
  67. package/src/resolvers/recomended.ts +86 -0
  68. package/src/resolvers/restrictions.d.ts +37 -1
  69. package/src/resolvers/restrictions.js +100 -15
  70. package/src/resolvers/restrictions.ts +106 -14
  71. package/src/resolvers/streets.d.ts +1 -1
  72. package/src/resolvers/streets.js +1 -4
  73. package/src/resolvers/streets.ts +1 -3
  74. package/src/resolvers/subscriptions.d.ts +4 -4
  75. package/src/resolvers/subscriptions.js +49 -12
  76. package/src/resolvers/subscriptions.ts +59 -14
  77. package/src/resolvers/telemetry.d.ts +14 -0
  78. package/src/resolvers/telemetry.js +25 -0
  79. package/src/resolvers/telemetry.ts +24 -0
  80. package/src/resolvers/user.d.ts +82 -0
  81. package/src/resolvers/user.js +416 -0
  82. package/src/resolvers/user.ts +621 -0
  83. package/src/resolvers/userLocation.d.ts +53 -0
  84. package/src/resolvers/userLocation.js +74 -0
  85. package/src/resolvers/userLocation.ts +125 -0
  86. package/src/resolvers/userOTPrequest.d.ts +21 -0
  87. package/src/resolvers/userOTPrequest.js +57 -0
  88. package/src/resolvers/userOTPrequest.ts +75 -0
  89. package/test/e2e_helper.js +157 -0
  90. package/test/e2e_helper.ts +212 -0
  91. package/test/fixture/config/i18n.js +7 -20
  92. package/test/fixture/config/locales/de.json +1 -0
  93. package/test/fixture/config/locales/en.json +10 -0
  94. package/test/fixture/config/locales/es.json +3 -0
  95. package/test/fixture/config/locales/fr.json +1 -0
  96. package/test/fixture/config/log.js +1 -1
  97. package/test/fixture/package.json +5 -6
  98. package/test/fixture/patches/rttc+10.0.1.patch +17 -0
  99. package/test/integration/captcha.test.js +20 -0
  100. package/test/integration/captcha.test.ts +25 -0
  101. package/test/integration/dish.test.js +35 -0
  102. package/test/integration/dish.test.ts +43 -0
  103. package/test/integration/graphql.test.js +5 -2
  104. package/test/integration/graphql.test.ts +2 -4
  105. package/test/integration/images.test.js +35 -0
  106. package/test/integration/images.test.ts +40 -0
  107. package/test/integration/locale.test.js +26 -0
  108. package/test/integration/locale.test.ts +32 -0
  109. package/test/integration/order.test.js +56 -43
  110. package/test/integration/order.test.ts +59 -59
  111. package/test/integration/subscriptions.test.js +136 -0
  112. package/test/integration/subscriptions.test.ts +162 -0
  113. package/test/integration/user.test.js +249 -0
  114. package/test/integration/user.test.ts +299 -0
  115. package/test/unit/first.test.js +4 -2
  116. package/test/unit/first.test.ts +1 -1
  117. package/test/unit/get-recomended.test.js +56 -0
  118. package/test/unit/get-recomended.test.ts +63 -0
  119. package/translations/de.json +2 -0
  120. package/translations/en.json +3 -0
  121. package/translations/es.json +3 -0
  122. package/translations/fr.json +2 -0
  123. package/translations/ru.json +36 -0
  124. package/tsconfig.json +20 -5
  125. package/types/global.d.ts +30 -0
  126. package/types/global.js +2 -0
  127. package/types/global.ts +31 -0
  128. package/types/primitives.d.ts +19 -0
  129. package/types/references.d.ts +1 -0
  130. package/types/restoGraphQLConfig.d.ts +13 -0
  131. package/lib/afterHook.ts___graphql-transport-ws +0 -138
  132. package/lib/afterHook.ts___graphql-ws +0 -133
  133. package/lib/errorWrapper.d.ts +0 -4
  134. package/lib/errorWrapper.js +0 -13
  135. package/lib/errorWrapper.ts +0 -12
  136. package/notes.md +0 -1976
  137. package/src/resolvers/cart.d.ts +0 -343
  138. package/src/resolvers/cart.js +0 -196
  139. package/src/resolvers/cart.ts +0 -277
  140. package/test/fixture/config/connections.js +0 -9
  141. package/test/integration/sails_not_crash.test.js +0 -3
  142. package/test/integration/sails_not_crash.test.ts +0 -3
@@ -1,277 +0,0 @@
1
- import * as eventHelper from "@webresto/graphql";
2
- import checkExpression from "@webresto/core/libs/checkExpression";
3
- import getEmitter from "@webresto/core/libs/getEmitter";
4
-
5
- import { Error } from "../../lib/errorWrapper";
6
-
7
- export default {
8
- Query: {
9
- order: {
10
- def: '""" если orderId не задан, вернется новая корзина """ order(orderId: String, shortId: String, orderNumber: String): Order',
11
- fn: async function (parent, args, context) {
12
- let order;
13
-
14
- let criteria = {};
15
- if (args.orderNumber) {
16
- criteria["rmsOrderNumber"] = args.orderNumber;
17
- criteria["sort"] = "createdAt DESC";
18
- } else if (args.orderId) {
19
- criteria["id"] = args.orderId;
20
- } else if (args.shortId) {
21
- criteria["shortId"] = args.shortId;
22
- }
23
-
24
- if (Object.keys(criteria).length !== 0) {
25
- order = (await Order.find(criteria))[0];
26
- }
27
-
28
- if (!order) {
29
- sails.log.error(
30
- "GQL > order resolver error: ",
31
- `order with id ${args.orderId} . Trying make new cart.`
32
- );
33
- order = await getNewCart(args.orderId);
34
- }
35
-
36
- let fullOrder = await Order.populate(order.id);
37
- getEmitter().emit("http-api:before-response-order", fullOrder);
38
- return fullOrder
39
- },
40
- },
41
- },
42
- Mutation: {
43
- orderAddDish: {
44
- def: "orderAddDish(orderId: String, dishId: String, amount: Int, modifiers: Json, comment: String, from: String, replace: Boolean, orderDishId: Int): Order",
45
- fn: async function (parent, args, context) {
46
- let order;
47
-
48
- if (args.modifiers) {
49
- args.modifiers.forEach((modifier) => {
50
- if (modifier.amount === undefined || modifier.id === undefined)
51
- throw new Error(
52
- 0,
53
- "ERROR",
54
- `modifier required (amount, id) for dish: ${args.dishId} current values: id: ${modifier.id}, amount: ${modifier.amount}`
55
- );
56
- });
57
- }
58
-
59
- if (args.orderId) order = await Order.findOne({ id: args.orderId });
60
-
61
- if (!order) {
62
- sails.log.error(
63
- "GQL > orderAddDish resolver error: ",
64
- `order with id ${args.orderId} has problem. Trying make new cart.`
65
- );
66
- order = await getNewCart(args.orderId);
67
- }
68
-
69
- const dish = await Dish.findOne({ id: args.dishId });
70
-
71
- if (!dish && !args.replace)
72
- throw new Error(0, "ERROR", `dish with id ${args.dishId} not found`);
73
-
74
- if (dish && checkExpression(dish) === "promo") {
75
- let additionalInfo;
76
- try {
77
- additionalInfo = JSON.parse(dish.additionalInfo);
78
- } catch (e) {}
79
-
80
- if (additionalInfo && additionalInfo.defaultOrderDish) {
81
- // Исключение на товар в каждую корзину
82
- } else {
83
- throw new Error(
84
- 0,
85
- "ERROR",
86
- `"${dish.name}" является акционным и не может быть добавлено пользователем`
87
- );
88
- }
89
- }
90
-
91
- await Order.addDish(
92
- order.id,
93
- args.dishId,
94
- args.amount,
95
- args.modifiers || [],
96
- args.comment,
97
- args.from,
98
- args.replace,
99
- args.orderDishId
100
- );
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
106
- },
107
- },
108
- orderReplaceDish: {
109
- def: "orderReplaceDish(orderId: String!, orderDishId: Int!, amount: Int, modifiers: Json, comment: String, from: String): Order",
110
- fn: async (parent, args, context) => {
111
- let order;
112
- if (args.orderId) order = await Order.findOne({ id: args.orderId });
113
-
114
- if (!order) {
115
- sails.log.error(
116
- "GQL > orderReplaceDish resolver error: ",
117
- `order with id ${args.orderId} has problem. Trying make new cart.`
118
- );
119
- order = await getNewCart(args.orderId);
120
- }
121
-
122
- if (order.paid || order.state === "ORDER") {
123
- order = await getNewCart();
124
- }
125
-
126
- await Order.addDish(
127
- order.id,
128
- args.dishId,
129
- args.amount,
130
- args.modifiers || [],
131
- args.comment,
132
- args.from,
133
- args.replace,
134
- args.orderDishId
135
- );
136
- await Order.countCart(order);
137
- let fullOrder = await Order.populate(order.id);
138
- getEmitter().emit("http-api:before-response-order-replace-dish", fullOrder);
139
- return fullOrder
140
- },
141
- },
142
- orderRemoveDish: {
143
- def: "orderRemoveDish(id: String!, orderDishId: Int!, amount: Int): Order",
144
- fn: async function (parent, args, context) {
145
- let order;
146
- order = await Order.findOne({ id: args.id });
147
-
148
- if (!order) {
149
- sails.log.error(
150
- "GQL > orderRemoveDish resolver error: ",
151
- `order with id ${args.orderId} has problem. Trying make new cart.`
152
- );
153
- order = await getNewCart(args.orderId);
154
- }
155
-
156
- if (order.paid || order.state === "ORDER") {
157
- order = await getNewCart();
158
- }
159
-
160
- const orderDish = await OrderDish.findOne({ id: args.orderDishId });
161
-
162
- await Order.removeDish(order.id, orderDish, args.amount, false);
163
- await Order.countCart(order);
164
- let fullOrder = await Order.populate(order.id);
165
- getEmitter().emit("http-api:before-response-order-remove-dish", fullOrder);
166
- return fullOrder
167
- },
168
- },
169
- orderSetDishAmount: {
170
- def: "orderSetDishAmount(id: String, orderDishId: Int, amount: Int): Order",
171
- fn: async function (parent, args, context) {
172
- let order;
173
-
174
- order = await Order.findOne(args.id);
175
-
176
- if (!order) {
177
- sails.log.error(
178
- "GQL > orderSetDishAmount resolver error: ",
179
- `order with id ${args.orderId} has problem. Trying make new cart.`
180
- );
181
- order = await getNewCart(args.orderId);
182
- }
183
-
184
- if (order.paid || order.state === "ORDER") {
185
- order = await getNewCart();
186
- }
187
-
188
- let dish = await OrderDish.findOne(args.orderDishId).populate("dish");
189
- if (!dish)
190
- throw new Error(
191
- 0,
192
- "ERROR",
193
- `OrderDish with id ${args.orderDishId} not found`
194
- );
195
- if (!dish.dish)
196
- throw new Error(
197
- 0,
198
- "ERROR",
199
- `Dish in OrderDish with id ${args.orderDishId} not found`
200
- );
201
-
202
- await Order.setCount(order.id, dish, args.amount);
203
- await Order.countCart(order);
204
- let fullOrder = await Order.populate(order.id);
205
- getEmitter().emit("http-api:before-response-order-set-dish-amount", fullOrder);
206
- return fullOrder
207
- },
208
- },
209
- orderSetDishComment: {
210
- def: "orderSetDishComment(id: String, orderDishId: Int, comment: String): Order",
211
- fn: async function (parent, args, context) {
212
- let order;
213
-
214
- const data = args;
215
- const orderId = data.orderId;
216
- const comment = data.comment || "";
217
- const dishId = data.dishId;
218
- if (!dishId) {
219
- throw new Error(0, "ERROR", "dishId is required");
220
- }
221
-
222
- order = await Order.findOne(orderId);
223
-
224
- if (!order) {
225
- sails.log.error(
226
- "GQL > orderSetDishComment resolver error: ",
227
- `order with id ${args.orderId} has problem. Trying make new cart.`
228
- );
229
- order = await getNewCart(args.orderId);
230
- }
231
-
232
- if (order.paid || order.state === "ORDER") {
233
- order = await getNewCart();
234
- }
235
-
236
- const dish = await OrderDish.findOne({ id: dishId }).populate("dish");
237
- if (!dish) {
238
- throw new Error(0, "ERROR", `Dish with id ${dishId} not found`);
239
- }
240
-
241
- await order.setComment(dish, comment);
242
- await Order.countCart(order);
243
- let fullOrder = await Order.populate(order.id);
244
- getEmitter().emit("http-api:before-response-order-set-dish-comment", fullOrder);
245
- return fullOrder },
246
- },
247
-
248
- orderUpdate: {
249
- def: '"""Experimental! allowed only for trifleFrom """ orderUpdate(order: Json): Order',
250
- fn: async function (parent, args, context) {
251
-
252
- let order = args.order;
253
- if (!order.id) throw "order.id field is required"
254
- await Order.update({id: order.id}, {trifleFrom: order.trifleFrom})
255
- 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
259
- },
260
- },
261
- },
262
- };
263
-
264
- // Generate new cart
265
- async function getNewCart(orderId?: string) {
266
- let order: any;
267
- let initOrder = {};
268
-
269
- // Pass oredrId from frontend
270
- if (orderId) initOrder["id"] = orderId;
271
-
272
- getEmitter().emit("http-api:init-newcart", initOrder);
273
- order = await Order.create(initOrder).fetch();
274
- await getEmitter().emit("http-api:create-newcart", order);
275
-
276
- return order;
277
- }
@@ -1,9 +0,0 @@
1
- module.exports.connections = {
2
- // postgres: {
3
- // adapter: 'sails-postgresql',
4
- // host: process.env.PG_HOST === undefined ? '127.0.0.1' : process.env.PG_HOST,
5
- // user: process.env.PG_USER === undefined ? 'postgres' : process.env.PG_USER,
6
- // password: process.env.PG_PASSWORD === undefined ? 'postgres' : process.env.PG_PASSWORD,
7
- // database: process.env.PG_DATABASE === undefined ? 'testdb' : process.env.PG_DATABASE
8
- // }
9
- };
@@ -1,3 +0,0 @@
1
- describe('Sails', function () {
2
- it('sails does not crash', () => true);
3
- });
@@ -1,3 +0,0 @@
1
- describe('Sails', function () {
2
- it('sails does not crash', () => true);
3
- });