@lomray/microservice-users
Version:
Users microservice based on NodeJS & inverted json.
109 lines (105 loc) • 4.1 kB
JavaScript
;
var tslib = require('tslib');
var microserviceHelpers = require('@lomray/microservice-helpers');
var classValidator = require('class-validator');
var classValidatorJsonschema = require('class-validator-jsonschema');
var typeorm = require('typeorm');
let User = class User {
};
tslib.__decorate([
typeorm.PrimaryGeneratedColumn('uuid'),
classValidator.Allow(),
tslib.__metadata("design:type", String)
], User.prototype, "id", void 0);
tslib.__decorate([
typeorm.Column({ type: 'varchar', length: 50, default: null, unique: true }),
classValidator.Length(1, 70),
classValidator.Matches(/^[a-z0-9_.]+$/, {
message: 'Username must be lower case and contains only: letters numbers _ .',
}),
microserviceHelpers.IsUndefinable(),
tslib.__metadata("design:type", String)
], User.prototype, "username", void 0);
tslib.__decorate([
typeorm.Column({ type: 'varchar', length: 25 }),
classValidator.Length(1, 25),
tslib.__metadata("design:type", String)
], User.prototype, "firstName", void 0);
tslib.__decorate([
typeorm.Column({ type: 'varchar', length: 25, default: '' }),
classValidator.Length(0, 25),
microserviceHelpers.IsUndefinable(),
tslib.__metadata("design:type", String)
], User.prototype, "lastName", void 0);
tslib.__decorate([
typeorm.Column({ type: 'varchar', length: 25, default: '' }),
classValidator.Length(0, 25),
microserviceHelpers.IsUndefinable(),
tslib.__metadata("design:type", String)
], User.prototype, "middleName", void 0);
tslib.__decorate([
classValidatorJsonschema.JSONSchema({
description: 'This field should be changed though special method (e.g.: change-login).',
}),
typeorm.Column({ type: 'varchar', length: 70, default: null, unique: true }),
classValidator.Length(1, 70),
classValidator.IsEmail(),
microserviceHelpers.IsUndefinable(),
microserviceHelpers.IsNullable(),
tslib.__metadata("design:type", Object)
], User.prototype, "email", void 0);
tslib.__decorate([
classValidatorJsonschema.JSONSchema({
description: 'This field should be changed though special method (e.g.: change-login).',
}),
typeorm.Column({ type: 'varchar', length: 20, default: null, unique: true }),
classValidator.Length(1, 20),
classValidator.IsMobilePhone(),
microserviceHelpers.IsUndefinable(),
microserviceHelpers.IsNullable(),
tslib.__metadata("design:type", Object)
], User.prototype, "phone", void 0);
tslib.__decorate([
classValidatorJsonschema.JSONSchema({
description: 'This field should be changed though special method (e.g.: change-password).',
}),
typeorm.Column({ type: 'varchar', select: false, default: null }),
microserviceHelpers.IsUndefinable(),
microserviceHelpers.IsNullable(),
classValidator.IsString(),
tslib.__metadata("design:type", Object)
], User.prototype, "password", void 0);
tslib.__decorate([
microserviceHelpers.IsTypeormDate(),
typeorm.CreateDateColumn(),
tslib.__metadata("design:type", Date)
], User.prototype, "createdAt", void 0);
tslib.__decorate([
microserviceHelpers.IsTypeormDate(),
typeorm.UpdateDateColumn(),
tslib.__metadata("design:type", Date)
], User.prototype, "updatedAt", void 0);
tslib.__decorate([
microserviceHelpers.IsTypeormDate(),
typeorm.DeleteDateColumn(),
tslib.__metadata("design:type", Object)
], User.prototype, "deletedAt", void 0);
tslib.__decorate([
typeorm.OneToOne('Profile', 'user'),
tslib.__metadata("design:type", Function)
], User.prototype, "profile", void 0);
tslib.__decorate([
typeorm.OneToMany('IdentityProvider', 'user'),
tslib.__metadata("design:type", Array)
], User.prototype, "identityProviders", void 0);
User = tslib.__decorate([
classValidatorJsonschema.JSONSchema({
properties: {
profile: { $ref: '#/definitions/Profile' },
identityProviders: { $ref: '#/definitions/IdentityProvider', type: 'array' },
},
}),
typeorm.Entity()
], User);
var UserEntity = User;
module.exports = UserEntity;