UNPKG

@lomray/microservice-users

Version:

Users microservice based on NodeJS & inverted json.

61 lines (57 loc) 2.22 kB
'use strict'; var tslib = require('tslib'); var microserviceHelpers = require('@lomray/microservice-helpers'); var classTransformer = require('class-transformer'); var classValidator = require('class-validator'); var classValidatorJsonschema = require('class-validator-jsonschema'); var typeorm = require('typeorm'); var idProvider = require('../../constants/id-provider.js'); var user = require('../../entities/user.js'); var factory = require('../../services/identity-provider/factory.js'); class IdentityProviderSignInInput { constructor() { this.params = {}; } } tslib.__decorate([ classValidator.IsEnum(idProvider), tslib.__metadata("design:type", String) ], IdentityProviderSignInInput.prototype, "provider", void 0); tslib.__decorate([ classValidatorJsonschema.JSONSchema({ description: 'User identity provider token or code. E.g: auth.getToken()', }), classValidator.IsString(), classValidator.IsNotEmpty(), tslib.__metadata("design:type", String) ], IdentityProviderSignInInput.prototype, "token", void 0); tslib.__decorate([ classValidator.IsObject(), microserviceHelpers.IsUndefinable(), tslib.__metadata("design:type", Object) ], IdentityProviderSignInInput.prototype, "params", void 0); class IdentityProviderSignInOutput { } tslib.__decorate([ microserviceHelpers.IsMeta(), classTransformer.Type(() => user), tslib.__metadata("design:type", user) ], IdentityProviderSignInOutput.prototype, "user", void 0); tslib.__decorate([ classValidator.IsBoolean(), tslib.__metadata("design:type", Boolean) ], IdentityProviderSignInOutput.prototype, "isNew", void 0); /** * Sign in through identity provider */ const signIn = microserviceHelpers.Endpoint.custom(() => ({ input: IdentityProviderSignInInput, output: IdentityProviderSignInOutput, description: 'Sign in user through identity provider', }), ({ provider, token, params }) => { const service = factory.create(provider, token, typeorm.getManager()); return service.signIn(params); }); exports.IdentityProviderSignInInput = IdentityProviderSignInInput; exports.IdentityProviderSignInOutput = IdentityProviderSignInOutput; exports.signIn = signIn;