@webresto/graphql 1.3.0 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/package.json +25 -8
  2. package/src/additionalResolvers.js +1 -1
  3. package/src/additionalResolvers.ts +1 -1
  4. package/src/graphql.js +40 -22
  5. package/src/graphql.ts +42 -25
  6. package/src/resolvers/cart.d.ts +229 -9
  7. package/src/resolvers/cart.js +27 -7
  8. package/src/resolvers/cart.ts +29 -8
  9. package/src/resolvers/checkout.ts +1 -0
  10. package/test/{_bootstrap.js → bootstrap.js} +6 -7
  11. package/test/bootstrap.ts +36 -0
  12. package/test/fixture/.sailsrc +14 -0
  13. package/test/{fixtures/v0.12-app → fixture}/api/controllers/.gitkeep +0 -0
  14. package/test/{fixtures/v0.12-app → fixture}/api/models/.gitkeep +0 -0
  15. package/test/{fixtures/v0.12-app → fixture}/api/services/.gitkeep +0 -0
  16. package/test/{fixtures/v0.12-app/app.js → fixture/app-export.js} +2 -2
  17. package/test/fixture/app.js +56 -0
  18. package/test/fixture/config/adminpanel.js +25 -0
  19. package/test/fixture/config/bootstrap.js +161 -0
  20. package/test/fixture/config/connections.js +9 -0
  21. package/test/fixture/config/env/development.js +10 -0
  22. package/test/{fixtures/v0.12-app → fixture}/config/env/production.js +5 -5
  23. package/test/fixture/config/globals.js +16 -0
  24. package/test/{fixtures/v0.12-app → fixture}/config/hookTimeout.js +0 -0
  25. package/test/{fixtures/v0.12-app → fixture}/config/http.js +0 -0
  26. package/test/{fixtures/v0.12-app → fixture}/config/i18n.js +0 -0
  27. package/test/{fixtures/v0.12-app → fixture}/config/log.js +1 -1
  28. package/test/fixture/config/models.js +9 -0
  29. package/test/fixture/config/modulemanager.js +22 -0
  30. package/test/{fixtures/v0.12-app → fixture}/config/policies.js +0 -0
  31. package/test/{fixtures/v0.12-app → fixture}/config/routes.js +0 -0
  32. package/test/{fixtures/v0.12-app → fixture}/config/session.js +0 -0
  33. package/test/{fixtures/v0.12-app → fixture}/config/sockets.js +0 -0
  34. package/test/{fixtures/v0.12-app → fixture}/config/views.js +0 -0
  35. package/test/fixture/hacks/waterline.js +39 -0
  36. package/test/fixture/package.json +33 -0
  37. package/test/fixture/seeds/dish.json +37042 -0
  38. package/test/fixture/seeds/group.json +1418 -0
  39. package/test/fixture/seeds/iikoDiscount.json +365 -0
  40. package/test/{fixtures/v0.12-app → fixture}/views/403.ejs +0 -0
  41. package/test/{fixtures/v0.12-app → fixture}/views/404.ejs +0 -0
  42. package/test/{fixtures/v0.12-app → fixture}/views/500.ejs +0 -0
  43. package/test/{fixtures/v0.12-app → fixture}/views/homepage.ejs +0 -0
  44. package/test/{fixtures/v0.12-app → fixture}/views/layout.ejs +0 -0
  45. package/test/integration/graphql.test.js +11 -0
  46. package/test/integration/graphql.test.ts +15 -0
  47. package/test/{unit → integration}/sails_not_crash.test.js +0 -0
  48. package/test/integration/sails_not_crash.test.ts +3 -0
  49. package/test/unit/first.test.js +6 -8
  50. package/test/unit/first.test.ts +11 -0
  51. package/test/fixtures/v0.12-app/.gitignore +0 -11
  52. package/test/fixtures/v0.12-app/.sailsrc +0 -11
  53. package/test/fixtures/v0.12-app/api/models/TestModel.js +0 -22
  54. package/test/fixtures/v0.12-app/api/responses/badRequest.js +0 -76
  55. package/test/fixtures/v0.12-app/api/responses/created.js +0 -60
  56. package/test/fixtures/v0.12-app/api/responses/forbidden.js +0 -89
  57. package/test/fixtures/v0.12-app/api/responses/notFound.js +0 -94
  58. package/test/fixtures/v0.12-app/api/responses/ok.js +0 -60
  59. package/test/fixtures/v0.12-app/api/responses/serverError.js +0 -89
  60. package/test/fixtures/v0.12-app/config/bootstrap.js +0 -6
  61. package/test/fixtures/v0.12-app/config/connections.js +0 -5
  62. package/test/fixtures/v0.12-app/config/cors.js +0 -78
  63. package/test/fixtures/v0.12-app/config/csrf.js +0 -64
  64. package/test/fixtures/v0.12-app/config/env/development.js +0 -10
  65. package/test/fixtures/v0.12-app/config/globals.js +0 -63
  66. package/test/fixtures/v0.12-app/config/models.js +0 -3
  67. package/test/fixtures/v0.12-app/config/restoapi.js +0 -3
  68. package/test/fixtures/v0.12-app/config/restocore.js +0 -39
  69. package/test/fixtures/v0.12-app/config/stateflow.js +0 -4
  70. package/test/fixtures/v0.12-app/package.json +0 -34
