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