UNPKG

@tsed/formio

Version:
42 lines (41 loc) 1.62 kB
import { __decorate, __metadata } from "tslib"; import { Inject } from "@tsed/di"; import async from "async"; import { Alter } from "../decorators/alter.js"; import { FormioDatabase } from "../services/FormioDatabase.js"; let AlterTemplateImportSteps = class AlterTemplateImportSteps { transform(queue, install, template) { queue.push(async.apply(this.importSubmissions.bind(this), template)); return queue; } async importSubmissions(template, done) { if (template && template.submissions) { // clean all submissions await this.database.submissionModel.deleteMany({}); const ctxData = await this.database.getFormioMapper(); const entries = Object.entries(template.submissions); for (const entry of entries) { for (const submission of entry[1]) { await this.importSubmission({ ...submission, form: submission.form || entry[0] }, ctxData); } } } done(); } async importSubmission(submission, mapper) { const value = { ...mapper.mapToImport(submission), roles: [...new Set(mapper.mapToImport(submission.roles || []))].filter(Boolean) }; await this.database.submissionModel.create(value); return value; } }; __decorate([ Inject(), __metadata("design:type", FormioDatabase) ], AlterTemplateImportSteps.prototype, "database", void 0); AlterTemplateImportSteps = __decorate([ Alter("templateImportSteps") ], AlterTemplateImportSteps); export { AlterTemplateImportSteps };