@@ -0,0 +1,365 @@
1
+ [
2
+ {
3
+ "id": "2b74fa7d-a31e-49c6-aad2-4b1bb95f6ccd",
4
+ "rmsId": "592722dd-5082-4cf9-980a-13f43b766123",
5
+ "name": "Скидка 10%",
6
+ "percent": 10,
7
+ "comment": "",
8
+ "mode": "PERCENT",
9
+ "sum": 0,
10
+ "isCategorisedDiscount": false,
11
+ "productCategoryDiscounts": [],
12
+ "canBeAppliedSelectively": true,
13
+ "minOrderSum": null,
14
+ "enable": false,
15
+ "order": null,
16
+ "isDeleted": false,
17
+ "isManual": true,
18
+ "isCard": false,
19
+ "canApplyByCardNumber": false,
20
+ "isAutomatic": false,
21
+ "workTime": null,
22
+ "createdAt": "2021-01-20T11:23:55.000Z",
23
+ "updatedAt": "2022-04-28T17:31:08.000Z"
24
+ },
25
+ {
26
+ "id": "989a6856-5c7b-4cc8-881a-c9f1490f39c4",
27
+ "rmsId": "3db6e63a-3004-4046-9c0f-6a6d9b87c9d6",
28
+ "name": "Скидка 10% на ДР",
29
+ "percent": 10,
30
+ "comment": "",
31
+ "mode": "PERCENT",
32
+ "sum": 0,
33
+ "isCategorisedDiscount": false,
34
+ "productCategoryDiscounts": [],
35
+ "canBeAppliedSelectively": false,
36
+ "minOrderSum": null,
37
+ "enable": false,
38
+ "order": null,
39
+ "isDeleted": false,
40
+ "isManual": true,
41
+ "isCard": false,
42
+ "canApplyByCardNumber": false,
43
+ "isAutomatic": false,
44
+ "createdAt": "2021-01-20T11:23:55.000Z",
45
+ "updatedAt": "2022-04-28T17:31:08.000Z"
46
+ },
47
+ {
48
+ "id": "b7b52a3f-2789-49a5-9a15-68c1fa89f4c7",
49
+ "rmsId": "6d75ef17-e622-49f9-afad-97ba6b6380fd",
50
+ "name": "Лови пиццу и сертификаты на пиццу",
51
+ "percent": 100,
52
+ "comment": "",
53
+ "mode": "PERCENT",
54
+ "sum": 0,
55
+ "isCategorisedDiscount": false,
56
+ "productCategoryDiscounts": [
57
+ {
58
+ "categoryId": "1483c868-aaf7-6a9b-0165-a31381241120",
59
+ "categoryName": "Пицца",
60
+ "percent": 100
61
+ }
62
+ ],
63
+ "canBeAppliedSelectively": true,
64
+ "minOrderSum": null,
65
+ "enable": false,
66
+ "order": null,
67
+ "isDeleted": false,
68
+ "isManual": true,
69
+ "isCard": false,
70
+ "canApplyByCardNumber": false,
71
+ "isAutomatic": false,
72
+ "createdAt": "2021-01-20T11:23:55.000Z",
73
+ "updatedAt": "2022-04-28T17:31:08.000Z"
74
+ },
75
+ {
76
+ "id": "2bff9526-7686-4baa-9a1c-3ba4fb6882bc",
77
+ "rmsId": "8cbf0507-295a-4074-b6ac-a12e424afcf1",
78
+ "name": "СКИДКА 15 %",
79
+ "percent": 15,
80
+ "comment": "",
81
+ "mode": "PERCENT",
82
+ "sum": 0,
83
+ "isCategorisedDiscount": false,
84
+ "productCategoryDiscounts": [],
85
+ "canBeAppliedSelectively": true,
86
+ "minOrderSum": null,
87
+ "enable": false,
88
+ "order": null,
89
+ "isDeleted": false,
90
+ "isManual": true,
91
+ "isCard": false,
92
+ "canApplyByCardNumber": false,
93
+ "isAutomatic": false,
94
+ "createdAt": "2021-12-17T11:16:03.000Z",
95
+ "updatedAt": "2022-04-28T17:31:08.000Z"
96
+ },
97
+ {
98
+ "id": "3ad66c7f-7304-4c94-a4a1-1f21a2dc7c18",
99
+ "rmsId": "269302da-7e0f-4775-888a-c6c9640e5a71",
100
+ "name": "ПОДАРОК",
101
+ "percent": 100,
102
+ "comment": "",
103
+ "mode": "PERCENT",
104
+ "sum": 0,
105
+ "isCategorisedDiscount": false,
106
+ "productCategoryDiscounts": [],
107
+ "canBeAppliedSelectively": true,
108
+ "minOrderSum": 1500,
109
+ "enable": false,
110
+ "order": null,
111
+ "isDeleted": false,
112
+ "isManual": true,
113
+ "isCard": false,
114
+ "canApplyByCardNumber": false,
115
+ "isAutomatic": false,
116
+ "createdAt": "2021-02-05T06:44:00.000Z",
117
+ "updatedAt": "2022-04-28T17:31:08.000Z"
118
+ },
119
+ {
120
+ "id": "2b3737ee-2419-4c58-b151-7947f51f2318",
121
+ "rmsId": "6668979c-658d-428b-9f85-c9f365208423",
122
+ "name": "Скидка 5%",
123
+ "percent": 5,
124
+ "comment": "",
125
+ "mode": "PERCENT",
126
+ "sum": 0,
127
+ "isCategorisedDiscount": false,
128
+ "productCategoryDiscounts": [],
129
+ "canBeAppliedSelectively": false,
130
+ "minOrderSum": null,
131
+ "enable": false,
132
+ "order": null,
133
+ "isDeleted": false,
134
+ "isManual": true,
135
+ "isCard": false,
136
+ "canApplyByCardNumber": false,
137
+ "isAutomatic": false,
138
+ "createdAt": "2021-01-20T11:23:55.000Z",
139
+ "updatedAt": "2022-04-28T17:31:08.000Z"
140
+ },
141
+ {
142
+ "id": "420f377c-ef3e-4d7f-b1b8-a3e0cc0f6ab2",
143
+ "rmsId": "eb462a00-39d5-4193-9829-d1dff5279efd",
144
+ "name": "Скидка 50% на кофе",
145
+ "percent": 50,
146
+ "comment": "",
147
+ "mode": "PERCENT",
148
+ "sum": 0,
149
+ "isCategorisedDiscount": true,
150
+ "productCategoryDiscounts": [
151
+ {
152
+ "categoryId": "8c89b763-10f4-432e-91a6-02740b524b3b",
153
+ "categoryName": "Кофе",
154
+ "percent": 50
155
+ }
156
+ ],
157
+ "canBeAppliedSelectively": true,
158
+ "minOrderSum": null,
159
+ "enable": false,
160
+ "order": null,
161
+ "isDeleted": false,
162
+ "isManual": true,
163
+ "isCard": true,
164
+ "canApplyByCardNumber": false,
165
+ "isAutomatic": false,
166
+ "workTime": null,
167
+ "createdAt": "2022-01-19T11:56:05.000Z",
168
+ "updatedAt": "2022-04-28T17:31:08.000Z"
169
+ },
170
+ {
171
+ "id": "b0892df7-a0f2-47c3-9b8c-574f4f0dea9f",
172
+ "rmsId": "11c58d76-9c2e-493f-a9ae-f1d5e240fd66",
173
+ "name": "Скидка 15% на др",
174
+ "percent": 15,
175
+ "comment": "",
176
+ "mode": "PERCENT",
177
+ "sum": 0,
178
+ "isCategorisedDiscount": false,
179
+ "productCategoryDiscounts": [],
180
+ "canBeAppliedSelectively": false,
181
+ "minOrderSum": null,
182
+ "enable": false,
183
+ "order": null,
184
+ "isDeleted": false,
185
+ "isManual": true,
186
+ "isCard": false,
187
+ "canApplyByCardNumber": false,
188
+ "isAutomatic": false,
189
+ "createdAt": "2021-01-20T11:23:55.000Z",
190
+ "updatedAt": "2022-04-28T17:31:08.000Z"
191
+ },
192
+ {
193
+ "id": "c0139436-a6bb-4f2b-a43a-985330ad3a75",
194
+ "rmsId": "0e3eee14-f175-4d95-b0ff-fb17296eed6c",
195
+ "name": "Скидка 20%",
196
+ "percent": 20,
197
+ "comment": "",
198
+ "mode": "PERCENT",
199
+ "sum": 0,
200
+ "isCategorisedDiscount": false,
201
+ "productCategoryDiscounts": [],
202
+ "canBeAppliedSelectively": false,
203
+ "minOrderSum": null,
204
+ "enable": false,
205
+ "order": null,
206
+ "isDeleted": false,
207
+ "isManual": true,
208
+ "isCard": false,
209
+ "canApplyByCardNumber": false,
210
+ "isAutomatic": false,
211
+ "createdAt": "2021-01-20T11:23:55.000Z",
212
+ "updatedAt": "2022-04-28T17:31:08.000Z"
213
+ },
214
+ {
215
+ "id": "bd60d07f-0503-43cc-a036-9050467e6f6c",
216
+ "rmsId": "05aecf09-9218-46aa-9efb-b0962cf0957d",
217
+ "name": "Скидка тест на самовывоз 10%",
218
+ "percent": 1,
219
+ "comment": "",
220
+ "mode": "PERCENT",
221
+ "sum": 0,
222
+ "isCategorisedDiscount": true,
223
+ "productCategoryDiscounts": [
224
+ {
225
+ "categoryId": "0e2f200b-3957-63fa-0165-65f55759e9d3",
226
+ "categoryName": "Кофе",
227
+ "percent": 10
228
+ }
229
+ ],
230
+ "canBeAppliedSelectively": false,
231
+ "minOrderSum": null,
232
+ "enable": false,
233
+ "order": null,
234
+ "isDeleted": true,
235
+ "isManual": true,
236
+ "isCard": false,
237
+ "canApplyByCardNumber": false,
238
+ "isAutomatic": false,
239
+ "createdAt": "2022-03-22T07:51:08.000Z",
240
+ "updatedAt": "2022-04-28T17:31:08.000Z"
241
+ },
242
+ {
243
+ "id": "7667c821-6905-4f7c-9362-282e7b2699ed",
244
+ "rmsId": "b78a3fd5-d741-4b7c-af97-d3a66543358d",
245
+ "name": "Самовывоз 8%",
246
+ "percent": 8,
247
+ "comment": "",
248
+ "mode": "PERCENT",
249
+ "sum": 0,
250
+ "isCategorisedDiscount": false,
251
+ "productCategoryDiscounts": [],
252
+ "canBeAppliedSelectively": false,
253
+ "minOrderSum": null,
254
+ "enable": false,
255
+ "order": null,
256
+ "isDeleted": true,
257
+ "isManual": true,
258
+ "isCard": false,
259
+ "canApplyByCardNumber": false,
260
+ "isAutomatic": false,
261
+ "createdAt": "2021-10-25T11:51:02.000Z",
262
+ "updatedAt": "2022-04-28T17:31:08.000Z"
263
+ },
264
+ {
265
+ "id": "ae0ae11d-8344-43ed-8768-888ba39ab99d",
266
+ "rmsId": "5ee7a9cd-101c-4b88-bf65-518dbbe84b5b",
267
+ "name": "Скидка 100% на пиво",
268
+ "percent": 1,
269
+ "comment": "",
270
+ "mode": "PERCENT",
271
+ "sum": 0,
272
+ "isCategorisedDiscount": true,
273
+ "productCategoryDiscounts": [
274
+ {
275
+ "categoryId": "15e14acc-cf09-f0f4-0165-7aeee26b745e",
276
+ "categoryName": "Пиво",
277
+ "percent": 100
278
+ }
279
+ ],
280
+ "canBeAppliedSelectively": true,
281
+ "minOrderSum": null,
282
+ "enable": false,
283
+ "order": null,
284
+ "isDeleted": true,
285
+ "isManual": true,
286
+ "isCard": false,
287
+ "canApplyByCardNumber": false,
288
+ "isAutomatic": false,
289
+ "createdAt": "2022-02-08T12:51:06.000Z",
290
+ "updatedAt": "2022-04-28T17:31:08.000Z"
291
+ },
292
+ {
293
+ "id": "790c3bb4-1786-4eb3-8d19-685a7d6d7373",
294
+ "rmsId": "072fffb3-e19f-4e21-83b1-ce38739bdbea",
295
+ "name": "САМОВЫВОЗ 10%",
296
+ "percent": 10,
297
+ "comment": "",
298
+ "mode": "PERCENT",
299
+ "sum": 0,
300
+ "isCategorisedDiscount": false,
301
+ "productCategoryDiscounts": [],
302
+ "canBeAppliedSelectively": false,
303
+ "minOrderSum": null,
304
+ "enable": false,
305
+ "order": null,
306
+ "isDeleted": false,
307
+ "isManual": true,
308
+ "isCard": false,
309
+ "canApplyByCardNumber": false,
310
+ "isAutomatic": false,
311
+ "createdAt": "2021-10-26T08:48:36.000Z",
312
+ "updatedAt": "2022-04-28T17:31:08.000Z"
313
+ },
314
+ {
315
+ "id": "b9fa8cbb-cbb5-4ea8-8424-14bd8ba5b0bb",
316
+ "rmsId": "127601c6-8c83-4474-b6e0-ff5e47947f77",
317
+ "name": "Тестовая самовывоз 5%",
318
+ "percent": 5,
319
+ "comment": "",
320
+ "mode": "PERCENT",
321
+ "sum": 0,
322
+ "isCategorisedDiscount": true,
323
+ "productCategoryDiscounts": [
324
+ {
325
+ "categoryId": "7c907b14-a4cb-4c54-92c0-140fb6a06d21",
326
+ "categoryName": "Десерты",
327
+ "percent": 5
328
+ }
329
+ ],
330
+ "canBeAppliedSelectively": false,
331
+ "minOrderSum": null,
332
+ "enable": false,
333
+ "order": null,
334
+ "isDeleted": false,
335
+ "isManual": true,
336
+ "isCard": true,
337
+ "canApplyByCardNumber": false,
338
+ "isAutomatic": false,
339
+ "workTime": null,
340
+ "createdAt": "2022-04-04T08:56:07.000Z",
341
+ "updatedAt": "2022-04-28T17:31:08.000Z"
342
+ },
343
+ {
344
+ "id": "2e9e7be1-a365-46b7-b841-d3d7b8b01438",
345
+ "rmsId": "b7992c74-e6f3-4c30-b803-2af11aa766c2",
346
+ "name": "Тестовая скидка 2",
347
+ "percent": 1,
348
+ "comment": "",
349
+ "mode": "PERCENT",
350
+ "sum": 0,
351
+ "isCategorisedDiscount": false,
352
+ "productCategoryDiscounts": [],
353
+ "canBeAppliedSelectively": false,
354
+ "minOrderSum": null,
355
+ "enable": false,
356
+ "order": null,
357
+ "isDeleted": true,
358
+ "isManual": true,
359
+ "isCard": true,
360
+ "canApplyByCardNumber": false,
361
+ "isAutomatic": false,
362
+ "createdAt": "2021-10-08T11:46:05.000Z",
363
+ "updatedAt": "2022-04-28T17:31:08.000Z"
364
+ }
365
+ ]
@@ -0,0 +1,11 @@
1
+ const expect = require("chai").expect;
2
+ describe('GraphQl', function () {
3
+ it('Added fields exist in schema', async () => {
4
+ const graphql = require('./../fixture/node_modules/@webresto/graphql/src/graphql').default;
5
+ console.log(graphql);
6
+ const result = await graphql.getServer().executeOperation({
7
+ query: '{dish { id } \n group { id }}'
8
+ });
9
+ expect(result.errors).to.be.undefined;
10
+ });
11
+ });
@@ -0,0 +1,15 @@
1
+ const expect = require("chai").expect;
2
+
3
+ describe('GraphQl', function () {
4
+ it('Added fields exist in schema', async () => {
5
+
6
+ const graphql = require('./../fixture/node_modules/@webresto/graphql/src/graphql').default;
7
+ console.log(graphql)
8
+ const result = await graphql.getServer().executeOperation({
9
+ query: '{dish { id } \n group { id }}'
10
+ });
11
+ expect(result.errors).to.be.undefined;
12
+ });
13
+ });
14
+
15
+
@@ -0,0 +1,3 @@
1
+ describe('Sails', function () {
2
+ it('sails does not crash', () => true);
3
+ });
@@ -1,11 +1,9 @@
1
1
  const expect = require("chai").expect;
