chore: make apis nullable (#7763)
what: - makes top level attributes of each object an optional field in the http layer where possible RESOLVES CORE-2229
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { createFindParams, createSelectParams } from "../../utils/validators"
|
||||
import { AddressPayload, BigNumberInput } from "../../utils/common-validators"
|
||||
import { z } from "zod"
|
||||
import { AddressPayload, BigNumberInput } from "../../utils/common-validators"
|
||||
import { createFindParams, createSelectParams } from "../../utils/validators"
|
||||
|
||||
export type AdminGetOrderParamsType = z.infer<typeof AdminGetOrderParams>
|
||||
export const AdminGetOrderParams = createSelectParams()
|
||||
@@ -23,8 +23,8 @@ enum Status {
|
||||
}
|
||||
|
||||
const ShippingMethod = z.object({
|
||||
shipping_method_id: z.string().optional(),
|
||||
order_id: z.string().optional(),
|
||||
shipping_method_id: z.string().nullish(),
|
||||
order_id: z.string().nullish(),
|
||||
name: z.string(),
|
||||
option_id: z.string(),
|
||||
data: z.record(z.string(), z.unknown()).optional(),
|
||||
@@ -33,13 +33,13 @@ const ShippingMethod = z.object({
|
||||
|
||||
const Item = z
|
||||
.object({
|
||||
title: z.string().optional(),
|
||||
sku: z.string().optional(),
|
||||
barcode: z.string().optional(),
|
||||
variant_id: z.string().optional(),
|
||||
unit_price: BigNumberInput.optional(),
|
||||
title: z.string().nullish(),
|
||||
sku: z.string().nullish(),
|
||||
barcode: z.string().nullish(),
|
||||
variant_id: z.string().nullish(),
|
||||
unit_price: BigNumberInput.nullish(),
|
||||
quantity: z.number(),
|
||||
metadata: z.record(z.string(), z.unknown()).optional(),
|
||||
metadata: z.record(z.unknown()).nullish(),
|
||||
})
|
||||
.refine((data) => {
|
||||
if (!data.variant_id) {
|
||||
@@ -53,18 +53,18 @@ export type AdminCreateDraftOrderType = z.infer<typeof AdminCreateDraftOrder>
|
||||
export const AdminCreateDraftOrder = z
|
||||
.object({
|
||||
status: z.nativeEnum(Status).optional(),
|
||||
sales_channel_id: z.string().optional(),
|
||||
email: z.string().optional(),
|
||||
customer_id: z.string().optional(),
|
||||
sales_channel_id: z.string().nullish(),
|
||||
email: z.string().nullish(),
|
||||
customer_id: z.string().nullish(),
|
||||
billing_address: AddressPayload.optional(),
|
||||
shipping_address: AddressPayload.optional(),
|
||||
items: z.array(Item).optional(),
|
||||
region_id: z.string(),
|
||||
promo_codes: z.array(z.string()).optional(),
|
||||
currency_code: z.string().optional(),
|
||||
currency_code: z.string().nullish(),
|
||||
no_notification_order: z.boolean().optional(),
|
||||
shipping_methods: z.array(ShippingMethod),
|
||||
metadata: z.record(z.string(), z.unknown()).optional(),
|
||||
metadata: z.record(z.unknown()).nullish(),
|
||||
})
|
||||
.strict()
|
||||
.refine(
|
||||
|
||||
Reference in New Issue
Block a user