feat: add extend param for customer groups

This commit is contained in:
fPolic
2022-02-21 15:24:52 +01:00
parent 8313680a71
commit ecd6ed820e
3 changed files with 45 additions and 1 deletions

View File

@@ -120,6 +120,31 @@ describe("/admin/customer-groups", () => {
name: "vip-customers",
})
)
expect(response.data.customerGroup).not.toHaveProperty("customers:")
})
it("gets customer group with `customers` prop", async () => {
const api = useApi()
const id = "customer-group-1"
const response = await api.get(
`/admin/customer-groups/${id}?expand=customers`,
{
headers: {
Authorization: "Bearer test_token",
},
}
)
expect(response.status).toEqual(200)
expect(response.data.customerGroup).toEqual(
expect.objectContaining({
id: "customer-group-1",
name: "vip-customers",
})
)
expect(response.data.customerGroup.customers).toEqual([])
})
it("throws error when a customer group doesn't exist", async () => {

View File

@@ -1,4 +1,7 @@
import { CustomerGroupService } from "../../../../services"
import { FindParams } from "../../../../types/common"
import { validator } from "../../../../utils/validator"
import { defaultAdminCustomerGroupsRelations } from "."
/**
* @oas [get] /customer-group/{id}
@@ -22,11 +25,25 @@ import { CustomerGroupService } from "../../../../services"
*/
export default async (req, res) => {
const { id } = req.params
const validated = await validator(FindParams, req.query)
const customerGroupService: CustomerGroupService = req.scope.resolve(
"customerGroupService"
)
const customerGroup = await customerGroupService.retrieve(id)
let expandFields: string[] = []
if (validated.expand) {
expandFields = validated.expand.split(",")
}
const findConfig = {
relations: expandFields.length
? expandFields
: defaultAdminCustomerGroupsRelations,
}
const customerGroup = await customerGroupService.retrieve(id, findConfig)
res.json({ customerGroup })
}

View File

@@ -23,4 +23,6 @@ export type AdminCustomerGroupsListRes = PaginatedResponse & {
customer_groups: CustomerGroup[]
}
export const defaultAdminCustomerGroupsRelations = []
export * from "./create-customer-group"