UNPKG

@lomray/microservice-users

Version:

Users microservice based on NodeJS & inverted json.

64 lines (60 loc) 2.37 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 IdentityProviderAttachInput { constructor() { this.params = {}; } } tslib.__decorate([ classValidator.IsString(), classValidator.IsNotEmpty(), tslib.__metadata("design:type", String) ], IdentityProviderAttachInput.prototype, "userId", void 0); tslib.__decorate([ classValidator.IsEnum(idProvider), tslib.__metadata("design:type", String) ], IdentityProviderAttachInput.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) ], IdentityProviderAttachInput.prototype, "token", void 0); tslib.__decorate([ classValidator.IsObject(), microserviceHelpers.IsUndefinable(), tslib.__metadata("design:type", Object) ], IdentityProviderAttachInput.prototype, "params", void 0); class IdentityProviderAttachOutput { } tslib.__decorate([ microserviceHelpers.IsMeta(), classTransformer.Type(() => user), tslib.__metadata("design:type", user) ], IdentityProviderAttachOutput.prototype, "user", void 0); /** * Attach new identity provider to existing user */ const attach = microserviceHelpers.Endpoint.custom(() => ({ input: IdentityProviderAttachInput, output: IdentityProviderAttachOutput, description: 'Attach new identity provider to existing user', }), ({ userId, provider, token, params }) => tslib.__awaiter(void 0, void 0, void 0, function* () { const service = factory.create(provider, token, typeorm.getManager()); return { user: yield service.attachProvider(userId, params), }; })); exports.IdentityProviderAttachInput = IdentityProviderAttachInput; exports.IdentityProviderAttachOutput = IdentityProviderAttachOutput; exports.attach = attach;