Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ import { StepResponse } from "./helpers"
import { createStepHandler } from "./helpers/create-step-handler"
import type { CreateWorkflowComposerContext } from "./type"

/**
* A zod-like validator interface that defines a parse method.
* This allows for flexible validation without depending on zod directly.
*
* @since 2.13.7
*/
type ZodLike<T = any> = {
parse(data: unknown): T
}
Expand Down
41 changes: 41 additions & 0 deletions packages/medusa/src/api/admin/campaigns/validators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,14 @@ import {
} from "../../utils/validators"
import { applyAndAndOrOperators } from "../../utils/common-validators"

/**
* Validation schema for retrieving a single campaign.
*/
export const AdminGetCampaignParams = createSelectParams()

/**
* Validation schema for campaign query parameters.
*/
export const AdminGetCampaignsParamsFields = z
.object({
q: z.string().optional(),
Expand All @@ -21,16 +27,26 @@ export const AdminGetCampaignsParamsFields = z
})
.strict()

/**
* Type definition for campaign listing query parameters.
*/
export type AdminGetCampaignsParamsType = z.infer<
typeof AdminGetCampaignsParams
>

/**
* Validation schema for listing campaigns with pagination and filtering support.
*/
export const AdminGetCampaignsParams = createFindParams({
offset: 0,
limit: 50,
})
.merge(AdminGetCampaignsParamsFields)
.merge(applyAndAndOrOperators(AdminGetCampaignsParamsFields).strict())

/**
* Validation schema for creating campaign budget with type-specific validation rules.
*/
const CreateCampaignBudget = z
.object({
type: z.nativeEnum(CampaignBudgetType),
Expand Down Expand Up @@ -68,13 +84,23 @@ const CreateCampaignBudget = z
}
)

/**
* Validation schema for updating campaign budget.
*/
export const UpdateCampaignBudget = z
.object({
limit: z.number().nullish(),
})
.strict()

/**
* Type definition for creating a campaign.
*/
export type AdminCreateCampaignType = z.infer<typeof CreateCampaign>

/**
* Validation schema for creating a campaign.
*/
export const CreateCampaign = z
.object({
name: z.string(),
Expand All @@ -85,9 +111,20 @@ export const CreateCampaign = z
ends_at: z.coerce.date().nullish(),
})
.strict()

/**
* Extended validation schema for creating a campaign with additional data support.
*/
export const AdminCreateCampaign = WithAdditionalData(CreateCampaign)

/**
* Type definition for updating a campaign.
*/
export type AdminUpdateCampaignType = z.infer<typeof UpdateCampaign>

/**
* Validation schema for updating a campaign.
*/
export const UpdateCampaign = z.object({
name: z.string().optional(),
campaign_identifier: z.string().optional(),
Expand All @@ -96,4 +133,8 @@ export const UpdateCampaign = z.object({
starts_at: z.coerce.date().nullish(),
ends_at: z.coerce.date().nullish(),
})

/**
* Extended validation schema for updating a campaign with additional data support.
*/
export const AdminUpdateCampaign = WithAdditionalData(UpdateCampaign)
22 changes: 22 additions & 0 deletions packages/medusa/src/api/admin/claims/validators.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ import {
createSelectParams,
} from "../../utils/validators"

/**
* Validation schema for retrieving orders within claims context.
*/
export const AdminGetOrdersOrderParams = createSelectParams().merge(
z.object({
id: z.union([z.string(), z.array(z.string())]).optional(),
Expand All @@ -16,6 +19,9 @@ export const AdminGetOrdersOrderParams = createSelectParams().merge(
})
)

/**
* Type definition for order query parameters in claims context.
*/
export type AdminGetOrdersOrderParamsType = z.infer<
typeof AdminGetOrdersOrderParams
>
Expand All @@ -37,8 +43,14 @@ export const AdminGetOrdersParams = createFindParams({
})
)

/**
* Type definition for orders listing parameters.
*/
export type AdminGetOrdersParamsType = z.infer<typeof AdminGetOrdersParams>

/**
* Validation schema for creating order claims.
*/
export const AdminPostOrderClaimsReqSchema = z.object({
type: z.nativeEnum(ClaimType),
order_id: z.string(),
Expand All @@ -47,6 +59,10 @@ export const AdminPostOrderClaimsReqSchema = z.object({
reason_id: z.string().nullish(),
metadata: z.record(z.string(), z.unknown()).nullish(),
})

/**
* Type definition for creating order claims.
*/
export type AdminPostOrderClaimsReqSchemaType = z.infer<
typeof AdminPostOrderClaimsReqSchema
>
Expand Down Expand Up @@ -210,6 +226,12 @@ export type AdminPostClaimsConfirmRequestReqSchemaType = z.infer<
typeof AdminPostClaimsConfirmRequestReqSchema
>

/**
* Validation schema for deleting claim item actions.
*/
export const AdminDeleteClaimItemActionSchema = createSelectParams()

/**
* Type definition for deleting claim item actions.
*/
export type AdminDeleteClaimItemActionSchemaType = z.infer<typeof AdminDeleteClaimItemActionSchema>
Loading