2
-
3
2
  describe('GraphQl', function () {
4
- it('schema exist', async () => {
5
- // const data = await TestModel.find({});
6
- // console.log(data);
7
-
8
- const graphql = require('@webresto/graphql/src/graphql').default;
9
- expect(graphql.getServer().schema._typeMap.Dish != undefined);
10
- });
3
+ it('schema exist', async () => {
4
+ // const data = await TestModel.find({});
5
+ // console.log(data);
6
+ const graphql = require('./../fixture/node_modules/@webresto/graphql/src/graphql').default;
7
+ expect(graphql.getServer().schema._typeMap.Dish != undefined);
8
+ });
11
9
  });
@@ -0,0 +1,11 @@
1
+ const expect = require("chai").expect;
2
+
3
+ describe('GraphQl', function () {
4
+ it('schema exist', async () => {
5
+ // const data = await TestModel.find({});
6
+ // console.log(data);
7
+
8
+ const graphql = require('./../fixture/node_modules/@webresto/graphql/src/graphql').default;
9
+ expect(graphql.getServer().schema._typeMap.Dish != undefined);
10
+ });
11
+ });
@@ -1,11 +0,0 @@
1
- *
2
- !api
3
- !/api/**/*
4
- !config
5
- !/config/**/*
6
- !views
7
- !/views/**/*
8
- !.sailsrc
9
- !app.js
10
- !package.json
11
- !.gitignore
@@ -1,11 +0,0 @@
1
- {
2
- "generators": {
3
- "modules": {}
4
- },
5
- "hooks": {
6
- "grunt": false,
7
- "sockets": false,
8
- "pubsub": false,
9
- "i18n": false
10
- }
11
- }
@@ -1,22 +0,0 @@
1
-
2
- module.exports = {
3
- attributes: {
4
-
5
- order_number : { type: 'string' },
6
-
7
- order_id : { type: 'string' },
8
-
9
- order_id: { type: 'string' },
10
-
11
- phone : { type: 'string' },
12
-
13
- notifyMethod : {
14
- type: 'string'
15
- },
16
-
17
- delivered : {
18
- type: 'json',
19
- defaultsTo: {new: false}
20
- },
21
- },
22
- }
@@ -1,76 +0,0 @@
1
- /**
2
- * 400 (Bad Request) Handler
3
- *
4
- * Usage:
5
- * return res.badRequest();
6
- * return res.badRequest(data);
7
- * return res.badRequest(data, 'some/specific/badRequest/view');
8
- *
9
- * e.g.:
10
- * ```
11
- * return res.badRequest(
12
- * 'Please choose a valid `password` (6-12 characters)',
13
- * 'trial/signup'
14
- * );
15
- * ```
16
- */
17
-
18
- module.exports = function badRequest(data, options) {
19
-
20
- // Get access to `req`, `res`, & `sails`
21
- var req = this.req;
22
- var res = this.res;
23
- var sails = req._sails;
24
-
25
- // Set status code
26
- res.status(400);
27
-
28
- // Log error to console
29
- if (data !== undefined) {
30
- sails.log.verbose('Sending 400 ("Bad Request") response: \n',data);
31
- }
32
- else sails.log.verbose('Sending 400 ("Bad Request") response');
33
-
34
- // Only include errors in response if application environment
35
- // is not set to 'production'. In production, we shouldn't
36
- // send back any identifying information about errors.
37
- if (sails.config.environment === 'production' && sails.config.keepResponseErrors !== true) {
38
- data = undefined;
39
- }
40
-
41
- // If the user-agent wants JSON, always respond with JSON
42
- // If views are disabled, revert to json
43
- if (req.wantsJSON || sails.config.hooks.views === false) {
44
- return res.jsonx(data);
45
- }
46
-
47
- // If second argument is a string, we take that to mean it refers to a view.
48
- // If it was omitted, use an empty object (`{}`)
49
- options = (typeof options === 'string') ? { view: options } : options || {};
50
-
51
- // Attempt to prettify data for views, if it's a non-error object
52
- var viewData = data;
53
- if (!(viewData instanceof Error) && 'object' == typeof viewData) {
54
- try {
55
- viewData = require('util').inspect(data, {depth: null});
56
- }
57
- catch(e) {
58
- viewData = undefined;
59
- }
60
- }
61
-
62
- // If a view was provided in options, serve it.
63
- // Otherwise try to guess an appropriate view, or if that doesn't
64
- // work, just send JSON.
65
- if (options.view) {
66
- return res.view(options.view, { data: viewData, title: 'Bad Request' });
67
- }
68
-
69
- // If no second argument provided, try to serve the implied view,
70
- // but fall back to sending JSON(P) if no view can be inferred.
71
- else return res.guessView({ data: viewData, title: 'Bad Request' }, function couldNotGuessView () {
72
- return res.jsonx(data);
73
- });
74
-
75
- };
76
-
@@ -1,60 +0,0 @@
1
- /**
2
- * 201 (CREATED) Response
3
- *
4
- * Usage:
5
- * return res.created();
6
- * return res.created(data);
7
- * return res.created(data, 'auth/login');
8
- *
9
- * @param {Object} data
10
- * @param {String|Object} options
11
- * - pass string to render specified view
12
- */
13
-
14
- module.exports = function created (data, options) {
15
-
16
- // Get access to `req`, `res`, & `sails`
17
- var req = this.req;
18
- var res = this.res;
19
- var sails = req._sails;
20
-
21
- sails.log.silly('res.created() :: Sending 201 ("CREATED") response');
22
-
23
- // Set status code
24
- res.status(201);
25
-
26
- // If appropriate, serve data as JSON(P)
27
- // If views are disabled, revert to json
28
- if (req.wantsJSON || sails.config.hooks.views === false) {
29
- return res.jsonx(data);
30
- }
31
-
32
- // If second argument is a string, we take that to mean it refers to a view.
33
- // If it was omitted, use an empty object (`{}`)
34
- options = (typeof options === 'string') ? { view: options } : options || {};
35
-
36
- // Attempt to prettify data for views, if it's a non-error object
37
- var viewData = data;
38
- if (!(viewData instanceof Error) && 'object' == typeof viewData) {
39
- try {
40
- viewData = require('util').inspect(data, {depth: null});
41
- }
42
- catch(e) {
43
- viewData = undefined;
44
- }
45
- }
46
-
47
- // If a view was provided in options, serve it.
48
- // Otherwise try to guess an appropriate view, or if that doesn't
49
- // work, just send JSON.
50
- if (options.view) {
51
- return res.view(options.view, { data: viewData, title: 'Created' });
52
- }
53
-
54
- // If no second argument provided, try to serve the implied view,
55
- // but fall back to sending JSON(P) if no view can be inferred.
56
- else return res.guessView({ data: viewData, title: 'Created' }, function couldNotGuessView () {
57
- return res.jsonx(data);
58
- });
59
-
60
- };