@lomray/microservice-users
Version:
Users microservice based on NodeJS & inverted json.
61 lines (57 loc) • 2.22 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 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;