UNPKG

@lomray/microservice-users

Version:

Users microservice based on NodeJS & inverted json.

61 lines (57 loc) 2.3 kB
'use strict'; 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;