UNPKG

@wepublish/api

Version:
91 lines 3.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SystemMailResolver = void 0; const tslib_1 = require("tslib"); const graphql_1 = require("@nestjs/graphql"); const client_1 = require("@prisma/client"); const user_decorator_1 = require("../user.decorator"); const system_mail_model_1 = require("./system-mail.model"); const api_1 = require("../../../../mail-api/src"); const common_1 = require("@nestjs/common"); let SystemMailResolver = exports.SystemMailResolver = class SystemMailResolver { constructor(prismaService, mailContext) { this.prismaService = prismaService; this.mailContext = mailContext; } systemMails() { return tslib_1.__awaiter(this, void 0, void 0, function* () { return this.getAllMails(); }); } updateSystemMail(systemMail) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const userMail = yield this.prismaService.userFlowMail.findUnique({ where: { event: systemMail.event } }); if (!userMail) { throw new common_1.NotFoundException('There is no userflow present in the database.'); } yield this.prismaService.userFlowMail.update({ where: { id: userMail.id }, data: { mailTemplate: { connect: { id: systemMail.mailTemplateId } } } }); return this.getAllMails(); }); } testSystemMail(user, event) { return tslib_1.__awaiter(this, void 0, void 0, function* () { const externalMailTemplateId = yield this.mailContext.getUserTemplateName(event); yield this.mailContext.sendMail({ mailType: api_1.mailLogType.SystemMail, recipient: user, optionalData: {}, externalMailTemplateId: externalMailTemplateId || '' }); return true; }); } getAllMails() { return tslib_1.__awaiter(this, void 0, void 0, function* () { return this.prismaService.userFlowMail.findMany({ include: { mailTemplate: true } }); }); } }; tslib_1.__decorate([ (0, graphql_1.Query)(() => [system_mail_model_1.SystemMailModel], { description: `Returns all mail flows` }), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", []), tslib_1.__metadata("design:returntype", Promise) ], SystemMailResolver.prototype, "systemMails", null); tslib_1.__decorate([ (0, graphql_1.Mutation)(() => [system_mail_model_1.SystemMailModel], { description: `Updates an existing mail flow` }), tslib_1.__param(0, (0, graphql_1.Args)()), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [system_mail_model_1.SystemMailUpdateInput]), tslib_1.__metadata("design:returntype", Promise) ], SystemMailResolver.prototype, "updateSystemMail", null); tslib_1.__decorate([ (0, graphql_1.Mutation)(() => Boolean, { description: `Sends a test email for the given event` }), tslib_1.__param(0, (0, user_decorator_1.CurrentUser)()), tslib_1.__param(1, (0, graphql_1.Args)('event', { type: () => client_1.UserEvent })), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object, String]), tslib_1.__metadata("design:returntype", Promise) ], SystemMailResolver.prototype, "testSystemMail", null); exports.SystemMailResolver = SystemMailResolver = tslib_1.__decorate([ (0, graphql_1.Resolver)(() => system_mail_model_1.SystemMailModel), tslib_1.__metadata("design:paramtypes", [client_1.PrismaClient, api_1.MailContext]) ], SystemMailResolver); //# sourceMappingURL=system-mail.resolver.js.map