@wepublish/api
Version:
API core for we.publish.
91 lines • 3.95 kB
JavaScript
;
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