@iredium/butterfly
Version:
Express API Framework
26 lines (25 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseController = void 0;
var base_policy_1 = require("../policies/base_policy");
var unauthorized_1 = require("../errors/unauthorized");
var BaseController = /** @class */ (function () {
function BaseController(ServiceClass, PolicyClass) {
this.ServiceClass = ServiceClass;
this.PolicyClass = PolicyClass;
this.service = ServiceClass ? new ServiceClass() : null;
}
BaseController.prototype.authorize = function (method, record) {
if (record === void 0) { record = null; }
var policy = this.PolicyClass ? new this.PolicyClass(this.user, record) : new base_policy_1.BasePolicy(this.user, record);
if (!policy[method](record)) {
throw new unauthorized_1.UnauthorizedError();
}
};
BaseController.prototype.init = function (user) {
this.user = user;
this.service = this.ServiceClass ? new this.ServiceClass(user) : null;
};
return BaseController;
}());
exports.BaseController = BaseController;