chore: use campaign http types from types package (#7922)

This commit is contained in:
Riqwan Thamir
2024-07-03 14:13:44 +02:00
committed by GitHub
parent 40dbaf890f
commit fdee0bd55a
7 changed files with 48 additions and 14 deletions

View File

@@ -1,6 +1,8 @@
import {
AdminCampaignListResponse,
AdminCampaignResponse,
AdminCreateCampaign,
AdminUpdateCampaign,
LinkMethodRequest,
} from "@medusajs/types"
import {
@@ -13,7 +15,6 @@ import {
import { client } from "../../lib/client"
import { queryClient } from "../../lib/query-client"
import { queryKeysFactory } from "../../lib/query-key-factory"
import { CreateCampaignReq, UpdateCampaignReq } from "../../types/api-payloads"
import { CampaignDeleteRes } from "../../types/api-responses"
import { promotionsQueryKeys } from "./promotions"
@@ -64,7 +65,11 @@ export const useCampaigns = (
}
export const useCreateCampaign = (
options?: UseMutationOptions<AdminCampaignResponse, Error, CreateCampaignReq>
options?: UseMutationOptions<
AdminCampaignResponse,
Error,
AdminCreateCampaign
>
) => {
return useMutation({
mutationFn: (payload) => client.campaigns.create(payload),
@@ -78,7 +83,11 @@ export const useCreateCampaign = (
export const useUpdateCampaign = (
id: string,
options?: UseMutationOptions<AdminCampaignResponse, Error, UpdateCampaignReq>
options?: UseMutationOptions<
AdminCampaignResponse,
Error,
AdminUpdateCampaign
>
) => {
return useMutation({
mutationFn: (payload) => client.campaigns.update(id, payload),

View File

@@ -1,9 +1,9 @@
import {
AdminCampaignListResponse,
AdminCampaignResponse,
CreateCampaignDTO,
AdminCreateCampaign,
AdminUpdateCampaign,
LinkMethodRequest,
UpdateCampaignDTO,
} from "@medusajs/types"
import { CampaignDeleteRes } from "../../types/api-responses"
import { deleteRequest, getRequest, postRequest } from "./common"
@@ -16,11 +16,11 @@ async function listCampaigns(query?: Record<string, any>) {
return getRequest<AdminCampaignListResponse>(`/admin/campaigns`, query)
}
async function createCampaign(payload: CreateCampaignDTO) {
async function createCampaign(payload: AdminCreateCampaign) {
return postRequest<AdminCampaignResponse>(`/admin/campaigns`, payload)
}
async function updateCampaign(id: string, payload: UpdateCampaignDTO) {
async function updateCampaign(id: string, payload: AdminUpdateCampaign) {
return postRequest<AdminCampaignResponse>(`/admin/campaigns/${id}`, payload)
}

View File

@@ -5,10 +5,7 @@ import { useForm } from "react-hook-form"
import { useTranslation } from "react-i18next"
import * as zod from "zod"
import { Form } from "../../../../../components/common/form"
import {
RouteDrawer,
useRouteModal,
} from "../../../../../components/modals"
import { RouteDrawer, useRouteModal } from "../../../../../components/modals"
import { useUpdateCampaign } from "../../../../../hooks/api/campaigns"
import { getCurrencySymbol } from "../../../../../lib/currencies"
@@ -38,7 +35,6 @@ export const EditCampaignBudgetForm = ({
const handleSubmit = form.handleSubmit(async (data) => {
await mutateAsync(
{
id: campaign.id,
budget: {
limit: data.limit ? data.limit : null,
},

View File

@@ -40,7 +40,6 @@ export const EditCampaignForm = ({ campaign }: EditCampaignFormProps) => {
const handleSubmit = form.handleSubmit(async (data) => {
await mutateAsync(
{
id: campaign.id,
name: data.name,
description: data.description,
campaign_identifier: data.campaign_identifier,

View File

@@ -1 +1,2 @@
export * from "./campaign"
export * from "./payloads"
export * from "./responses"

View File

@@ -0,0 +1,29 @@
import { CampaignBudgetTypeValues } from "../../../promotion"
export interface AdminCreateCampaign {
name?: string
description?: string
currency?: string | null
campaign_identifier?: string
starts_at?: Date | null
ends_at?: Date | null
budget?: {
type?: CampaignBudgetTypeValues
currency_code?: string | null
limit?: number | null
} | null
}
export interface AdminUpdateCampaign {
name?: string
description?: string
currency?: string | null
campaign_identifier?: string
starts_at?: Date | null
ends_at?: Date | null
budget?: {
type?: CampaignBudgetTypeValues
currency_code?: string | null
limit?: number | null
} | null
}