From c533e103521ab90841e400049fa636a93b232d03 Mon Sep 17 00:00:00 2001 From: Pete Richards Date: Wed, 1 Nov 2017 12:09:07 -0700 Subject: [PATCH] [API] get with keystring, mark methods not implemented Update Object API such that get supports calls with either a keystring or an identifier. As save and delete are not implemented and have different calling signatures, implement them as separate methods so they can be documented separately. --- src/api/objects/ObjectAPI.js | 44 +++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src/api/objects/ObjectAPI.js b/src/api/objects/ObjectAPI.js index e11b76094c..c0c58462c3 100644 --- a/src/api/objects/ObjectAPI.js +++ b/src/api/objects/ObjectAPI.js @@ -50,11 +50,18 @@ define([ this.rootProvider = new RootObjectProvider(this.rootRegistry); } + /** + * Set fallback provider, this is an internal API for legacy reasons. + * @private + */ ObjectAPI.prototype.supersecretSetFallbackProvider = function (p) { this.fallbackProvider = p; }; - // Retrieve the provider for a given key. + /** + * Retrieve the provider for a given identifier. + * @private + */ ObjectAPI.prototype.getProvider = function (identifier) { if (identifier.key === 'ROOT') { return this.rootProvider; @@ -135,27 +142,28 @@ define([ * @returns {Promise} a promise which will resolve when the domain object * has been saved, or be rejected if it cannot be saved */ + ObjectAPI.prototype.get = function (identifier) { + identifier = utils.parseKeyString(identifier); + var provider = this.getProvider(identifier); - [ - 'save', - 'delete', - 'get' - ].forEach(function (method) { - ObjectAPI.prototype[method] = function () { - var identifier = arguments[0], - provider = this.getProvider(identifier); + if (!provider) { + throw new Error('No Provider Matched'); + } - if (!provider) { - throw new Error('No Provider Matched'); - } + if (!provider.get) { + throw new Error('Provider does not support get!'); + } - if (!provider[method]) { - throw new Error('Provider does not support [' + method + '].'); - } + return provider.get(identifier); + }; - return provider[method].apply(provider, arguments); - }; - }); + ObjectAPI.prototype.delete = function () { + throw new Error('Delete not implemented'); + }; + + ObjectAPI.prototype.save = function () { + throw new Error('Save not implemented'); + }; /** * Add a root-level object.