Skip to content
Snippets Groups Projects
update-implementation-mutation.ts 822 B
Newer Older
brunoravera's avatar
brunoravera committed
import { AxiosError } from 'axios'
import { useMutation as useRQMutation, UseMutationOptions } from 'react-query'

import { Implementation, UpdateImplementationRequest } from 'src/models'
import axiosService from 'src/services/axios-service'

export namespace UpdateImplementationMutation {
  export type Params = UpdateImplementationRequest
  export type Response = Implementation

  export const key = ['update', 'implementation']

  export const mutationFn = (params: Params) =>
    axiosService
      .put<Response>(`/implementations/${params.id}`, params)
      .then((res) => res.data)

  export const useMutation = (
    options: UseMutationOptions<
      Response,
      AxiosError,
      UpdateImplementationRequest
    > = {}
  ) => {
    return useRQMutation(mutationFn, { ...options, mutationKey: key })
  }
}