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