@lomray/microservice-users
Version:
Users microservice based on NodeJS & inverted json.
61 lines (57 loc) • 2.3 kB
JavaScript
;
var tslib = require('tslib');
var microserviceHelpers = require('@lomray/microservice-helpers');
var classTransformer = require('class-transformer');
var classValidator = require('class-validator');
var typeorm = require('typeorm');
var confirmCode = require('../../entities/confirm-code.js');
var user = require('../../entities/user.js');
var user$1 = require('../../repositories/user.js');
var factory = require('../../services/confirm/factory.js');
var signUp$1 = require('../../services/sign-up.js');
class SignUpInput {
}
tslib.__decorate([
classValidator.IsObject(),
classTransformer.Type(() => user),
tslib.__metadata("design:type", Object)
], SignUpInput.prototype, "fields", void 0);
tslib.__decorate([
classValidator.IsEnum(factory.ConfirmBy),
tslib.__metadata("design:type", String)
], SignUpInput.prototype, "confirmBy", void 0);
tslib.__decorate([
microserviceHelpers.IsType(['string', 'number']),
classValidator.IsNotEmpty(),
tslib.__metadata("design:type", Object)
], SignUpInput.prototype, "confirmCode", void 0);
tslib.__decorate([
classValidator.IsObject(),
microserviceHelpers.IsUndefinable(),
tslib.__metadata("design:type", Object)
], SignUpInput.prototype, "context", void 0);
class SignUpOutput {
}
tslib.__decorate([
microserviceHelpers.IsMeta(),
classTransformer.Type(() => user),
tslib.__metadata("design:type", user)
], SignUpOutput.prototype, "user", void 0);
/**
* Sign up user
* NOTE: before call this method, you need send confirmation code, see 'confirm-code.send'
*/
const signUp = microserviceHelpers.Endpoint.custom(() => ({ input: SignUpInput, output: SignUpOutput, description: 'Sign up user' }), ({ fields, confirmBy, confirmCode: confirmCode$1, context }) => tslib.__awaiter(void 0, void 0, void 0, function* () {
const confirmService = factory.Factory.create(confirmBy, typeorm.getRepository(confirmCode), context);
const service = signUp$1.init({
fields,
isConfirmed: () => confirmService.verifyCode(fields[confirmBy], confirmCode$1),
repository: typeorm.getCustomRepository(user$1),
});
return {
user: yield service.register(),
};
}));
exports.SignUpInput = SignUpInput;
exports.SignUpOutput = SignUpOutput;
exports.signUp = signUp;