@itrocks/signup
Version:
Handles user sign-up for @itrocks/user, with account creation and secure onboarding flow
38 lines • 1.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Signup = void 0;
const action_1 = require("@itrocks/action");
const data_to_object_1 = require("@itrocks/data-to-object");
const storage_1 = require("@itrocks/storage");
class Signup extends action_1.Action {
async html(request) {
const userType = request.type;
let templateName = 'signup';
let user = new userType;
if (Object.keys(request.request.data).length) {
await (0, data_to_object_1.dataToObject)(user, request.request.data);
const { email, login, password } = user;
if (email.length && login.length && password.length) {
const dao = (0, storage_1.dataSource)();
const found = await dao.searchOne(userType, { email })
|| await dao.searchOne(userType, { login })
|| await dao.searchOne(userType, { email: login })
|| await dao.searchOne(userType, { login: email });
if (found) {
templateName = 'signup-error';
user = found;
}
else {
await dao.save(user);
templateName = 'registered';
}
}
else {
templateName = 'signup-error';
}
}
return this.htmlTemplateResponse(user, request, __dirname + '/' + templateName + '.html');
}
}
exports.Signup = Signup;
//# sourceMappingURL=signup.js.map