Serializar
Esto sirve para transformar la información antes de retórnala
// src/main.ts
// Admitimos serialiacion
app.useGlobalInterceptors(new ClassSerializerInterceptor(app.get(Reflector)));
Excluir un campo
Solo debemos agregarle el decorador @Exclude en el campo que queremos excluir
// src\users\entities\order-item.entity.ts
import { Exclude } from "class-transformer";
...
@Exclude()
@CreateDateColumn({
type: 'timestamptz',
default: () => 'CURRENT_TIMESTAMP',
})
createAt: Date;
Transformar la informacion
// src\users\entities\order.entity.ts
@Expose()
get products() {
if (this.items) {
return this.items
.filter((item) => !!item)
.map((item) => ({
...item.product,
quantity: item.quantity,
itemId: item.id,
}));
}
return [];
}
@Expose()
get total() {
if (this.items) {
return this.items
.filter((item) => !!item)
.reduce((total, item) => {
const totalItem = item.product.price * item.quantity;
return total + totalItem;
}, 0);
}
return 0;
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?