UNPKG

@wepublish/api

Version:
102 lines 4.66 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MailTemplatesResolver = void 0; const tslib_1 = require("tslib"); const graphql_1 = require("@nestjs/graphql"); const api_1 = require("../../../../mail-api/src"); const api_2 = require("../../../../permissions-api/src"); const mail_template_sync_service_1 = require("./mail-template-sync.service"); const mail_template_model_1 = require("./mail-template.model"); const client_1 = require("@prisma/client"); let MailTemplatesResolver = exports.MailTemplatesResolver = class MailTemplatesResolver { constructor(prismaService, syncService, mailContext) { this.prismaService = prismaService; this.syncService = syncService; this.mailContext = mailContext; } mailTemplates() { return tslib_1.__awaiter(this, void 0, void 0, function* () { const templates = yield this.prismaService.mailTemplate.findMany({ orderBy: [{ remoteMissing: 'asc' }, { id: 'asc' }] }); return templates; }); } provider() { return tslib_1.__awaiter(this, void 0, void 0, function* () { const provider = yield this.mailContext.mailProvider; return { name: provider.name }; }); } syncTemplates() { return tslib_1.__awaiter(this, void 0, void 0, function* () { yield this.syncService.synchronizeTemplates(); }); } status(template) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const usedTemplates = yield this.mailContext.getUsedTemplateIdentifiers(); if (!usedTemplates.includes(template.externalMailTemplateId)) { return api_1.MailTemplateStatus.Unused; } if (template.remoteMissing) { return api_1.MailTemplateStatus.RemoteMissing; } return api_1.MailTemplateStatus.Ok; }); } url(template) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const provider = yield this.mailContext.mailProvider; return provider.getTemplateUrl(template); }); } }; tslib_1.__decorate([ (0, api_2.Permissions)(api_2.CanGetMailTemplates), (0, graphql_1.Query)(() => [mail_template_model_1.MailTemplateWithUrlAndStatusModel], { description: `Return all mail templates` }), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", Promise) ], MailTemplatesResolver.prototype, "mailTemplates", null); tslib_1.__decorate([ (0, api_2.Permissions)(api_2.CanGetMailTemplates), (0, graphql_1.Query)(() => mail_template_model_1.MailProviderModel), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", Promise) ], MailTemplatesResolver.prototype, "provider", null); tslib_1.__decorate([ (0, api_2.Permissions)(api_2.CanSyncMailTemplates), (0, graphql_1.Mutation)(() => Boolean, { nullable: true }), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", Promise) ], MailTemplatesResolver.prototype, "syncTemplates", null); tslib_1.__decorate([ (0, graphql_1.ResolveField)('status', () => api_1.MailTemplateStatus, { description: 'Status of the template' }), tslib_1.__param(0, (0, graphql_1.Parent)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [mail_template_model_1.MailTemplateWithUrlAndStatusModel]), tslib_1.__metadata("design:returntype", Promise) ], MailTemplatesResolver.prototype, "status", null); tslib_1.__decorate([ (0, graphql_1.ResolveField)('url', () => api_1.MailTemplateStatus, { description: 'External URL of the template' }), tslib_1.__param(0, (0, graphql_1.Parent)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [mail_template_model_1.MailTemplateWithUrlAndStatusModel]), tslib_1.__metadata("design:returntype", Promise) ], MailTemplatesResolver.prototype, "url", null); exports.MailTemplatesResolver = MailTemplatesResolver = tslib_1.__decorate([ (0, graphql_1.Resolver)(() => mail_template_model_1.MailTemplateWithUrlAndStatusModel), tslib_1.__metadata("design:paramtypes", [client_1.PrismaClient, mail_template_sync_service_1.MailTemplateSyncService, api_1.MailContext]) ], MailTemplatesResolver); //# sourceMappingURL=mail-template.resolver.js.map