@livepreso/api 6.46.0 → 6.47.0
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.
- package/.rush/temp/package-deps_build.json +156 -141
- package/.rush/temp/shrinkwrap-deps.json +424 -374
- package/CHANGELOG.json +17 -0
- package/CHANGELOG.md +8 -1
- package/api.build.log +6 -1
- package/cjs/api.js +18 -3
- package/cjs/api.js.map +1 -1
- package/cjs/api.spec.js +4 -0
- package/cjs/api.spec.js.map +1 -1
- package/cjs/auth.js +29 -2
- package/cjs/auth.js.map +1 -1
- package/cjs/auth.spec.js +77 -52
- package/cjs/auth.spec.js.map +1 -1
- package/cjs/caching.js +7 -2
- package/cjs/caching.js.map +1 -1
- package/cjs/collections/activity.js +56 -16
- package/cjs/collections/activity.js.map +1 -1
- package/cjs/collections/adjunct-sections.js +10 -1
- package/cjs/collections/adjunct-sections.js.map +1 -1
- package/cjs/collections/adjunct-slides.js +10 -1
- package/cjs/collections/adjunct-slides.js.map +1 -1
- package/cjs/collections/adjunct-sub-slides.js +9 -1
- package/cjs/collections/adjunct-sub-slides.js.map +1 -1
- package/cjs/collections/appointment-adjunct-tags.js +9 -1
- package/cjs/collections/appointment-adjunct-tags.js.map +1 -1
- package/cjs/collections/appointment-deckversion-tags.js +9 -1
- package/cjs/collections/appointment-deckversion-tags.js.map +1 -1
- package/cjs/collections/appointment-editors.js +10 -1
- package/cjs/collections/appointment-editors.js.map +1 -1
- package/cjs/collections/appointment-section-tags.js +9 -1
- package/cjs/collections/appointment-section-tags.js.map +1 -1
- package/cjs/collections/appointment-slide-tags.js +9 -1
- package/cjs/collections/appointment-slide-tags.js.map +1 -1
- package/cjs/collections/appointment-tags.js +103 -64
- package/cjs/collections/appointment-tags.js.map +1 -1
- package/cjs/collections/appointment-templates.js +10 -1
- package/cjs/collections/appointment-templates.js.map +1 -1
- package/cjs/collections/appointments.js +29 -9
- package/cjs/collections/appointments.js.map +1 -1
- package/cjs/collections/assets.js +9 -1
- package/cjs/collections/assets.js.map +1 -1
- package/cjs/collections/auto-adjuncts.js +21 -6
- package/cjs/collections/auto-adjuncts.js.map +1 -1
- package/cjs/collections/base.js +112 -34
- package/cjs/collections/base.js.map +1 -1
- package/cjs/collections/base.spec.js +233 -186
- package/cjs/collections/base.spec.js.map +1 -1
- package/cjs/collections/cms-vals.js +16 -4
- package/cjs/collections/cms-vals.js.map +1 -1
- package/cjs/collections/contact-phones.js +9 -1
- package/cjs/collections/contact-phones.js.map +1 -1
- package/cjs/collections/contacts.js +9 -1
- package/cjs/collections/contacts.js.map +1 -1
- package/cjs/collections/created-assets.js +10 -1
- package/cjs/collections/created-assets.js.map +1 -1
- package/cjs/collections/customers.js +9 -1
- package/cjs/collections/customers.js.map +1 -1
- package/cjs/collections/deck-notes.js +10 -1
- package/cjs/collections/deck-notes.js.map +1 -1
- package/cjs/collections/deck-version-screenshots.js +17 -4
- package/cjs/collections/deck-version-screenshots.js.map +1 -1
- package/cjs/collections/deck-versions.js +20 -5
- package/cjs/collections/deck-versions.js.map +1 -1
- package/cjs/collections/decks.js +9 -1
- package/cjs/collections/decks.js.map +1 -1
- package/cjs/collections/deleted-assets.js +10 -1
- package/cjs/collections/deleted-assets.js.map +1 -1
- package/cjs/collections/dispatches.js +13 -1
- package/cjs/collections/dispatches.js.map +1 -1
- package/cjs/collections/event-objects.js +9 -1
- package/cjs/collections/event-objects.js.map +1 -1
- package/cjs/collections/events.js +9 -1
- package/cjs/collections/events.js.map +1 -1
- package/cjs/collections/groups.js +9 -1
- package/cjs/collections/groups.js.map +1 -1
- package/cjs/collections/images.js +9 -1
- package/cjs/collections/images.js.map +1 -1
- package/cjs/collections/locations.js +9 -1
- package/cjs/collections/locations.js.map +1 -1
- package/cjs/collections/opportunities.js +9 -1
- package/cjs/collections/opportunities.js.map +1 -1
- package/cjs/collections/pack-diffs.js +9 -1
- package/cjs/collections/pack-diffs.js.map +1 -1
- package/cjs/collections/packs.js +9 -1
- package/cjs/collections/packs.js.map +1 -1
- package/cjs/collections/presets.js +9 -1
- package/cjs/collections/presets.js.map +1 -1
- package/cjs/collections/section-selections.js +9 -1
- package/cjs/collections/section-selections.js.map +1 -1
- package/cjs/collections/sections.js +9 -1
- package/cjs/collections/sections.js.map +1 -1
- package/cjs/collections/signers.js +28 -0
- package/cjs/collections/signers.js.map +1 -0
- package/cjs/collections/signing-requests.js +28 -0
- package/cjs/collections/signing-requests.js.map +1 -0
- package/cjs/collections/slide-selections.js +9 -1
- package/cjs/collections/slide-selections.js.map +1 -1
- package/cjs/collections/slides.js +9 -1
- package/cjs/collections/slides.js.map +1 -1
- package/cjs/collections/snapshots.js +9 -1
- package/cjs/collections/snapshots.js.map +1 -1
- package/cjs/collections/sub-slides.js +9 -1
- package/cjs/collections/sub-slides.js.map +1 -1
- package/cjs/collections/tags.js +9 -1
- package/cjs/collections/tags.js.map +1 -1
- package/cjs/collections/teams.js +9 -1
- package/cjs/collections/teams.js.map +1 -1
- package/cjs/collections/templates.js +9 -1
- package/cjs/collections/templates.js.map +1 -1
- package/cjs/collections/uploads.js +9 -1
- package/cjs/collections/uploads.js.map +1 -1
- package/cjs/collections/users.js +9 -1
- package/cjs/collections/users.js.map +1 -1
- package/cjs/collections.js +116 -11
- package/cjs/collections.js.map +1 -1
- package/cjs/fixtures.js +60 -15
- package/cjs/fixtures.js.map +1 -1
- package/cjs/index.js +36 -2
- package/cjs/index.js.map +1 -1
- package/cjs/log.js +1 -0
- package/cjs/log.js.map +1 -1
- package/cjs/middleware.js +7 -2
- package/cjs/middleware.js.map +1 -1
- package/cjs/middlewares/auth.js +17 -1
- package/cjs/middlewares/auth.js.map +1 -1
- package/cjs/middlewares/base.js +9 -3
- package/cjs/middlewares/base.js.map +1 -1
- package/cjs/middlewares/json.js +19 -1
- package/cjs/middlewares/json.js.map +1 -1
- package/cjs/middlewares/redirect.js +21 -5
- package/cjs/middlewares/redirect.js.map +1 -1
- package/cjs/models/activity-item.js +29 -5
- package/cjs/models/activity-item.js.map +1 -1
- package/cjs/models/adjunct-section.js +19 -1
- package/cjs/models/adjunct-section.js.map +1 -1
- package/cjs/models/adjunct-slide.js +19 -1
- package/cjs/models/adjunct-slide.js.map +1 -1
- package/cjs/models/adjunct-sub-slide.js +16 -1
- package/cjs/models/adjunct-sub-slide.js.map +1 -1
- package/cjs/models/adjunct.js +22 -6
- package/cjs/models/adjunct.js.map +1 -1
- package/cjs/models/api.js +6 -1
- package/cjs/models/api.js.map +1 -1
- package/cjs/models/appointment-adjunct-tags.js +13 -1
- package/cjs/models/appointment-adjunct-tags.js.map +1 -1
- package/cjs/models/appointment-deckversion-tags.js +13 -1
- package/cjs/models/appointment-deckversion-tags.js.map +1 -1
- package/cjs/models/appointment-editor.js +14 -1
- package/cjs/models/appointment-editor.js.map +1 -1
- package/cjs/models/appointment-section-tags.js +13 -1
- package/cjs/models/appointment-section-tags.js.map +1 -1
- package/cjs/models/appointment-slide-tags.js +13 -1
- package/cjs/models/appointment-slide-tags.js.map +1 -1
- package/cjs/models/appointment-stats.js +11 -1
- package/cjs/models/appointment-stats.js.map +1 -1
- package/cjs/models/appointment-tags.js +10 -1
- package/cjs/models/appointment-tags.js.map +1 -1
- package/cjs/models/appointment-template.js +6 -1
- package/cjs/models/appointment-template.js.map +1 -1
- package/cjs/models/appointment-viewing.js +8 -1
- package/cjs/models/appointment-viewing.js.map +1 -1
- package/cjs/models/appointment.js +98 -20
- package/cjs/models/appointment.js.map +1 -1
- package/cjs/models/asset.js +12 -1
- package/cjs/models/asset.js.map +1 -1
- package/cjs/models/auto-adjunct-key-check.js +15 -1
- package/cjs/models/auto-adjunct-key-check.js.map +1 -1
- package/cjs/models/auto-adjunct.js +13 -1
- package/cjs/models/auto-adjunct.js.map +1 -1
- package/cjs/models/base.js +175 -53
- package/cjs/models/base.js.map +1 -1
- package/cjs/models/base.spec.js +31 -0
- package/cjs/models/base.spec.js.map +1 -1
- package/cjs/models/choicelist.js +8 -1
- package/cjs/models/choicelist.js.map +1 -1
- package/cjs/models/cms-val.js +26 -5
- package/cjs/models/cms-val.js.map +1 -1
- package/cjs/models/cms-val.spec.js +19 -12
- package/cjs/models/cms-val.spec.js.map +1 -1
- package/cjs/models/contact-phone.js +13 -1
- package/cjs/models/contact-phone.js.map +1 -1
- package/cjs/models/contact.js +18 -1
- package/cjs/models/contact.js.map +1 -1
- package/cjs/models/customer.js +30 -3
- package/cjs/models/customer.js.map +1 -1
- package/cjs/models/deck-note.js +9 -1
- package/cjs/models/deck-note.js.map +1 -1
- package/cjs/models/deck-tags.js +12 -1
- package/cjs/models/deck-tags.js.map +1 -1
- package/cjs/models/deck-version-screenshot.js +13 -1
- package/cjs/models/deck-version-screenshot.js.map +1 -1
- package/cjs/models/deck-version.js +40 -1
- package/cjs/models/deck-version.js.map +1 -1
- package/cjs/models/deck.js +14 -1
- package/cjs/models/deck.js.map +1 -1
- package/cjs/models/dispatch-preview.js +13 -1
- package/cjs/models/dispatch-preview.js.map +1 -1
- package/cjs/models/dispatch.js +23 -1
- package/cjs/models/dispatch.js.map +1 -1
- package/cjs/models/envs.js +6 -1
- package/cjs/models/envs.js.map +1 -1
- package/cjs/models/event-object.js +11 -1
- package/cjs/models/event-object.js.map +1 -1
- package/cjs/models/event.js +13 -1
- package/cjs/models/event.js.map +1 -1
- package/cjs/models/feed-data.js +13 -1
- package/cjs/models/feed-data.js.map +1 -1
- package/cjs/models/file.js +11 -1
- package/cjs/models/file.js.map +1 -1
- package/cjs/models/group.js +11 -1
- package/cjs/models/group.js.map +1 -1
- package/cjs/models/handover.js +13 -1
- package/cjs/models/handover.js.map +1 -1
- package/cjs/models/hosted-preso.js +15 -1
- package/cjs/models/hosted-preso.js.map +1 -1
- package/cjs/models/image.js +16 -1
- package/cjs/models/image.js.map +1 -1
- package/cjs/models/location.js +13 -1
- package/cjs/models/location.js.map +1 -1
- package/cjs/models/manifest-json.js +88 -21
- package/cjs/models/manifest-json.js.map +1 -1
- package/cjs/models/onshare.js +14 -1
- package/cjs/models/onshare.js.map +1 -1
- package/cjs/models/opportunity.js +14 -1
- package/cjs/models/opportunity.js.map +1 -1
- package/cjs/models/pack-diff.js +14 -1
- package/cjs/models/pack-diff.js.map +1 -1
- package/cjs/models/pack.js +12 -1
- package/cjs/models/pack.js.map +1 -1
- package/cjs/models/preset.js +21 -2
- package/cjs/models/preset.js.map +1 -1
- package/cjs/models/refresh-request.js +22 -4
- package/cjs/models/refresh-request.js.map +1 -1
- package/cjs/models/room.js +9 -1
- package/cjs/models/room.js.map +1 -1
- package/cjs/models/salesforce-lookup.js +12 -1
- package/cjs/models/salesforce-lookup.js.map +1 -1
- package/cjs/models/section-selection.js +14 -1
- package/cjs/models/section-selection.js.map +1 -1
- package/cjs/models/section.js +14 -1
- package/cjs/models/section.js.map +1 -1
- package/cjs/models/signer.js +47 -0
- package/cjs/models/signer.js.map +1 -0
- package/cjs/models/signing-request.js +66 -0
- package/cjs/models/signing-request.js.map +1 -0
- package/cjs/models/slide-selection.js +14 -1
- package/cjs/models/slide-selection.js.map +1 -1
- package/cjs/models/slide.js +14 -1
- package/cjs/models/slide.js.map +1 -1
- package/cjs/models/snapshot.js +45 -4
- package/cjs/models/snapshot.js.map +1 -1
- package/cjs/models/snapshot.spec.js +32 -25
- package/cjs/models/snapshot.spec.js.map +1 -1
- package/cjs/models/sub-slide.js +12 -1
- package/cjs/models/sub-slide.js.map +1 -1
- package/cjs/models/support-ticket.js +11 -1
- package/cjs/models/support-ticket.js.map +1 -1
- package/cjs/models/tag.js +13 -1
- package/cjs/models/tag.js.map +1 -1
- package/cjs/models/team.js +13 -1
- package/cjs/models/team.js.map +1 -1
- package/cjs/models/template.js +78 -48
- package/cjs/models/template.js.map +1 -1
- package/cjs/models/tenancy.js +11 -1
- package/cjs/models/tenancy.js.map +1 -1
- package/cjs/models/timing-log.js +78 -21
- package/cjs/models/timing-log.js.map +1 -1
- package/cjs/models/timing-log.spec.js +37 -24
- package/cjs/models/timing-log.spec.js.map +1 -1
- package/cjs/models/token.js +11 -1
- package/cjs/models/token.js.map +1 -1
- package/cjs/models/transcribe-socket.js +8 -1
- package/cjs/models/transcribe-socket.js.map +1 -1
- package/cjs/models/upload.js +7 -1
- package/cjs/models/upload.js.map +1 -1
- package/cjs/models/user.js +26 -3
- package/cjs/models/user.js.map +1 -1
- package/cjs/models/user.spec.js +30 -20
- package/cjs/models/user.spec.js.map +1 -1
- package/cjs/models.js +160 -11
- package/cjs/models.js.map +1 -1
- package/cjs/presentation/appointment-presentation.js +35 -9
- package/cjs/presentation/appointment-presentation.js.map +1 -1
- package/cjs/presentation/base-presentation-collection.js +7 -1
- package/cjs/presentation/base-presentation-collection.js.map +1 -1
- package/cjs/presentation/base-presentation-model.js +65 -22
- package/cjs/presentation/base-presentation-model.js.map +1 -1
- package/cjs/presentation/base-presentation-model.spec.js +27 -6
- package/cjs/presentation/base-presentation-model.spec.js.map +1 -1
- package/cjs/presentation/presentation-deck.js +82 -41
- package/cjs/presentation/presentation-deck.js.map +1 -1
- package/cjs/presentation/presentation-deck.spec.js +95 -72
- package/cjs/presentation/presentation-deck.spec.js.map +1 -1
- package/cjs/presentation/presentation-decks.js +9 -1
- package/cjs/presentation/presentation-decks.js.map +1 -1
- package/cjs/presentation/presentation-section.js +74 -9
- package/cjs/presentation/presentation-section.js.map +1 -1
- package/cjs/presentation/presentation-section.spec.js +256 -203
- package/cjs/presentation/presentation-section.spec.js.map +1 -1
- package/cjs/presentation/presentation-sections.js +9 -1
- package/cjs/presentation/presentation-sections.js.map +1 -1
- package/cjs/presentation/presentation-slide.js +77 -16
- package/cjs/presentation/presentation-slide.js.map +1 -1
- package/cjs/presentation/presentation-slide.spec.js +176 -136
- package/cjs/presentation/presentation-slide.spec.js.map +1 -1
- package/cjs/presentation/presentation-slides.js +9 -1
- package/cjs/presentation/presentation-slides.js.map +1 -1
- package/cjs/presentation/presentation-subslide.js +23 -3
- package/cjs/presentation/presentation-subslide.js.map +1 -1
- package/cjs/presentation/presentation-subslide.spec.js +125 -101
- package/cjs/presentation/presentation-subslide.spec.js.map +1 -1
- package/cjs/presentation/presentation-subslides.js +9 -1
- package/cjs/presentation/presentation-subslides.js.map +1 -1
- package/cjs/presentation/presentation.js +115 -61
- package/cjs/presentation/presentation.js.map +1 -1
- package/cjs/presentation.js +20 -0
- package/cjs/presentation.js.map +1 -1
- package/cjs/selections.js +29 -4
- package/cjs/selections.js.map +1 -1
- package/cjs/state-register.js +11 -3
- package/cjs/state-register.js.map +1 -1
- package/cjs/sync.js +76 -32
- package/cjs/sync.js.map +1 -1
- package/cjs/utils.js +49 -21
- package/cjs/utils.js.map +1 -1
- package/cjs/utils.spec.js +5 -1
- package/cjs/utils.spec.js.map +1 -1
- package/package.json +4 -4
- package/src/collections/signers.js +18 -0
- package/src/collections/signing-requests.js +18 -0
- package/src/collections.js +2 -1
- package/src/fixtures.js +11 -9
- package/src/index.js +2 -3
- package/src/models/activity-item.js +8 -0
- package/src/models/appointment.js +3 -0
- package/src/models/deck-version.js +1 -0
- package/src/models/manifest-json.js +9 -0
- package/src/models/preset.js +1 -0
- package/src/models/refresh-request.js +1 -0
- package/src/models/signer.js +37 -0
- package/src/models/signing-request.js +56 -0
- package/src/models/snapshot.js +19 -0
- package/src/models.js +2 -1
- package/src/utils.spec.js +4 -4
- package/cjs/collections/appointment-duplicates.js +0 -21
- package/cjs/collections/appointment-duplicates.js.map +0 -1
- package/cjs/models/appointment-duplicate.js +0 -72
- package/cjs/models/appointment-duplicate.js.map +0 -1
- package/src/collections/appointment-duplicates.js +0 -19
- package/src/models/appointment-duplicate.js +0 -73
package/cjs/models/base.js
CHANGED
|
@@ -1,34 +1,57 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.BaseModel = void 0;
|
|
9
|
+
|
|
8
10
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
|
|
9
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
+
|
|
10
14
|
var _utils = require("../utils.js");
|
|
15
|
+
|
|
11
16
|
var _api = require("../api.js");
|
|
17
|
+
|
|
12
18
|
var _ampersandRestCollection = _interopRequireDefault(require("ampersand-rest-collection"));
|
|
19
|
+
|
|
13
20
|
var _ampersandModel = _interopRequireDefault(require("ampersand-model"));
|
|
21
|
+
|
|
14
22
|
var _superagentBluebirdPromise = _interopRequireDefault(require("superagent-bluebird-promise"));
|
|
23
|
+
|
|
15
24
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
25
|
+
|
|
16
26
|
var _dedentJs = _interopRequireDefault(require("dedent-js"));
|
|
27
|
+
|
|
17
28
|
var _log = _interopRequireDefault(require("../log.js"));
|
|
29
|
+
|
|
18
30
|
var _moment = _interopRequireDefault(require("moment"));
|
|
31
|
+
|
|
19
32
|
var _qs = _interopRequireDefault(require("qs"));
|
|
33
|
+
|
|
20
34
|
var _stateRegister = require("../state-register.js");
|
|
35
|
+
|
|
21
36
|
var _sync2 = require("../sync.js");
|
|
37
|
+
|
|
22
38
|
var _url = _interopRequireDefault(require("url"));
|
|
39
|
+
|
|
23
40
|
var _templateObject;
|
|
41
|
+
|
|
24
42
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
43
|
+
|
|
25
44
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
26
|
-
|
|
45
|
+
|
|
46
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
47
|
+
|
|
27
48
|
/**
|
|
28
49
|
* @constructor
|
|
29
50
|
* @alias models.BaseModel
|
|
30
51
|
*/
|
|
31
|
-
var BaseModel =
|
|
52
|
+
var BaseModel = _ampersandModel.default.extend(
|
|
53
|
+
/** @lends models.BaseModel# */
|
|
54
|
+
{
|
|
32
55
|
modelName: null,
|
|
33
56
|
queryData: {},
|
|
34
57
|
detailType: "number",
|
|
@@ -51,79 +74,92 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
51
74
|
urlMatchKeys: {},
|
|
52
75
|
constructor: function constructor() {
|
|
53
76
|
var _data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
77
|
+
|
|
54
78
|
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
79
|
+
|
|
55
80
|
var options = _lodash.default.defaults(opts, {
|
|
56
81
|
data: {}
|
|
57
82
|
});
|
|
83
|
+
|
|
58
84
|
var data = _data;
|
|
59
85
|
this._unsetChildren = {};
|
|
60
86
|
this._unsetCollections = {};
|
|
61
87
|
this._expandedValues = {};
|
|
88
|
+
|
|
62
89
|
if (data === null) {
|
|
63
90
|
data = {};
|
|
64
|
-
}
|
|
91
|
+
} // Allow passing in models
|
|
92
|
+
|
|
65
93
|
|
|
66
|
-
// Allow passing in models
|
|
67
94
|
if (data instanceof _ampersandModel.default) {
|
|
68
95
|
data = data.toJSON();
|
|
69
96
|
}
|
|
70
|
-
this.queryData = options.data;
|
|
71
97
|
|
|
72
|
-
// Convert any strings into a url format we can understand
|
|
98
|
+
this.queryData = options.data; // Convert any strings into a url format we can understand
|
|
99
|
+
|
|
73
100
|
if (_lodash.default.isString(data)) {
|
|
74
101
|
data = {
|
|
75
102
|
url: data
|
|
76
103
|
};
|
|
77
104
|
this._isFetched = false;
|
|
78
|
-
}
|
|
105
|
+
} // Convert model ids into a format we can understand
|
|
106
|
+
|
|
79
107
|
|
|
80
|
-
// Convert model ids into a format we can understand
|
|
81
108
|
if (_lodash.default.isNumber(data)) {
|
|
82
109
|
data = {
|
|
83
110
|
id: data
|
|
84
111
|
};
|
|
85
112
|
this._isFetched = false;
|
|
86
113
|
}
|
|
114
|
+
|
|
87
115
|
var dataCopy = _lodash.default.extend({}, data);
|
|
116
|
+
|
|
88
117
|
this._data = dataCopy;
|
|
89
|
-
this._options = options;
|
|
118
|
+
this._options = options; // Stop making edits to these affect other models
|
|
90
119
|
|
|
91
|
-
// Stop making edits to these affect other models
|
|
92
120
|
this._children = _lodash.default.clone(this._children);
|
|
93
121
|
this._collections = _lodash.default.clone(this._collections);
|
|
94
|
-
this._definition = _lodash.default.clone(this._definition);
|
|
95
|
-
|
|
96
|
-
// Check for specialized url returns from the server. This is for when the
|
|
122
|
+
this._definition = _lodash.default.clone(this._definition); // Check for specialized url returns from the server. This is for when the
|
|
97
123
|
// server responds with an array of urls rather than object data.
|
|
124
|
+
|
|
98
125
|
if (dataCopy && typeof dataCopy.url === "string") {
|
|
99
126
|
this._url = dataCopy.url;
|
|
100
127
|
}
|
|
128
|
+
|
|
101
129
|
for (var key in dataCopy) {
|
|
102
|
-
var def = dataCopy[key];
|
|
103
|
-
// Any models/collections passed into the constructor should be
|
|
130
|
+
var def = dataCopy[key]; // Any models/collections passed into the constructor should be
|
|
104
131
|
// converted to JSON so that it can be parsed
|
|
132
|
+
|
|
105
133
|
if (def && (def.isState || def instanceof _ampersandRestCollection.default)) {
|
|
106
134
|
dataCopy[key] = def.toJSON();
|
|
107
135
|
}
|
|
136
|
+
|
|
108
137
|
if (def && Array.isArray(def)) {
|
|
109
138
|
dataCopy[key] = def.map(function (obj) {
|
|
110
139
|
if (obj instanceof _ampersandModel.default) {
|
|
111
140
|
return obj.toJSON();
|
|
112
141
|
}
|
|
142
|
+
|
|
113
143
|
return obj;
|
|
114
144
|
});
|
|
115
145
|
}
|
|
116
146
|
}
|
|
147
|
+
|
|
117
148
|
this.registerStates();
|
|
149
|
+
|
|
118
150
|
this._convertToValues();
|
|
151
|
+
|
|
119
152
|
var id = this._getIDFromURL(this._url);
|
|
153
|
+
|
|
120
154
|
if (!dataCopy.id && id) {
|
|
121
155
|
dataCopy.id = id;
|
|
122
156
|
}
|
|
157
|
+
|
|
123
158
|
_ampersandModel.default.prototype.constructor.call(this, dataCopy, options);
|
|
124
|
-
this._setDerived();
|
|
125
159
|
|
|
126
|
-
// Re-set the values that were previously children or collections
|
|
160
|
+
this._setDerived(); // Re-set the values that were previously children or collections
|
|
161
|
+
|
|
162
|
+
|
|
127
163
|
this._initUnsetValues();
|
|
128
164
|
},
|
|
129
165
|
// If there is a model returned from a derived property, and the model
|
|
@@ -131,17 +167,19 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
131
167
|
_setDerived: function _setDerived() {
|
|
132
168
|
for (var _i = 0, _Object$keys = Object.keys(this._derived); _i < _Object$keys.length; _i++) {
|
|
133
169
|
var derivedKey = _Object$keys[_i];
|
|
170
|
+
|
|
134
171
|
if (!this._data[derivedKey]) {
|
|
135
172
|
continue;
|
|
136
173
|
}
|
|
174
|
+
|
|
137
175
|
if (this[derivedKey] instanceof _ampersandModel.default) {
|
|
138
176
|
for (var _i2 = 0, _Object$keys2 = Object.keys(this._data[derivedKey]); _i2 < _Object$keys2.length; _i2++) {
|
|
139
177
|
var derivedProp = _Object$keys2[_i2];
|
|
140
178
|
this[derivedKey].set(derivedProp, this._data[derivedKey][derivedProp]);
|
|
141
179
|
}
|
|
142
|
-
}
|
|
180
|
+
} // If it's a collection, we can just pass the data straight in
|
|
181
|
+
|
|
143
182
|
|
|
144
|
-
// If it's a collection, we can just pass the data straight in
|
|
145
183
|
if (this[derivedKey] instanceof _ampersandRestCollection.default) {
|
|
146
184
|
this[derivedKey].set(this._data[derivedKey]);
|
|
147
185
|
}
|
|
@@ -150,15 +188,19 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
150
188
|
// Internal function. Used by collection as well.
|
|
151
189
|
_matchesURL: function _matchesURL(url) {
|
|
152
190
|
var matchesDetail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
191
|
+
|
|
153
192
|
if (!this.modelName || this.urlRoot() === _api.Api.getURL()) {
|
|
154
193
|
return false;
|
|
155
194
|
}
|
|
195
|
+
|
|
156
196
|
var replacements = _lodash.default.extend({}, {
|
|
157
197
|
detailKey: this.detailType
|
|
158
198
|
}, this.urlMatchKeys);
|
|
199
|
+
|
|
159
200
|
var regexes = Object.keys(replacements).reduce(function (result, key) {
|
|
160
201
|
var type = replacements[key];
|
|
161
202
|
var name = key.replace(/\./g, "_");
|
|
203
|
+
|
|
162
204
|
if (type === "number") {
|
|
163
205
|
result[name] = "\\d+";
|
|
164
206
|
} else if (type === "uuid") {
|
|
@@ -168,45 +210,50 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
168
210
|
} else {
|
|
169
211
|
throw new Error("Unknown regex type '".concat(type, "'."));
|
|
170
212
|
}
|
|
171
|
-
return result;
|
|
172
|
-
}, {});
|
|
173
213
|
|
|
174
|
-
|
|
214
|
+
return result;
|
|
215
|
+
}, {}); // Create a starting regex string with variables. Strips the root url so that it could
|
|
175
216
|
// be read from any server.
|
|
217
|
+
|
|
176
218
|
var urlWithoutRoot = this.urlRoot().replace(_api.Api.getURL(), "");
|
|
177
219
|
var urlStructure = urlWithoutRoot.slice();
|
|
220
|
+
|
|
178
221
|
if (matchesDetail) {
|
|
179
222
|
urlStructure += "{detailKey}/";
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
// Let's test if the url has even a remote chance of matching
|
|
223
|
+
} // Let's test if the url has even a remote chance of matching
|
|
183
224
|
// the url (like a partial match, any part without variables).
|
|
184
225
|
// If that doesn't match, we can sometimes prevent a nasty log
|
|
185
226
|
// error from being thrown.
|
|
227
|
+
|
|
228
|
+
|
|
186
229
|
var split = urlStructure.split("/");
|
|
187
230
|
var argIndex = split.findIndex(function (val) {
|
|
188
231
|
return val.indexOf("{") === 0;
|
|
189
232
|
});
|
|
233
|
+
|
|
190
234
|
if (argIndex >= 0) {
|
|
191
235
|
var attemptedURLWithoutRoot = url.replace(_api.Api.getURL(), "");
|
|
192
236
|
var partial = split.slice(0, argIndex).join("/");
|
|
237
|
+
|
|
193
238
|
if (attemptedURLWithoutRoot.indexOf(partial) !== 0) {
|
|
194
239
|
return false;
|
|
195
240
|
}
|
|
196
|
-
}
|
|
241
|
+
} // Replace keys with regexes
|
|
242
|
+
|
|
197
243
|
|
|
198
|
-
// Replace keys with regexes
|
|
199
244
|
var interpolatedString;
|
|
245
|
+
|
|
200
246
|
try {
|
|
201
247
|
interpolatedString = _lodash.default.template(urlStructure.replace(/\./g, "_"), {
|
|
202
248
|
interpolate: /{([\s\S\.]+?)}/g
|
|
203
249
|
})(regexes);
|
|
204
250
|
} catch (e) {
|
|
205
251
|
_log.default.error((0, _dedentJs.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t\t\t\tFailed to match URL '", "' for model '", "'.\n\t\t\t\tThis is usually because the regex type for a key hasn't been set.\n\t\t\t\tError: "])), url, this.modelName), e);
|
|
252
|
+
|
|
206
253
|
return false;
|
|
207
|
-
}
|
|
254
|
+
} // Convert into a regex and test if url matches
|
|
255
|
+
|
|
208
256
|
|
|
209
|
-
// Convert into a regex and test if url matches
|
|
210
257
|
var baseString = ".*".concat(interpolatedString.replace(/\//m, "/"), "$");
|
|
211
258
|
var re = new RegExp(baseString);
|
|
212
259
|
return re.test(url);
|
|
@@ -221,24 +268,29 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
221
268
|
_getIDFromURL: function _getIDFromURL(url) {
|
|
222
269
|
var resource = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
223
270
|
var resourceURL = resource || this.getResourceURL();
|
|
271
|
+
|
|
224
272
|
if (!url || !resourceURL) {
|
|
225
273
|
return null;
|
|
226
274
|
}
|
|
275
|
+
|
|
227
276
|
var urlPath = _url.default.parse(url).path;
|
|
228
|
-
var resourceURLPath = _url.default.parse(resourceURL).path;
|
|
229
277
|
|
|
230
|
-
// Remove the '/api' if present
|
|
278
|
+
var resourceURLPath = _url.default.parse(resourceURL).path; // Remove the '/api' if present
|
|
279
|
+
|
|
280
|
+
|
|
231
281
|
var resourceEnd = resourceURLPath.split("/api").join("");
|
|
232
|
-
var urlEnd = urlPath.split("/api").join("");
|
|
282
|
+
var urlEnd = urlPath.split("/api").join(""); // If they are the same, there is no id at the end
|
|
233
283
|
|
|
234
|
-
// If they are the same, there is no id at the end
|
|
235
284
|
if (!urlEnd || urlEnd === resourceEnd) {
|
|
236
285
|
return null;
|
|
237
286
|
}
|
|
287
|
+
|
|
238
288
|
var idStr = urlEnd.split(resourceEnd).join("");
|
|
289
|
+
|
|
239
290
|
if ((idStr.match(/\//g) || []).length === 1) {
|
|
240
291
|
return parseInt(idStr.slice(0, -1), 10);
|
|
241
292
|
}
|
|
293
|
+
|
|
242
294
|
return null;
|
|
243
295
|
},
|
|
244
296
|
// Public version for details only
|
|
@@ -257,9 +309,11 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
257
309
|
if (typeof currentVal === "undefined") {
|
|
258
310
|
return false;
|
|
259
311
|
}
|
|
312
|
+
|
|
260
313
|
if (currentVal || newVal) {
|
|
261
314
|
return (0, _moment.default)(currentVal).isSame((0, _moment.default)(newVal));
|
|
262
315
|
}
|
|
316
|
+
|
|
263
317
|
return currentVal !== newVal;
|
|
264
318
|
}
|
|
265
319
|
},
|
|
@@ -283,6 +337,7 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
283
337
|
}
|
|
284
338
|
}
|
|
285
339
|
},
|
|
340
|
+
|
|
286
341
|
/**
|
|
287
342
|
* @property {number} [id]
|
|
288
343
|
*/
|
|
@@ -292,6 +347,7 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
292
347
|
required: false
|
|
293
348
|
}
|
|
294
349
|
},
|
|
350
|
+
|
|
295
351
|
/*
|
|
296
352
|
* Overridable serialization for sending data to
|
|
297
353
|
* the server
|
|
@@ -301,23 +357,29 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
301
357
|
},
|
|
302
358
|
_registerChildModel: function _registerChildModel(states, prop, model) {
|
|
303
359
|
var Model = _stateRegister.registeredStates[model];
|
|
360
|
+
|
|
304
361
|
if (!Model) {
|
|
305
362
|
throw new Error("'".concat(model, "' not found! Did you forget to import it on the '").concat(this.modelName, "' model?"));
|
|
306
363
|
}
|
|
364
|
+
|
|
307
365
|
this._children[prop] = Model;
|
|
308
366
|
},
|
|
309
367
|
_registerCollection: function _registerCollection(state, prop, collection) {
|
|
310
368
|
var Collection = state[collection];
|
|
369
|
+
|
|
311
370
|
if (!Collection) {
|
|
312
371
|
throw new Error("'".concat(collection, "' not found! Did you forget to import it on the '").concat(this.modelName, "' model?"));
|
|
313
372
|
}
|
|
373
|
+
|
|
314
374
|
this._collections[prop] = Collection;
|
|
315
375
|
},
|
|
376
|
+
|
|
316
377
|
/*
|
|
317
378
|
* Replace strings respresenting a registered model/collection the function
|
|
318
379
|
*/
|
|
319
380
|
registerStates: function registerStates() {
|
|
320
381
|
var _this = this;
|
|
382
|
+
|
|
321
383
|
// Loop through children and replace any parent objects directly to stop
|
|
322
384
|
// maximum stack overflows
|
|
323
385
|
_lodash.default.each(this._children, function (model, prop) {
|
|
@@ -325,10 +387,9 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
325
387
|
if (_this._options.parent && model === _this._options.parent._registerName) {
|
|
326
388
|
// This part is important, if the link stays when there's a circular dependency,
|
|
327
389
|
// this will continue forever.
|
|
328
|
-
delete _this._children[prop];
|
|
329
|
-
|
|
330
|
-
// Can be a string or an object so we use "any". We add the definition
|
|
390
|
+
delete _this._children[prop]; // Can be a string or an object so we use "any". We add the definition
|
|
331
391
|
// so that we can retrieve this value later.
|
|
392
|
+
|
|
332
393
|
_this._definition[prop] = {
|
|
333
394
|
type: "any"
|
|
334
395
|
};
|
|
@@ -337,9 +398,9 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
337
398
|
_this._registerChildModel(_stateRegister.registeredStates, prop, model);
|
|
338
399
|
}
|
|
339
400
|
}
|
|
340
|
-
}, this);
|
|
401
|
+
}, this); // Loop throught the collections and replace with the registered collection
|
|
402
|
+
|
|
341
403
|
|
|
342
|
-
// Loop throught the collections and replace with the registered collection
|
|
343
404
|
_lodash.default.each(this._collections, function (collection, prop) {
|
|
344
405
|
if (typeof collection === "string") {
|
|
345
406
|
_this._registerCollection(_stateRegister.registeredStates, prop, collection);
|
|
@@ -348,14 +409,15 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
348
409
|
},
|
|
349
410
|
_updateResponse: function _updateResponse(response) {
|
|
350
411
|
var _this2 = this;
|
|
412
|
+
|
|
351
413
|
this._data = response || {};
|
|
414
|
+
|
|
352
415
|
if (!response) {
|
|
353
416
|
return;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
// Set previously-initialised children & collections with new
|
|
417
|
+
} // Set previously-initialised children & collections with new
|
|
357
418
|
// data retrieved during the fetch
|
|
358
419
|
|
|
420
|
+
|
|
359
421
|
Object.keys(this._children).forEach(function (key) {
|
|
360
422
|
if (response[key]) {
|
|
361
423
|
_this2[key] = response[key];
|
|
@@ -369,33 +431,41 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
369
431
|
},
|
|
370
432
|
save: function save() {
|
|
371
433
|
var _this3 = this;
|
|
434
|
+
|
|
372
435
|
return _ampersandModel.default.prototype.save.apply(this, arguments).tap(function (response) {
|
|
373
436
|
_this3._updateResponse(response);
|
|
374
437
|
});
|
|
375
438
|
},
|
|
376
439
|
fetch: function fetch() {
|
|
377
440
|
var _this4 = this;
|
|
441
|
+
|
|
378
442
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
443
|
+
|
|
379
444
|
if (options.url) {
|
|
380
445
|
this._url = options.url;
|
|
381
446
|
}
|
|
447
|
+
|
|
382
448
|
this._options = _lodash.default.extend({}, this._options, options);
|
|
383
449
|
this.isFetching = true;
|
|
384
450
|
return _ampersandModel.default.prototype.fetch.apply(this, arguments).tap(function (response) {
|
|
385
451
|
_this4._isFetched = true;
|
|
386
452
|
_this4.isFetching = false;
|
|
453
|
+
|
|
387
454
|
_this4._updateResponse(response);
|
|
388
455
|
});
|
|
389
456
|
},
|
|
390
457
|
options: function options() {
|
|
391
458
|
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
459
|
+
|
|
392
460
|
if (options.url) {
|
|
393
461
|
this._url = options.url;
|
|
394
462
|
}
|
|
463
|
+
|
|
395
464
|
return (0, _superagentBluebirdPromise.default)("OPTIONS", this.url()).set(BaseModel.Auth.headers).then(function (res) {
|
|
396
465
|
if (res.body && res.body.actions) {
|
|
397
466
|
return res.body.actions;
|
|
398
467
|
}
|
|
468
|
+
|
|
399
469
|
return null;
|
|
400
470
|
});
|
|
401
471
|
},
|
|
@@ -404,11 +474,15 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
404
474
|
},
|
|
405
475
|
getSafeAttrs: function getSafeAttrs(key) {
|
|
406
476
|
var _this5 = this;
|
|
477
|
+
|
|
407
478
|
if (!_lodash.default.isUndefined(key)) {
|
|
408
479
|
return !_lodash.default.isUndefined(this._expandedValues[key]) ? this._expandedValues[key] : this._values[key];
|
|
409
480
|
}
|
|
481
|
+
|
|
410
482
|
var attrs = {};
|
|
483
|
+
|
|
411
484
|
var keys = _lodash.default.uniq(_lodash.default.concat(_lodash.default.concat(Object.keys(this._unsetChildren), Object.keys(this._unsetCollections)), Object.keys(this._values)));
|
|
485
|
+
|
|
412
486
|
keys.forEach(function (key) {
|
|
413
487
|
if (!_lodash.default.isUndefined(_this5._values[key])) {
|
|
414
488
|
attrs[key] = _this5._values[key];
|
|
@@ -423,6 +497,7 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
423
497
|
// definitions for them (necessary for Ampersand State to treat them as values)
|
|
424
498
|
_convertToValues: function _convertToValues() {
|
|
425
499
|
var _this6 = this;
|
|
500
|
+
|
|
426
501
|
Object.keys(this._children).forEach(function (key) {
|
|
427
502
|
_this6._definition[key] = {
|
|
428
503
|
type: "any"
|
|
@@ -442,11 +517,14 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
442
517
|
// The default version always creates an empty model
|
|
443
518
|
_initChildren: function _initChildren() {
|
|
444
519
|
var child;
|
|
520
|
+
|
|
445
521
|
if (!this._children) {
|
|
446
522
|
return;
|
|
447
523
|
}
|
|
524
|
+
|
|
448
525
|
for (child in this._children) {
|
|
449
526
|
var val = this._data[child];
|
|
527
|
+
|
|
450
528
|
if (val) {
|
|
451
529
|
// Assume here that if it's a string, it's a url.
|
|
452
530
|
if (typeof val === "string") {
|
|
@@ -454,14 +532,15 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
454
532
|
url: val
|
|
455
533
|
};
|
|
456
534
|
}
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
// If hydrate is set to false, this will be the name of the child and
|
|
535
|
+
} // If hydrate is set to false, this will be the name of the child and
|
|
460
536
|
// not the constructor. We want to add the non-hydrated url if so.
|
|
537
|
+
|
|
538
|
+
|
|
461
539
|
if (typeof this._children[child] === "function") {
|
|
462
540
|
this._safeSet(child, new this._children[child](val, {
|
|
463
541
|
parent: this
|
|
464
542
|
}));
|
|
543
|
+
|
|
465
544
|
this.listenTo(this[child], "all", this._getCachedEventBubblingHandler(child));
|
|
466
545
|
} else {
|
|
467
546
|
this._safeSet(child, val);
|
|
@@ -471,21 +550,24 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
471
550
|
// Override the initialization of collections to pass in data to the constructor.
|
|
472
551
|
_initCollections: function _initCollections() {
|
|
473
552
|
var coll;
|
|
553
|
+
|
|
474
554
|
if (!this._collections) {
|
|
475
555
|
return;
|
|
476
556
|
}
|
|
557
|
+
|
|
477
558
|
for (coll in this._collections) {
|
|
478
559
|
var val = this._data[coll];
|
|
560
|
+
|
|
479
561
|
if (val) {
|
|
480
562
|
if (typeof val === "string") {
|
|
481
563
|
val = {
|
|
482
564
|
url: val
|
|
483
565
|
};
|
|
484
566
|
}
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
// If hydrate is set to false, this will be the name of the collection and
|
|
567
|
+
} // If hydrate is set to false, this will be the name of the collection and
|
|
488
568
|
// not the constructor. We want to add the non-hydrated array if so.
|
|
569
|
+
|
|
570
|
+
|
|
489
571
|
if (typeof this._collections[coll] === "function") {
|
|
490
572
|
this._safeSet(coll, new this._collections[coll](val, {
|
|
491
573
|
parent: this
|
|
@@ -497,11 +579,13 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
497
579
|
},
|
|
498
580
|
_initUnsetValues: function _initUnsetValues() {
|
|
499
581
|
var _this7 = this;
|
|
582
|
+
|
|
500
583
|
_lodash.default.each(this._unsetChildren, function (child, key) {
|
|
501
584
|
var tmpValue = _this7._values[key];
|
|
502
585
|
replacePropertyDefinition(_this7, key);
|
|
503
586
|
_this7[key] = tmpValue;
|
|
504
587
|
});
|
|
588
|
+
|
|
505
589
|
_lodash.default.each(this._unsetCollections, function (child, key) {
|
|
506
590
|
var tmpValue = _this7._values[key];
|
|
507
591
|
replacePropertyDefinition(_this7, key);
|
|
@@ -520,17 +604,22 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
520
604
|
if (path === null) {
|
|
521
605
|
return null;
|
|
522
606
|
}
|
|
607
|
+
|
|
523
608
|
var url = path;
|
|
609
|
+
|
|
524
610
|
if (url.slice(-1) !== "/" && url.indexOf("?") === -1) {
|
|
525
611
|
url += "/";
|
|
526
612
|
}
|
|
613
|
+
|
|
527
614
|
if (Object.keys(this.queryData).length) {
|
|
528
615
|
url += "?".concat(_qs.default.stringify(this.queryData, {
|
|
529
616
|
arrayFormat: "repeat"
|
|
530
617
|
}));
|
|
531
618
|
}
|
|
619
|
+
|
|
532
620
|
return url;
|
|
533
621
|
},
|
|
622
|
+
|
|
534
623
|
/*
|
|
535
624
|
* Get url
|
|
536
625
|
* @return {String}
|
|
@@ -539,6 +628,7 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
539
628
|
if (this._url && this.isNew()) {
|
|
540
629
|
return this.getFullURLPath(this._url);
|
|
541
630
|
}
|
|
631
|
+
|
|
542
632
|
return this.getFullURLPath(this.getPlainURL());
|
|
543
633
|
},
|
|
544
634
|
// Returns url without query data
|
|
@@ -546,27 +636,34 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
546
636
|
if (!this.modelName) {
|
|
547
637
|
return null;
|
|
548
638
|
}
|
|
639
|
+
|
|
549
640
|
var resp = _ampersandModel.default.prototype.url.call(this);
|
|
641
|
+
|
|
550
642
|
if (resp.slice(-1) !== "/" && resp.indexOf("?") === -1) {
|
|
551
643
|
resp += "/";
|
|
552
644
|
}
|
|
645
|
+
|
|
553
646
|
if (!resp.includes("{") || !resp.includes("}")) {
|
|
554
647
|
return resp;
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
// Replace any values in a url with one from the model.
|
|
648
|
+
} // Replace any values in a url with one from the model.
|
|
558
649
|
// So if you have /path/to/{model.id}/
|
|
559
650
|
// It will check the model from "this.model.id" and replace
|
|
560
651
|
// it in the url
|
|
652
|
+
|
|
653
|
+
|
|
561
654
|
var re = /(\{(?:\w+\.?)+\})/g;
|
|
562
655
|
var matches = resp.match(re) || [];
|
|
656
|
+
|
|
563
657
|
var _iterator = _createForOfIteratorHelper(matches),
|
|
564
|
-
|
|
658
|
+
_step;
|
|
659
|
+
|
|
565
660
|
try {
|
|
566
661
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
567
662
|
var match = _step.value;
|
|
568
663
|
var path = match.slice(1, -1);
|
|
664
|
+
|
|
569
665
|
var replacement = _lodash.default.get(this, path);
|
|
666
|
+
|
|
570
667
|
if (replacement) {
|
|
571
668
|
resp = resp.replace(match, replacement);
|
|
572
669
|
} else if (!this.isNew()) {
|
|
@@ -578,18 +675,22 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
578
675
|
} finally {
|
|
579
676
|
_iterator.f();
|
|
580
677
|
}
|
|
678
|
+
|
|
581
679
|
return resp;
|
|
582
680
|
},
|
|
583
681
|
getResourceURL: function getResourceURL() {
|
|
584
682
|
if (this.modelName === null && !Object.keys(_api.Api.resources).length) {
|
|
585
683
|
return null;
|
|
586
684
|
}
|
|
685
|
+
|
|
587
686
|
if (!Object.keys(_api.Api.resources).length) {
|
|
588
687
|
return "/".concat(this.modelName, "/");
|
|
589
688
|
}
|
|
689
|
+
|
|
590
690
|
if (this.modelName === null) {
|
|
591
691
|
return _api.Api.getURL();
|
|
592
692
|
}
|
|
693
|
+
|
|
593
694
|
return _api.Api.getResourceURL(this.modelName);
|
|
594
695
|
},
|
|
595
696
|
sync: function sync() {
|
|
@@ -597,22 +698,28 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
597
698
|
},
|
|
598
699
|
serialize: function serialize() {
|
|
599
700
|
var _this8 = this;
|
|
701
|
+
|
|
600
702
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
601
703
|
derived: true
|
|
602
704
|
};
|
|
705
|
+
|
|
603
706
|
// Return nothing if data passed is falsy. More than likely this is
|
|
604
707
|
// a null value
|
|
605
708
|
if (!this._data) {
|
|
606
709
|
return {};
|
|
607
710
|
}
|
|
711
|
+
|
|
608
712
|
var data = _ampersandModel.default.prototype.serialize.apply(this, arguments);
|
|
713
|
+
|
|
609
714
|
data.url = this.url();
|
|
610
715
|
var derived = this.getAttributes(opts);
|
|
611
716
|
derived = Object.keys(derived).reduce(function (object, key) {
|
|
612
717
|
var value = derived[key];
|
|
718
|
+
|
|
613
719
|
if (value instanceof _ampersandRestCollection.default || value instanceof _ampersandModel.default) {
|
|
614
720
|
value = value.toJSON();
|
|
615
721
|
}
|
|
722
|
+
|
|
616
723
|
object[key] = value;
|
|
617
724
|
return object;
|
|
618
725
|
}, {});
|
|
@@ -632,6 +739,7 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
632
739
|
// be hydrated
|
|
633
740
|
_retrieveURL: function _retrieveURL(item) {
|
|
634
741
|
var _this9 = this;
|
|
742
|
+
|
|
635
743
|
if (_lodash.default.isUndefined(item) || item === null) {
|
|
636
744
|
return item;
|
|
637
745
|
} else if (typeof item === "string") {
|
|
@@ -649,9 +757,13 @@ var BaseModel = exports.BaseModel = _ampersandModel.default.extend( /** @lends m
|
|
|
649
757
|
} else if ((0, _typeof2.default)(item) === "object" && item !== null) {
|
|
650
758
|
return typeof item.url === "function" ? item.url() : item.url;
|
|
651
759
|
}
|
|
760
|
+
|
|
652
761
|
return null;
|
|
653
762
|
}
|
|
654
763
|
});
|
|
764
|
+
|
|
765
|
+
exports.BaseModel = BaseModel;
|
|
766
|
+
|
|
655
767
|
function replacePropertyDefinition(object, name) {
|
|
656
768
|
function addCollection(value) {
|
|
657
769
|
var data = typeof value === "string" ? {
|
|
@@ -663,6 +775,7 @@ function replacePropertyDefinition(object, name) {
|
|
|
663
775
|
object._expandedValues[name] = collection;
|
|
664
776
|
return object._expandedValues[name];
|
|
665
777
|
}
|
|
778
|
+
|
|
666
779
|
function addChild(value) {
|
|
667
780
|
var data = typeof value === "string" ? {
|
|
668
781
|
url: value
|
|
@@ -673,16 +786,19 @@ function replacePropertyDefinition(object, name) {
|
|
|
673
786
|
object._expandedValues[name] = child;
|
|
674
787
|
return object._expandedValues[name];
|
|
675
788
|
}
|
|
789
|
+
|
|
676
790
|
function expandCollection(value) {
|
|
677
791
|
object._collections[name] = object._unsetCollections[name];
|
|
678
792
|
delete object._unsetCollections[name];
|
|
679
793
|
return addCollection(value);
|
|
680
794
|
}
|
|
795
|
+
|
|
681
796
|
function expandChild(value) {
|
|
682
797
|
object._children[name] = object._unsetChildren[name];
|
|
683
798
|
delete object._unsetChildren[name];
|
|
684
799
|
return addChild(value);
|
|
685
800
|
}
|
|
801
|
+
|
|
686
802
|
Object.defineProperty(object, name, {
|
|
687
803
|
set: function set(val) {
|
|
688
804
|
if (_lodash.default.includes(Object.keys(object._children), name)) {
|
|
@@ -709,28 +825,34 @@ function replacePropertyDefinition(object, name) {
|
|
|
709
825
|
if (!this._values) {
|
|
710
826
|
throw new Error("Trying to retrieve value ".concat(name, " of model ").concat(object.modelName, " during constructor"));
|
|
711
827
|
}
|
|
828
|
+
|
|
712
829
|
if ((_lodash.default.includes(Object.keys(object._collections), name) || _lodash.default.includes(Object.keys(object._children), name)) && _lodash.default.includes(Object.keys(object._expandedValues), name)) {
|
|
713
830
|
return object._expandedValues[name];
|
|
714
831
|
}
|
|
832
|
+
|
|
715
833
|
var value = object._values[name];
|
|
834
|
+
|
|
716
835
|
if (this.isFetching) {
|
|
717
836
|
return value;
|
|
718
837
|
}
|
|
838
|
+
|
|
719
839
|
if ((_lodash.default.isUndefined(value) || value === null) && !(object._unsetChildren[name] && object._unsetChildren[name].canBeEmpty) && !(object._unsetCollections[name] && object._unsetCollections[name].canBeEmpty)) {
|
|
720
840
|
return value;
|
|
721
841
|
}
|
|
842
|
+
|
|
722
843
|
if (_lodash.default.includes(Object.keys(object._unsetCollections), name)) {
|
|
723
844
|
return expandCollection(value);
|
|
724
845
|
} else if (_lodash.default.includes(Object.keys(object._unsetChildren), name)) {
|
|
725
846
|
return expandChild(value);
|
|
726
847
|
}
|
|
848
|
+
|
|
727
849
|
return value;
|
|
728
850
|
},
|
|
729
851
|
configurable: true
|
|
730
852
|
});
|
|
731
|
-
}
|
|
853
|
+
} // Make matchesURL available as a static method
|
|
854
|
+
|
|
732
855
|
|
|
733
|
-
// Make matchesURL available as a static method
|
|
734
856
|
BaseModel.matchesURL = function (url) {
|
|
735
857
|
return this.prototype.matchesURL(url);
|
|
736
858
|
};
|