Files
medusa-store/packages/medusa-react/src/hooks/admin/batch-jobs/mutations.ts
Oliver Windall Juhl 7302d76e12 feat(medusa,medusa-js,medusa-react): Add BatchJob API support in medusa-js + medusa-react (#1704)
* Add BatchJob API to medusa-js

* Adds BatchJob API hooks

* Fix tests in medusa-react
2022-06-21 11:08:44 +02:00

75 lines
1.8 KiB
TypeScript

import { AdminBatchJobRes, AdminPostBatchesReq } from "@medusajs/medusa"
import { Response } from "@medusajs/medusa-js"
import { useMutation, UseMutationOptions, useQueryClient } from "react-query"
import { useMedusa } from "../../../contexts"
import { buildOptions } from "../../utils/buildOptions"
import { adminBatchJobsKeys } from "./queries"
/**
* Hook returns functions for creating batch jobs.
*
* @param options
*/
export const useAdminCreateBatchJob = (
options?: UseMutationOptions<
Response<AdminBatchJobRes>,
Error,
AdminPostBatchesReq
>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
(payload: AdminPostBatchesReq) => client.admin.batchJobs.create(payload),
buildOptions(queryClient, adminBatchJobsKeys.lists(), options)
)
}
/**
* Hook return functions for canceling a batch job
*
* @param id - id of the batch job
* @param options
*/
export const useAdminCancelBatchJob = (
id: string,
options?: UseMutationOptions<Response<AdminBatchJobRes>, Error>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
() => client.admin.batchJobs.cancel(id),
buildOptions(
queryClient,
[adminBatchJobsKeys.lists(), adminBatchJobsKeys.detail(id)],
options
)
)
}
/**
* Hook return functions for confirming a batch job
*
* @param id - id of the batch job
* @param options
*/
export const useAdminConfirmBatchJob = (
id: string,
options?: UseMutationOptions<Response<AdminBatchJobRes>, Error>
) => {
const { client } = useMedusa()
const queryClient = useQueryClient()
return useMutation(
() => client.admin.batchJobs.confirm(id),
buildOptions(
queryClient,
[adminBatchJobsKeys.lists(), adminBatchJobsKeys.detail(id)],
options
)
)
}