merchi_sdk_js 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. package/package.json +4 -4
  2. package/dist/address.js +0 -109
  3. package/dist/assignment.js +0 -175
  4. package/dist/automatic_payment_relationship.js +0 -72
  5. package/dist/backup.js +0 -32
  6. package/dist/bank.js +0 -25
  7. package/dist/cart.js +0 -133
  8. package/dist/cart_item.js +0 -71
  9. package/dist/cart_shipment_group.js +0 -23
  10. package/dist/cart_shipment_quote.js +0 -26
  11. package/dist/category.js +0 -68
  12. package/dist/company.js +0 -248
  13. package/dist/company_invitation.js +0 -70
  14. package/dist/component.js +0 -107
  15. package/dist/component_tag.js +0 -60
  16. package/dist/component_version.js +0 -21
  17. package/dist/country_tax.js +0 -93
  18. package/dist/dictionary.js +0 -130
  19. package/dist/discount.js +0 -22
  20. package/dist/discount_group.js +0 -18
  21. package/dist/domain.js +0 -245
  22. package/dist/domain_invitation.js +0 -17
  23. package/dist/domain_tag.js +0 -87
  24. package/dist/domain_types.js +0 -22
  25. package/dist/draft.js +0 -97
  26. package/dist/draft_comment.js +0 -45
  27. package/dist/draft_template.js +0 -39
  28. package/dist/email_address.js +0 -34
  29. package/dist/email_counter.js +0 -47
  30. package/dist/enrolled_domain.js +0 -88
  31. package/dist/exchange_rate.js +0 -66
  32. package/dist/field_types.js +0 -19
  33. package/dist/helpers.js +0 -86
  34. package/dist/internal_tag.js +0 -98
  35. package/dist/inventory.js +0 -100
  36. package/dist/inventory_unit_variation.js +0 -19
  37. package/dist/invoice.js +0 -225
  38. package/dist/invoice_types.js +0 -11
  39. package/dist/item.js +0 -25
  40. package/dist/job.js +0 -536
  41. package/dist/job_comment.js +0 -45
  42. package/dist/job_status.js +0 -47
  43. package/dist/matching_inventory.js +0 -21
  44. package/dist/md5.js +0 -149
  45. package/dist/menu.js +0 -37
  46. package/dist/menu_item.js +0 -24
  47. package/dist/merchi.js +0 -1004
  48. package/dist/merchi_file.js +0 -165
  49. package/dist/model.js +0 -753
  50. package/dist/notification.js +0 -151
  51. package/dist/notification_types.js +0 -199
  52. package/dist/output.cjs.js +0 -31317
  53. package/dist/output.esm.js +0 -31312
  54. package/dist/page.js +0 -41
  55. package/dist/payment.js +0 -32
  56. package/dist/payment_device.js +0 -21
  57. package/dist/payment_types.js +0 -20
  58. package/dist/phone_number.js +0 -37
  59. package/dist/product.js +0 -288
  60. package/dist/product_types.js +0 -32
  61. package/dist/production_comment.js +0 -44
  62. package/dist/quote.js +0 -91
  63. package/dist/quote_item.js +0 -59
  64. package/dist/roles.js +0 -29
  65. package/dist/seo_domain_page.js +0 -42
  66. package/dist/session.js +0 -103
  67. package/dist/set.js +0 -29
  68. package/dist/shipment.js +0 -181
  69. package/dist/shipment_item.js +0 -17
  70. package/dist/shipment_item_fulfillment.js +0 -17
  71. package/dist/shipment_method.js +0 -81
  72. package/dist/shipment_method_variation.js +0 -38
  73. package/dist/subscription_plan.js +0 -75
  74. package/dist/supply_domain.js +0 -65
  75. package/dist/system_role.js +0 -12
  76. package/dist/theme.js +0 -180
  77. package/dist/theme_css_setting.js +0 -61
  78. package/dist/theme_status.js +0 -11
  79. package/dist/user.js +0 -409
  80. package/dist/user_company.js +0 -19
  81. package/dist/user_types.js +0 -23
  82. package/dist/uuid.js +0 -12
  83. package/dist/variation.js +0 -233
  84. package/dist/variation_field.js +0 -233
  85. package/dist/variation_fields_option.js +0 -41
  86. package/dist/variation_option.js +0 -62
  87. package/dist/variations_group.js +0 -43
  88. package/dist/white_label_accessibilities.js +0 -11
