1.0.1 • Published 2 years ago
compact-sequelize v1.0.1
compact-sequelize
npm install compact-sequelize
Overview
Order.findAll({
include: [
{ model: User, attributes: ["email"] },
{
model: OrderDetail,
include: [
{
model: Product,
include: { model: Brand, attributes: ["name"] },
include: { model: Gender, attributes: ["name"] },
include: { model: Category, attributes: ["name"] },
},
{ model: Size, attributes: ["name"] }
]
}
],
})
and we get a json like this:
[{
"id": 42,
"date": "2022-01-27T07:54:02.571Z",
"status": "carrito",
"userId": 12,
"user": {
"email": "andres@sportbase.com"
},
"OrderDetails": [
{
"id": 197,
"price": 10999,
"quantity": 2,
"orderId": 42,
"productId": "c2fcdddd-2ea4-465a-939a-63d91bb60aa0",
"sizeId": 12,
"product": {
"id": "c2fcdddd-2ea4-465a-939a-63d91bb60aa0",
"name": "Adidas jacket Firebird",
"price": 10999,
"genderId": 2,
"brandId": 1,
"brand": {
"name": "Adidas"
},
"gender": {
"name": "Woman"
},
"categories": [
{
"name": "jacket",
"product_category": {
"createdAt": "2022-01-20T02:05:12.939Z",
"updatedAt": "2022-01-20T02:05:12.939Z",
"productId": "c2fcdddd-2ea4-465a-939a-63d91bb60aa0",
"categoryId": 5
}
},
{
"name": "sportswear",
"product_category": {
"createdAt": "2022-01-20T02:05:12.939Z",
"updatedAt": "2022-01-20T02:05:12.939Z",
"productId": "c2fcdddd-2ea4-465a-939a-63d91bb60aa0",
"categoryId": 9
}
}
]
},
"size": {
"name": "XL"
}
}
]
}]
const { compact } = require('compact-sequelize');
const { Order, User, OrderDetail, Size, Product, Gender, Brand, Category } = require("./src/db.js");
const getOrders = async () => {
const orders = compact(await Order.findAll({
include: [
{ model: User, attributes: ["email"] },
{
model: OrderDetail,
include: [
{
model: Product,
include: { model: Gender, attributes: ["name"] },
include: { model: Brand, attributes: ["name"] },
include: { model: Category, attributes: ["name"] }
},
{ model: Size, attributes: ["name"] }
]
}
],
}));
return orders;
}
{
"id": 42,
"date": "2022-01-27T07:54:02.571Z",
"userId": 12,
"user": "andres@sportbase.com",
"OrderDetails": [
{
"id": 197,
"price": 10999,
"quantity": 2,
"orderId": 42,
"productId": "c2fcdddd-2ea4-465a-939a-63d91bb60aa0",
"sizeId": 12,
"product": {
"id": "c2fcdddd-2ea4-465a-939a-63d91bb60aa0",
"name": "Adidas jacket Firebird",
"price": 10999,
"genderId": 2,
"brandId": 1,
"brand": "Adidas",
"gender": "Woman",
"categories": [
"jacket",
"sportswear"
]
},
"size": "XL"
}
]
}