ngx-resource-gearheart
Version:
Angular2 resource module with simple decorators. Customized by Gearheart.
63 lines (62 loc) • 2.21 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var ResourceModel = (function () {
function ResourceModel() {
this.$cachedRelated = {};
this.$primaryKey = 'id';
var resource = Reflect.getMetadata('resource', this.constructor);
this.$resource = !!resource && resource.constructor.instance;
}
ResourceModel.create = function (data, commit) {
if (data === void 0) { data = {}; }
if (commit === void 0) { commit = true; }
console.error('Model static create is not available anymore. Please use new YourModel() instead');
};
ResourceModel.prototype.$setData = function (data) {
Object.assign(this, data);
return this;
};
ResourceModel.prototype.$save = function () {
if (this.isNew()) {
return this.$create();
}
else {
return this.$update();
}
};
ResourceModel.prototype.$create = function () {
return this.$resource_method('save');
};
ResourceModel.prototype.$update = function () {
return this.$resource_method('update');
};
ResourceModel.prototype.$remove = function () {
return this.$resource_method('remove');
};
ResourceModel.prototype.toJSON = function () {
var retObj = {};
for (var propName in this) {
if (!(this[propName] instanceof Function) && !(propName.charAt(0) === '$')) {
retObj[propName] = this[propName];
}
}
return retObj;
};
ResourceModel.prototype.isNew = function () {
return !this[this.$primaryKey];
};
ResourceModel.prototype.$resource_method = function (methodName) {
if (!this.$resource) {
console.error("Your Resource is not set. Please use resource.createModel() method to create model.");
return this;
}
if (!this.$resource[methodName]) {
console.error("Your Resource has no implemented " + methodName + " method.");
return this;
}
this.$resource[methodName](this);
return this;
};
return ResourceModel;
}());
exports.ResourceModel = ResourceModel;