Backend half
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
import { User } from '../entities/user.entity';
|
||||
import { UserBasicDto, UserUpdateDto, UserCreateDto, UserResponseDto } from '../dto/user.dto';
|
||||
|
||||
export class UserMapper {
|
||||
static toBasicDto(user: User): UserBasicDto {
|
||||
return new UserBasicDto(user.id, user.username, user.CompanyId || undefined);
|
||||
}
|
||||
|
||||
static toResponseDto(user: User): UserResponseDto {
|
||||
return new UserResponseDto(
|
||||
user.id,
|
||||
user.username,
|
||||
user.FirstName,
|
||||
user.LastName,
|
||||
user.email,
|
||||
user.RegDate
|
||||
);
|
||||
}
|
||||
static toEntity(createDto: UserCreateDto): User {
|
||||
const user = new User();
|
||||
user.username = createDto.username;
|
||||
user.FirstName = createDto.FirstName;
|
||||
user.LastName = createDto.LastName;
|
||||
user.email = createDto.email;
|
||||
user.password = createDto.password;
|
||||
|
||||
// Only set CompanyId if it's provided and not null/undefined
|
||||
if (createDto.CompanyId !== undefined && createDto.CompanyId !== null) {
|
||||
user.CompanyId = createDto.CompanyId;
|
||||
}
|
||||
// If not provided, leave it as undefined (which will be NULL in database)
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
static updateEntity(original: User, updateDto: UserUpdateDto): User {
|
||||
if (updateDto.username !== undefined) original.username = updateDto.username;
|
||||
if (updateDto.FirstName !== undefined) original.FirstName = updateDto.FirstName;
|
||||
if (updateDto.LastName !== undefined) original.LastName = updateDto.LastName;
|
||||
if (updateDto.email !== undefined) original.email = updateDto.email;
|
||||
if (updateDto.password !== undefined) original.password = updateDto.password;
|
||||
|
||||
return original;
|
||||
}
|
||||
|
||||
static UsersListResponseDto(users: User[]): UserResponseDto[] {
|
||||
return users.map(user => this.toResponseDto(user));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user