@tsed/formio
Version:
Formio package for Ts.ED framework
41 lines (40 loc) • 1.41 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Inject, Injectable } from "@tsed/di";
import { Logger } from "@tsed/logger";
import { FormioDatabase } from "./FormioDatabase.js";
let FormioInstaller = class FormioInstaller extends FormioDatabase {
async install(template, root) {
this.logger.info("Install formio template...");
template = await this.formio.importTemplate(template);
if (root) {
this.logger.info("Create root user...");
await this.createRootUser(root, template);
}
}
async createRootUser(user, template) {
const hash = await this.formio.encrypt(user.password);
return new Promise((resolve, reject) => {
this.formio.resources.submission.model.create({
form: template.resources.admin._id,
data: {
email: user.email,
password: hash
},
roles: [template.roles?.administrator._id].filter(Boolean)
}, (err, item) => {
if (err) {
return reject(err);
}
resolve(item);
});
});
}
};
__decorate([
Inject(),
__metadata("design:type", Logger)
], FormioInstaller.prototype, "logger", void 0);
FormioInstaller = __decorate([
Injectable()
], FormioInstaller);
export { FormioInstaller };