@wepublish/api
Version:
API core for we.publish.
38 lines • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SettingsGuard = void 0;
const tslib_1 = require("tslib");
const common_1 = require("@nestjs/common");
const core_1 = require("@nestjs/core");
const settings_decorator_1 = require("./settings.decorator");
const client_1 = require("@prisma/client");
let SettingsGuard = exports.SettingsGuard = class SettingsGuard {
constructor(reflector, prisma) {
this.reflector = reflector;
this.prisma = prisma;
}
canActivate(context) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const settings = this.reflector.getAllAndMerge(settings_decorator_1.SETTINGS_METADATA_KEY, [
context.getHandler(),
context.getClass()
]);
if (!settings.length) {
return true;
}
const settingList = yield this.prisma.setting.findMany({
where: {
name: {
in: settings
}
}
});
return Boolean(settingList.length) && settingList.some(setting => !!setting.value);
});
}
};
exports.SettingsGuard = SettingsGuard = tslib_1.__decorate([
(0, common_1.Injectable)(),
tslib_1.__metadata("design:paramtypes", [core_1.Reflector, client_1.PrismaClient])
], SettingsGuard);
//# sourceMappingURL=settings.guard.js.map