UNPKG

@wepublish/api

Version:
38 lines 1.45 kB
"use strict"; 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