@lomray/microservice-users
Version:
Users microservice based on NodeJS & inverted json.
50 lines (46 loc) • 2.02 kB
JavaScript
;
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 GetUserByTokenIdentityProviderInput {
}
tslib.__decorate([
classValidator.IsEnum(idProvider),
tslib.__metadata("design:type", String)
], GetUserByTokenIdentityProviderInput.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)
], GetUserByTokenIdentityProviderInput.prototype, "token", void 0);
class GetUserByTokenIdentityProviderOutput {
}
tslib.__decorate([
microserviceHelpers.IsMeta(),
classTransformer.Type(() => user),
microserviceHelpers.IsUndefinable(),
tslib.__metadata("design:type", user)
], GetUserByTokenIdentityProviderOutput.prototype, "user", void 0);
/**
* Returns user by identity token
*/
const getUserByToken = microserviceHelpers.Endpoint.custom(() => ({
input: GetUserByTokenIdentityProviderInput,
output: GetUserByTokenIdentityProviderOutput,
description: 'Returns user by identity token',
}), ({ provider, token }) => tslib.__awaiter(void 0, void 0, void 0, function* () {
const service = factory.create(provider, token, typeorm.getManager());
return { user: yield service.getUserByToken() };
}));
exports.GetUserByTokenIdentityProviderInput = GetUserByTokenIdentityProviderInput;
exports.GetUserByTokenIdentityProviderOutput = GetUserByTokenIdentityProviderOutput;
exports.getUserByToken = getUserByToken;