Ого, как легко, если я знаю!Отлично, это решает мою проблему.Также ваша рекомендация для User Entity с декоратором класса-преобразователя @Exclue ().
И я знаю, что мне не нужен пользовательский класс UsersResponse в этом случае использования.Это решение было тем, что я искал, но я перебил этот довольно простой способ
Большое спасибо за ваш сверхбыстрый ответ и решение проблемы.
Привет Берлину из Ростока:)
Вот мой последний подход:
Контроллер
@UseInterceptors(ClassSerializerInterceptor)
@Get('all')
async findAll(
): Promise<User> {
return await this.userService.findAll().catch(e => { throw new NotAcceptableException(e) })
}
Права пользователя
import { Entity, Column, PrimaryGeneratedColumn, OneToOne, JoinColumn, OneToMany } from 'typeorm';
import { Profile } from './profile.entity';
import { Photo } from './photo.entity';
import { Album } from './album.entity';
import { Exclude } from 'class-transformer';
export type UserRoleType = "admin" | "editor" | "ghost";
@Entity()
export class User {
@PrimaryGeneratedColumn() id: number;
@Column('text')
username: string;
@Exclude()
@Column('text')
password: string;
@Column({
type: "enum",
enum: ["admin", "editor", "ghost"],
default: "ghost"
})
roles: UserRoleType;
@Exclude()
@Column({ nullable: true })
profileId: number;
@OneToMany(type => Photo, photo => photo.user)
photos: Photo[];
@OneToMany(type => Album, albums => albums.user)
albums: Album[];
@OneToOne(type => Profile, profile => profile.user)
@JoinColumn()
profile: Profile;
}
Результат ответа
[
{
"id": 1,
"username": "a",
"roles": "admin"
},
{
"id": 2,
"username": "bbbbbb",
"roles": "ghost"
}
]