Feat/expand on list discounts (#1304)

This commit is contained in:
Kasper Fabricius Kristensen
2022-04-21 15:22:07 +02:00
committed by GitHub
parent 313cb0658b
commit 7a1e394b9d
5 changed files with 87 additions and 6 deletions
@@ -1,5 +1,9 @@
import { IsOptional, IsString } from "class-validator"
import { defaultAdminDiscountsFields, defaultAdminDiscountsRelations } from "."
import { Discount } from "../../../.."
import DiscountService from "../../../../services/discount"
import { getRetrieveConfig } from "../../../../utils/get-query-config"
import { validator } from "../../../../utils/validator"
/**
* @oas [get] /discounts/{id}
* operationId: "GetDiscountsDiscount"
@@ -8,6 +12,9 @@ import DiscountService from "../../../../services/discount"
* x-authenticated: true
* parameters:
* - (path) id=* {string} The id of the Discount
* query:
* - (query) expand {string} Comma separated list of relations to include in the results.
* - (query) fields {string} Comma separated list of fields to include in the results.
* tags:
* - Discount
* responses:
@@ -23,11 +30,27 @@ import DiscountService from "../../../../services/discount"
export default async (req, res) => {
const { discount_id } = req.params
const validated = await validator(AdminGetDiscountParams, req.query)
const config = getRetrieveConfig<Discount>(
defaultAdminDiscountsFields,
defaultAdminDiscountsRelations,
validated?.fields?.split(",") as (keyof Discount)[],
validated?.expand?.split(",")
)
const discountService: DiscountService = req.scope.resolve("discountService")
const data = await discountService.retrieve(discount_id, {
select: defaultAdminDiscountsFields,
relations: defaultAdminDiscountsRelations,
})
const data = await discountService.retrieve(discount_id, config)
res.status(200).json({ discount: data })
}
export class AdminGetDiscountParams {
@IsOptional()
@IsString()
expand?: string
@IsOptional()
@IsString()
fields?: string
}
@@ -43,9 +43,12 @@ export default async (req, res) => {
const discountService: DiscountService = req.scope.resolve("discountService")
const relations =
validated.expand?.split(",") ?? defaultAdminDiscountsRelations
const listConfig: FindConfig<Discount> = {
select: defaultAdminDiscountsFields,
relations: defaultAdminDiscountsRelations,
relations,
skip: validated.offset,
take: validated.limit,
order: { created_at: "DESC" },