package/dist/model.js DELETED
@@ -1,753 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Request = Request;
7
- exports.addPropertyTo = addPropertyTo;
8
- exports.create = create;
9
- exports.deleteOne = deleteOne;
10
- exports.enumerateFiles = enumerateFiles;
11
- exports.forEachProperty = forEachProperty;
12
- exports.fromJson = fromJson;
13
- exports.fromJsonList = fromJsonList;
14
- exports.getList = getList;
15
- exports.getOne = getOne;
16
- exports.patchOne = patchOne;
17
- exports.recoverOne = recoverOne;
18
- exports.serialise = serialise;
19
- var _helpers = require("./helpers.js");
20
- var _dictionary = require("./dictionary.js");
21
- var _set = require("./set.js");
22
- var _axios = _interopRequireDefault(require("axios"));
23
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
24
- function Request() {
25
- var server = (0, _helpers.getGlobal)().merchiBackendUri,
26
- version = 'v6',
27
- method = 'GET',
28
- resource = '/',
29
- query = new _dictionary.Dictionary(),
30
- data = new _dictionary.Dictionary(),
31
- files = new _dictionary.Dictionary(),
32
- responseHandler = _helpers.id,
33
- errorHandler = _helpers.id,
34
- contentType = null,
35
- username = null,
36
- password = null;
37
- this.server = function (value) {
38
- if ((0, _helpers.isUndefined)(value)) {
39
- return server;
40
- }
41
- server = value;
42
- return this;
43
- };
44
- this.version = function (value) {
45
- if ((0, _helpers.isUndefined)(value)) {
46
- return version;
47
- }
48
- version = value;
49
- return this;
50
- };
51
- this.method = function (value) {
52
- if ((0, _helpers.isUndefined)(value)) {
53
- return method;
54
- }
55
- method = value;
56
- return this;
57
- };
58
- this.resource = function (value) {
59
- if ((0, _helpers.isUndefined)(value)) {
60
- return resource;
61
- }
62
- resource = value;
63
- return this;
64
- };
65
- this.query = function () {
66
- return query;
67
- };
68
- this.data = function () {
69
- return data;
70
- };
71
- this.files = function (value) {
72
- if ((0, _helpers.isUndefined)(value)) {
73
- return files;
74
- }
75
- files = value;
76
- return this;
77
- };
78
- this.responseHandler = function (value) {
79
- if ((0, _helpers.isUndefined)(value)) {
80
- return responseHandler;
81
- }
82
- responseHandler = value;
83
- return this;
84
- };
85
- this.errorHandler = function (value) {
86
- if ((0, _helpers.isUndefined)(value)) {
87
- return errorHandler;
88
- }
89
- errorHandler = value;
90
- return this;
91
- };
92
- this.contentType = function (value) {
93
- if ((0, _helpers.isUndefined)(value)) {
94
- return contentType;
95
- }
96
- contentType = value;
97
- return this;
98
- };
99
- this.username = function (value) {
100
- if ((0, _helpers.isUndefined)(value)) {
101
- return username;
102
- }
103
- username = value;
104
- return this;
105
- };
106
- this.password = function (value) {
107
- if ((0, _helpers.isUndefined)(value)) {
108
- return password;
109
- }
110
- password = value;
111
- return this;
112
- };
113
- this.p2pSupported = function () {
114
- return false;
115
- };
116
- this.url = function () {
117
- return this.server() + this.path();
118
- };
119
- this.path = function () {
120
- var url = this.version();
121
- url += this.resource();
122
- if (Boolean((0, _helpers.getGlobal)().currentSession) && Boolean((0, _helpers.getGlobal)().currentSession.token())) {
123
- this.query().add('session_token', (0, _helpers.getGlobal)().currentSession.token());
124
- }
125
- if (this.query().count() > 0) {
126
- url += '?' + this.query().toUriEncoding();
127
- }
128
- return url;
129
- };
130
- this.send = function () {
131
- var self = this,
132
- allData,
133
- params;
134
- allData = self.data();
135
- allData.merge(self.files());
136
- params = {
137
- 'url': self.url(),
138
- 'data': allData.toFormData(),
139
- 'method': self.method()
140
- };
141
- if (self.username() !== null) {
142
- params.auth = {
143
- username: self.username(),
144
- password: self.password()
145
- };
146
- }
147
- if (self.contentType() !== null) {
148
- params.headers = {
149
- 'Content-Type': self.contentType()
150
- };
151
- }
152
- (0, _axios["default"])(params).then(function (response) {
153
- return handleResponse(response);
154
- })["catch"](function (error) {
155
- return handleError(error);
156
- });
157
- function handleResponse(response) {
158
- var func = self.responseHandler();
159
- var argCount = func.length;
160
- var data = response.data;
161
- if (argCount > 1) {
162
- func(response.status, data);
163
- } else {
164
- func(response.data);
165
- }
166
- }
167
- function handleError(error) {
168
- var func = self.errorHandler();
169
- var argCount = func.length;
170
- if (argCount > 1) {
171
- func(error.status, error);
172
- } else {
173
- func(data);
174
- }
175
- }
176
- };
177
- }
178
- function forEachProperty(obj, procedure) {
179
- obj._properties.each(function (property) {
180
- // elem in _propertiesSet is array
181
- // 0 is name, 1 is type
182
- procedure(property[0], property[1]);
183
- });
184
- }
185
- function fromJson(model, json, options) {
186
- var defaults = {
187
- makesDirty: true
188
- };
189
- options = Object.assign({}, defaults, options);
190
- forEachProperty(model, function (propName, Type) {
191
- try {
192
- var received = json[propName],
193
- parsed;
194
- if (!Type || typeof received === 'number') {
195
- // Prop is untyped or only id received
196
- model[propName](received, {
197
- makesDirty: options.makesDirty
198
- });
199
- } else {
200
- // Prop is typed and other thing rather than
201
- // single id received
202
- if (received instanceof Array) {
203
- if (received.length > 0 && received[0] instanceof Object) {
204
- // response has embed obj
205
- parsed = fromJsonList(new Type(), received, options);
206
- } else {
207
- // response is id array
208
- parsed = received;
209
- }
210
- } else {
211
- // Embed Object received
212
- parsed = fromJson(new Type(), received, options);
213
- }
214
- model[propName](parsed, {
215
- makesDirty: options.makesDirty
216
- });
217
- }
218
- } catch (ignore) {}
219
- });
220
- model.rights = json.rights;
221
- return model;
222
- }
223
- function fromJsonList(obj, json, options) {
224
- var result = [],
225
- list,
226
- i,
227
- single;
228
- var defaults = {
229
- makesDirty: true
230
- };
231
- options = Object.assign({}, defaults, options);
232
-
233
- // When request plural eg /users, it gives typed json list
234
- // But when request embed data, annonymous json list returned
235
- if (json.constructor === Array) {
236
- // Embed data process
237
- list = json;
238
- for (i = 0; i < list.length; ++i) {
239
- single = new obj.constructor();
240
- result.push(fromJson(single, list[i], options));
241
- }
242
- return result;
243
- }
244
- // Plural request eg /users
245
- list = json[obj.json];
246
- for (i = 0; i < list.length; ++i) {
247
- single = new obj.single();
248
- result.push(fromJson(single, list[i][single.json], options));
249
- }
250
-
251
- // Append meta data for pagination,
252
- // workaroundbackward compatibility
253
- result.meta = {
254
- available: json.available,
255
- count: json.count,
256
- canCreate: json.canCreate,
257
- limit: json.limit,
258
- offset: json.offset
259
- };
260
- return result;
261
- }
262
- function getList(resource, success, error, parameters, withUpdates) {
263
- var request = new Request();
264
- request.resource(resource + '/').method('GET');
265
- request.responseHandler(success).errorHandler(error);
266
- if ((0, _helpers.notEmpty)(parameters.cartToken)) {
267
- request.query().add('cart_token', parameters.cartToken);
268
- }
269
- if ((0, _helpers.notEmpty)(parameters.offset)) {
270
- request.query().add('offset', parameters.offset);
271
- }
272
- if ((0, _helpers.notEmpty)(parameters.limit)) {
273
- request.query().add('limit', parameters.limit);
274
- }
275
- if ((0, _helpers.notEmpty)(parameters.q)) {
276
- request.query().add('q', parameters.q);
277
- }
278
- if ((0, _helpers.notEmpty)(parameters.sort)) {
279
- request.query().add('sort', parameters.sort);
280
- }
281
- if ((0, _helpers.notEmpty)(parameters.order)) {
282
- request.query().add('order', parameters.order);
283
- }
284
- if ((0, _helpers.notEmpty)(parameters.tab)) {
285
- request.query().add('tab', parameters.tab);
286
- }
287
- if ((0, _helpers.notEmpty)(parameters.as)) {
288
- request.query().add('as', parameters.as);
289
- }
290
- if (!parameters.withRights) {
291
- request.query().add('skip_rights', 'y');
292
- }
293
- if (parameters.embed && parameters.embed.constructor === Object) {
294
- request.query().add('embed', JSON.stringify(parameters.embed));
295
- }
296
- if ((0, _helpers.notEmpty)(parameters.state)) {
297
- request.query().add('state', parameters.state);
298
- }
299
- if ((0, _helpers.notEmpty)(parameters.categoryId)) {
300
- request.query().add('category_id', parameters.categoryId);
301
- }
302
- if ((0, _helpers.notEmpty)(parameters.platformCategoryId)) {
303
- request.query().add('platform_category_id', parameters.platformCategoryId);
304
- }
305
- if ((0, _helpers.notEmpty)(parameters.groupBuyForJobId)) {
306
- request.query().add('group_buy_for_job_id', parameters.groupBuyForJobId);
307
- }
308
- if ((0, _helpers.notEmpty)(parameters.inDomain)) {
309
- request.query().add('in_domain', parameters.inDomain);
310
- }
311
- if ((0, _helpers.notEmpty)(parameters.inDomainName)) {
312
- request.query().add('in_domain_name', parameters.inDomainName);
313
- }
314
- if (parameters.inDomainRoles) {
315
- request.query().add('in_domain_roles', JSON.stringify(parameters.inDomainRoles));
316
- }
317
- if (parameters.asRole) {
318
- request.query().add('as_role', JSON.stringify(parameters.asRole));
319
- }
320
- if (parameters.groupBuyOnly) {
321
- request.query().add('group_buy_only', JSON.stringify(parameters.groupBuyOnly));
322
- }
323
- if (parameters.publicOnly) {
324
- request.query().add('public_only', JSON.stringify(parameters.publicOnly));
325
- }
326
- if (parameters.isPrivate) {
327
- request.query().add('is_private', JSON.stringify(parameters.isPrivate));
328
- }
329
- if (parameters.managedOnly) {
330
- request.query().add('managed_only', JSON.stringify(parameters.managedOnly));
331
- }
332
- if (parameters.doesNotHaveAdminDomain) {
333
- request.query().add('does_not_have_admin_domain', JSON.stringify(parameters.doesNotHaveAdminDomain));
334
- }
335
- if (parameters.teamOnly) {
336
- request.query().add('team_only', JSON.stringify(parameters.teamOnly));
337
- }
338
- if (parameters.clientOnly) {
339
- request.query().add('client_only', JSON.stringify(parameters.clientOnly));
340
- }
341
- if (parameters.memberOnly) {
342
- request.query().add('member_only', JSON.stringify(parameters.memberOnly));
343
- }
344
- if (parameters.merchiOnly) {
345
- request.query().add('merchi_only', JSON.stringify(parameters.merchiOnly));
346
- }
347
- if (parameters.supplierResellOnly) {
348
- request.query().add('supplier_resell_only', JSON.stringify(parameters.supplierResellOnly));
349
- }
350
- if (parameters.inbound) {
351
- request.query().add('inbound', JSON.stringify(parameters.inbound));
352
- }
353
- if (parameters.isMaster) {
354
- request.query().add('is_master', JSON.stringify(parameters.isMaster));
355
- }
356
- if (parameters.domainRoles) {
357
- request.query().add('domain_roles', parameters.domainRoles);
358
- }
359
- if (parameters.domainTypes) {
360
- request.query().add('domain_types', parameters.domainTypes);
361
- }
362
- if (parameters.entityTypes) {
363
- request.query().add('entity_types', parameters.entityTypes);
364
- }
365
- if (parameters.productTypes) {
366
- request.query().add('product_types', parameters.productTypes);
367
- }
368
- if (parameters.masterProduct) {
369
- request.query().add('master_product', parameters.masterProduct);
370
- }
371
- if (parameters.managedDomainsOnly) {
372
- request.query().add('managed_domains_only', JSON.stringify(parameters.managedDomainsOnly));
373
- }
374
- if (parameters.businessDomainsOnly) {
375
- request.query().add('business_domains_only', JSON.stringify(parameters.businessDomainsOnly));
376
- }
377
- if ((0, _helpers.notEmpty)(parameters.dateFrom)) {
378
- request.query().add('date_from', parameters.dateFrom);
379
- }
380
- if ((0, _helpers.notEmpty)(parameters.dateTo)) {
381
- request.query().add('date_to', parameters.dateTo);
382
- }
383
- if ((0, _helpers.notEmpty)(parameters.relatedAssignment)) {
384
- request.query().add('related_assignment', parameters.relatedAssignment);
385
- }
386
- if ((0, _helpers.notEmpty)(parameters.relatedDraft)) {
387
- request.query().add('related_draft', parameters.relatedDraft);
388
- }
389
- if ((0, _helpers.notEmpty)(parameters.relatedJob)) {
390
- request.query().add('related_job', parameters.relatedJob);
391
- }
392
- if ((0, _helpers.notEmpty)(parameters.relatedProduct)) {
393
- request.query().add('related_product', parameters.relatedProduct);
394
- }
395
- if ((0, _helpers.notEmpty)(parameters.jobNotifiable)) {
396
- request.query().add('job_notifiable', parameters.jobNotifiable);
397
- }
398
- if ((0, _helpers.notEmpty)(parameters.notificationType)) {
399
- request.query().add('notification_type', parameters.notificationType);
400
- }
401
- if ((0, _helpers.notEmpty)(parameters.notificationRecipient)) {
402
- request.query().add('notification_recipient', parameters.notificationRecipient);
403
- }
404
- if ((0, _helpers.notEmpty)(parameters.notificationJob)) {
405
- request.query().add('notification_job', parameters.notificationJob);
406
- }
407
- if ((0, _helpers.notEmpty)(parameters.relatedUser)) {
408
- request.query().add('related_user', parameters.relatedUser);
409
- }
410
- if ((0, _helpers.notEmpty)(parameters.clientId)) {
411
- request.query().add('client_id', parameters.clientId);
412
- }
413
- if ((0, _helpers.notEmpty)(parameters.clientCompanyId)) {
414
- request.query().add('client_company_id', parameters.clientCompanyId);
415
- }
416
- if (parameters.savedByUser) {
417
- request.query().add('saved_by_user', JSON.stringify(parameters.savedByUser));
418
- }
419
- if (parameters.receiverId) {
420
- request.query().add('receiver_id', JSON.stringify(parameters.receiverId));
421
- }
422
- if ((0, _helpers.notEmpty)(parameters.queryString)) {
423
- request.query().add('query_string', parameters.queryString);
424
- }
425
- if ((0, _helpers.notEmpty)(parameters.companyCustomerId)) {
426
- request.query().add('company_customer_id', parameters.companyCustomerId);
427
- }
428
- if ((0, _helpers.notEmpty)(parameters.companyId)) {
429
- request.query().add('company_id', parameters.companyId);
430
- }
431
- if ((0, _helpers.notEmpty)(parameters.companySupplierId)) {
432
- request.query().add('company_supplier_id', parameters.companySupplierId);
433
- }
434
- if ((0, _helpers.notEmpty)(parameters.componentId)) {
435
- request.query().add('component_id', parameters.componentId);
436
- }
437
- if ((0, _helpers.notEmpty)(parameters.section)) {
438
- request.query().add('section', parameters.section);
439
- }
440
- if ((0, _helpers.notEmpty)(parameters.senderRole)) {
441
- request.query().add('senderRole', parameters.section);
442
- }
443
- if ((0, _helpers.notEmpty)(parameters.isOrder)) {
444
- request.query().add('is_order', parameters.isOrder);
445
- }
446
- if ((0, _helpers.notEmpty)(parameters.tags)) {
447
- request.query().add('tags', parameters.tags);
448
- }
449
- if (parameters.tagsInternal) {
450
- request.query().add('tags_internal', parameters.tagsInternal);
451
- }
452
- if (parameters.tagNames) {
453
- request.query().add('tag_names', parameters.tagNames);
454
- }
455
- if ((0, _helpers.notEmpty)(parameters.exclude)) {
456
- request.query().add('exclude', parameters.exclude);
457
- }
458
- if ((0, _helpers.notEmpty)(parameters.excludeComponents)) {
459
- request.query().add('exclude_components', parameters.excludeComponents);
460
- }
461
- if ((0, _helpers.notEmpty)(parameters.excludeDomains)) {
462
- request.query().add('exclude_domains', parameters.excludeDomains);
463
- }
464
- if ((0, _helpers.notEmpty)(parameters.includeOnly)) {
465
- request.query().add('include_only', parameters.includeOnly);
466
- }
467
- if ((0, _helpers.notEmpty)(parameters.orClientId)) {
468
- request.query().add('or_client_id', parameters.orClientId);
469
- }
470
- if ((0, _helpers.notEmpty)(parameters.shopifyOnly)) {
471
- request.query().add('shopify_only', parameters.shopifyOnly);
472
- }
473
- if ((0, _helpers.notEmpty)(parameters.relatedComponent)) {
474
- request.query().add('related_component', parameters.relatedComponent);
475
- }
476
- if ((0, _helpers.notEmpty)(parameters.originalOf)) {
477
- request.query().add('original_of', parameters.originalOf);
478
- }
479
- request.send();
480
- if (withUpdates) {
481
- return (0, _helpers.getGlobal)().merchiSusubscriptionManager.subscribe(withUpdates, request.path(), "GET", function (statusCode, data) {
482
- return success(JSON.parse(data));
483
- });
484
- }
485
- return null;
486
- }
487
- function serialise(obj, existing, prefix, files, options) {
488
- var result = new _dictionary.Dictionary(),
489
- index,
490
- excludeOld;
491
- options = options ? options : {};
492
- excludeOld = !!options.excludeOld;
493
- if (Boolean(existing)) {
494
- result = existing;
495
- }
496
- if (!files) {
497
- files = [];
498
- }
499
- function appendData(name, value) {
500
- if (!(0, _helpers.isUndefined)(value) && value !== null) {
501
- if (Boolean(prefix)) {
502
- result.add(prefix + '-' + name, value);
503
- } else {
504
- result.add(name, value);
505
- }
506
- }
507
- }
508
- if (Boolean(obj.fileData)) {
509
- index = files.length;
510
- files.push(obj.fileData);
511
- appendData('fileDataIndex', index);
512
- }
513
- forEachProperty(obj, function (property, Type) {
514
- var value = obj[property](),
515
- i,
516
- innerPrefix,
517
- nested;
518
- if (!(0, _helpers.isUndefined)(Type) && Boolean(Type)) {
519
- // serialise relationship
520
- var updatingOrder = obj._updatingOrder[property];
521
- if (updatingOrder) {
522
- appendData(property + '-*updateOrder', 'true');
523
- }
524
- if (value instanceof Array) {
525
- var isDirty = false;
526
- for (i = 0; i < value.length; i++) {
527
- if (!!value[i]._isDirty) {
528
- isDirty = true;
529
- break;
530
- }
531
- }
532
- if (excludeOld && !(obj._wantsUpdate[property] || isDirty)) {
533
- return;
534
- }
535
- if (value && value.length === 0) {
536
- appendData(property + '-count', 0);
537
- }
538
- // multiple remove entities
539
- var childrenSerialised = 0;
540
- for (i = 0; i < value.length; ++i) {
541
- innerPrefix = property + '-' + i;
542
- if (Boolean(prefix)) {
543
- innerPrefix = prefix + '-' + innerPrefix;
544
- }
545
- var initialCount = result.count();
546
- nested = serialise(value[i], result, innerPrefix, files, options);
547
- if (result.count() > initialCount) {
548
- childrenSerialised += 1;
549
- }
550
- result = nested[0];
551
- files = nested[1];
552
- if (childrenSerialised > 0) {
553
- appendData(property + '-count', childrenSerialised);
554
- }
555
- }
556
- } else if (Boolean(value)) {
557
- // one remote entity
558
- if (excludeOld && !(obj._wantsUpdate[property] || value._isDirty)) {
559
- return;
560
- }
561
- innerPrefix = property + '-0';
562
- if (Boolean(prefix)) {
563
- innerPrefix = prefix + '-' + innerPrefix;
564
- }
565
- initialCount = result.count();
566
- nested = serialise(value, result, innerPrefix, files, options);
567
- if (result.count() > initialCount) {
568
- appendData(property + '-count', 1);
569
- }
570
- result = nested[0];
571
- files = nested[1];
572
- }
573
- } else {
574
- // serialise scalar
575
- if (excludeOld && !obj._wantsUpdate[property] && property !== 'id') {
576
- return;
577
- }
578
- appendData(property, value);
579
- }
580
- });
581
- return [result, files];
582
- }
583
- function markDirty(obj) {
584
- /* mark this object, and recursively all objects that have refered to it,
585
- as changed compared to the backend. */
586
- var openSet = []; /* Queue (BFS) */
587
- var closedSet = new _set.Set();
588
- openSet.push(obj);
589
- while (openSet.length > 0) {
590
- var current = openSet.shift();
591
- if (!closedSet.has(current)) {
592
- current._isDirty = true;
593
- closedSet.add(current);
594
- current._backObjects.each(function (child) {
595
- openSet.push(child);
596
- });
597
- }
598
- }
599
- }
600
- function addPropertyTo(obj, propertyName, Type) {
601
- obj._isMerchiEntity = true;
602
- if (!Object.prototype.hasOwnProperty.call(obj, '_wantsUpdate')) {
603
- obj._wantsUpdate = {};
604
- }
605
- obj._wantsUpdate[propertyName] = false;
606
- if (!Object.prototype.hasOwnProperty.call(obj, '_isDirty')) {
607
- obj._isDirty = false;
608
- }
609
- if (!Object.prototype.hasOwnProperty.call(obj, '_backObjects')) {
610
- obj._backObjects = new _set.Set();
611
- }
612
- if (!Object.prototype.hasOwnProperty.call(obj, '_properties')) {
613
- obj._properties = new _set.Set();
614
- }
615
- if (!Object.prototype.hasOwnProperty.call(obj, '_updatingOrder')) {
616
- obj._updatingOrder = {};
617
- }
618
- var hiddenProperty = '_' + propertyName;
619
- if ((0, _helpers.isUndefined)(Type)) {
620
- Type = null;
621
- }
622
- obj._properties.add([propertyName, Type]);
623
- obj[propertyName] = function (value, options) {
624
- if ((0, _helpers.isUndefined)(options)) {
625
- options = {};
626
- }
627
- if ((0, _helpers.isUndefined)(options.makesDirty)) {
628
- options.makesDirty = true;
629
- }
630
- if ((0, _helpers.isUndefined)(options.updatingOrder)) {
631
- options.updatingOrder = false;
632
- }
633
- if ((0, _helpers.isUndefined)(value)) {
634
- return obj[hiddenProperty];
635
- }
636
- obj[hiddenProperty] = value;
637
- if (options.makesDirty) {
638
- obj._wantsUpdate[propertyName] = true;
639
- markDirty(obj);
640
- }
641
- obj._updatingOrder[propertyName] = options.updatingOrder;
642
- if (!!value && !!value._isMerchiEntity) {
643
- value._backObjects.add(obj);
644
- } else if (Array.isArray(value)) {
645
- for (var i = 0; i < value.length; i++) {
646
- var item = value[i];
647
- if (!!item._isMerchiEntity) {
648
- item._backObjects.add(obj);
649
- }
650
- }
651
- }
652
- return obj;
653
- };
654
- }
655
- function patchOne(options) {
656
- var request = new Request(),
657
- id = options.id;
658
- options.resource = options.resource || '';
659
- options.id = options.id || '';
660
- options.data = options.data || {};
661
- options.success = options.success || id;
662
- options.error = options.error || id;
663
- options.files = options.files || new _dictionary.Dictionary();
664
- request.resource(options.resource + '/' + options.id + '/').method('PATCH');
665
- request.files(options.files);
666
- request.data().merge(options.data);
667
- if (options.embed && options.embed.constructor === Object) {
668
- request.query().add('embed', JSON.stringify(options.embed));
669
- }
670
- if ((0, _helpers.notEmpty)(options.as_domain)) {
671
- request.query().add('as_domain', options.as_domain);
672
- }
673
- if (options.cartToken) {
674
- request.query().add('cart_token', options.cartToken);
675
- }
676
- if (!options.withRights) {
677
- request.query().add('skip_rights', 'y');
678
- }
679
- request.responseHandler(options.success).errorHandler(options.error);
680
- request.send();
681
- }
682
- function getOne(options) {
683
- var request = new Request(),
684
- error = options.error,
685
- embed = options.embed;
686
- request.resource(options.resource + '/' + options.id + '/').method('GET');
687
- if (embed && embed.constructor === Object) {
688
- embed = JSON.stringify(embed);
689
- request.query().add('embed', embed);
690
- }
691
- if (options.includeArchived) {
692
- request.query().add("include_archived", true);
693
- }
694
- if (options.cartToken) {
695
- request.query().add('cart_token', options.cartToken);
696
- }
697
- if (!options.withRights) {
698
- request.query().add('skip_rights', 'y');
699
- }
700
- request.responseHandler(options.success).errorHandler(error);
701
- request.send();
702
- }
703
- function deleteOne(resource, success, error) {
704
- var request = new Request();
705
- request.resource(resource + '/').method('DELETE');
706
- request.responseHandler(success).errorHandler(error);
707
- request.send();
708
- }
709
- function create(options) {
710
- var request = new Request(),
711
- embed;
712
- options.resource = options.resource || '';
713
- options.parameters = options.parameters || new _dictionary.Dictionary();
714
- options.success = options.success || _helpers.id;
715
- options.error = options.error || _helpers.id;
716
- options.files = options.files || new _dictionary.Dictionary();
717
- request.resource(options.resource + '/').method('POST');
718
- request.data().merge(options.parameters);
719
- request.files(options.files);
720
- if (!(0, _helpers.isUndefined)(options.username)) {
721
- request.username(options.username);
722
- request.password(options.password);
723
- }
724
- if (options.embed && options.embed.constructor === Object) {
725
- embed = JSON.stringify(options.embed);
726
- request.query().add('embed', embed);
727
- }
728
- if ((0, _helpers.notEmpty)(options.as_domain)) {
729
- request.query().add('as_domain', options.as_domain);
730
- }
731
- if (!options.withRights) {
732
- request.query().add('skip_rights', 'y');
733
- }
734
- request.responseHandler(options.success).errorHandler(options.error);
735
- request.send();
736
- }
737
- function enumerateFiles(files) {
738
- /* Convert a list to a Dictionary where the keys where the indices
739
- and the values where the values at those indices.
740
- */
741
- var i,
742
- result = new _dictionary.Dictionary();
743
- for (i = 0; i < files.length; ++i) {
744
- result.add(i, files[i]);
745
- }
746
- return result;
747
- }
748
- function recoverOne(model, id, success, error) {
749
- var request = new Request();
750
- request.resource("/unarchive/" + model + '/' + id + '/').method('POST');
751
- request.responseHandler(success).errorHandler(error);
752
- request.send();
753
- }