Merge pull request #331 from strongloop/make-get-model-throw-when-not-found
[2.0] Make getModel throw when not found
This commit is contained in:
commit
75406f0891
|
@ -261,7 +261,7 @@ ACL.resolvePermission = function resolvePermission(acls, req) {
|
|||
* @return {Object[]} An array of ACLs
|
||||
*/
|
||||
ACL.getStaticACLs = function getStaticACLs(model, property) {
|
||||
var modelClass = loopback.getModel(model);
|
||||
var modelClass = loopback.findModel(model);
|
||||
var staticACLs = [];
|
||||
if (modelClass && modelClass.settings.acls) {
|
||||
modelClass.settings.acls.forEach(function (acl) {
|
||||
|
@ -343,7 +343,7 @@ ACL.checkPermission = function checkPermission(principalType, principalId,
|
|||
acls = acls.concat(dynACLs);
|
||||
resolved = self.resolvePermission(acls, req);
|
||||
if(resolved && resolved.permission === ACL.DEFAULT) {
|
||||
var modelClass = loopback.getModel(model);
|
||||
var modelClass = loopback.findModel(model);
|
||||
resolved.permission = (modelClass && modelClass.settings.defaultPermission) || ACL.ALLOW;
|
||||
}
|
||||
callback && callback(null, resolved);
|
||||
|
|
|
@ -128,7 +128,7 @@ Change.idForModel = function(modelName, modelId) {
|
|||
*/
|
||||
|
||||
Change.findOrCreateChange = function(modelName, modelId, callback) {
|
||||
assert(loopback.getModel(modelName), modelName + ' does not exist');
|
||||
assert(loopback.findModel(modelName), modelName + ' does not exist');
|
||||
var id = this.idForModel(modelName, modelId);
|
||||
var Change = this;
|
||||
|
||||
|
|
|
@ -176,10 +176,26 @@ registry.configureModel = function(ModelCtor, config) {
|
|||
* @param {String} modelName The model name
|
||||
* @returns {Model} The model class
|
||||
*
|
||||
* @header loopback.findModel(modelName)
|
||||
*/
|
||||
registry.findModel = function(modelName) {
|
||||
return this.Model.modelBuilder.models[modelName];
|
||||
};
|
||||
|
||||
/**
|
||||
* Look up a model class by name from all models created by
|
||||
* `loopback.createModel()`. Throw an error when no such model exists.
|
||||
*
|
||||
* @param {String} modelName The model name
|
||||
* @returns {Model} The model class
|
||||
*
|
||||
* @header loopback.getModel(modelName)
|
||||
*/
|
||||
registry.getModel = function(modelName) {
|
||||
return this.Model.modelBuilder.models[modelName];
|
||||
var model = this.findModel(modelName);
|
||||
if (model) return model;
|
||||
|
||||
throw new Error('Model not found: ' + modelName);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -107,7 +107,7 @@ describe('loopback', function() {
|
|||
});
|
||||
assert(loopback.getModel('MyModel') === MyModel);
|
||||
assert(loopback.getModel('MyCustomModel') === MyCustomModel);
|
||||
assert(loopback.getModel('Invalid') === undefined);
|
||||
assert(loopback.findModel('Invalid') === undefined);
|
||||
});
|
||||
it('should be able to get model by type', function () {
|
||||
var MyModel = loopback.createModel('MyModel', {}, {
|
||||
|
@ -124,6 +124,11 @@ describe('loopback', function() {
|
|||
assert(loopback.getModelByType(MyModel) === MyCustomModel);
|
||||
assert(loopback.getModelByType(MyCustomModel) === MyCustomModel);
|
||||
});
|
||||
|
||||
it('should throw when the model does not exist', function() {
|
||||
expect(function() { loopback.getModel(uniqueModelName); })
|
||||
.to.throw(Error, new RegExp('Model not found: ' + uniqueModelName));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue