first part of the user class cleanuo

ref #11 #14
This commit is contained in:
Nicolai Ort 2020-12-05 10:16:47 +01:00
parent 74ee77f814
commit dadaacfaae
2 changed files with 28 additions and 20 deletions

View File

@ -9,21 +9,30 @@ import { UserGroup } from '../entities/UserGroup';
export class CreateUser { export class CreateUser {
@IsString() @IsString()
firstname: string; firstname: string;
@IsString() @IsString()
@IsOptional()
middlename?: string; middlename?: string;
@IsOptional() @IsOptional()
@IsString() @IsString()
username?: string; username?: string;
@IsPhoneNumber("ZZ") @IsPhoneNumber("ZZ")
@IsOptional() @IsOptional()
phone?: string; phone?: string;
@IsString() @IsString()
password: string; password: string;
@IsString() @IsString()
lastname: string; lastname: string;
@IsEmail() @IsEmail()
@IsString() @IsString()
@IsOptional()
email?: string; email?: string;
@IsOptional() @IsOptional()
groupId?: number[] | number groupId?: number[] | number
@ -58,15 +67,14 @@ export class CreateUser {
} }
} }
const new_uuid = uuid.v4()
newUser.email = this.email newUser.email = this.email
newUser.username = this.username newUser.username = this.username
newUser.firstname = this.firstname newUser.firstname = this.firstname
newUser.middlename = this.middlename newUser.middlename = this.middlename
newUser.lastname = this.lastname newUser.lastname = this.lastname
newUser.uuid = new_uuid newUser.uuid = uuid.v4()
newUser.password = await argon2.hash(this.password + new_uuid); newUser.phone = this.phone
newUser.password = await argon2.hash(this.password + newUser.uuid);
console.log(newUser) console.log(newUser)
return newUser; return newUser;

View File

@ -13,7 +13,6 @@ export class User {
* autogenerated unique id (primary key). * autogenerated unique id (primary key).
*/ */
@PrimaryGeneratedColumn() @PrimaryGeneratedColumn()
@IsOptional()
@IsInt() @IsInt()
id: number; id: number;
@ -21,30 +20,30 @@ export class User {
* uuid * uuid
*/ */
@Column() @Column()
@IsUUID("4") @IsUUID(4)
uuid: string; uuid: string;
/** /**
* user email * user email
*/ */
@Column() @Column({ nullable: true })
@IsEmail() @IsEmail()
email: string; email?: string;
/** /**
* user phone * user phone
*/ */
@Column() @Column({ nullable: true })
@IsPhoneNumber("ZZ")
@IsOptional() @IsOptional()
phone: string; @IsPhoneNumber("ZZ")
phone?: string;
/** /**
* username * username
*/ */
@Column() @Column({ nullable: true })
@IsString() @IsString()
username: string; username?: string;
/** /**
* firstname * firstname
@ -57,10 +56,10 @@ export class User {
/** /**
* middlename * middlename
*/ */
@Column() @Column({ nullable: true })
@IsString() @IsString()
@IsOptional() @IsOptional()
middlename: string; middlename?: string;
/** /**
* lastname * lastname
@ -83,7 +82,7 @@ export class User {
*/ */
@IsOptional() @IsOptional()
@ManyToOne(() => Permission, permission => permission.users, { nullable: true }) @ManyToOne(() => Permission, permission => permission.users, { nullable: true })
permissions: Permission[]; permissions?: Permission[];
/** /**
* groups * groups
@ -105,21 +104,22 @@ export class User {
*/ */
@IsInt() @IsInt()
@Column({ default: 1 }) @Column({ default: 1 })
refreshTokenCount: number; refreshTokenCount?: number;
/** /**
* profilepic * profilepic
*/ */
@Column() @Column({ nullable: true })
@IsString() @IsString()
profilePic: string; @IsOptional()
profilePic?: string;
/** /**
* actions * actions
*/ */
@IsOptional() @IsOptional()
@OneToMany(() => UserAction, action => action.user, { nullable: true }) @OneToMany(() => UserAction, action => action.user, { nullable: true })
actions: UserAction actions: UserAction[]
/** /**
* calculate all permissions * calculate all permissions