app/apiHandler/refFamilyApiSlice.js

/**
 * @file
 * File : refFamilyApiSlice.js\
 * Defines API endpoints for managing reference families using RTK Query.
 * Extends the base API slice with related endpoints.
 *
 * @author  Pierre-Yves Léglise <contact@axialdata.net>
 * @name reFamilyApiSlice
 */
import { apiSlice } from './apiSlice'

export const reFamilyApiSlice = apiSlice.injectEndpoints({
  endpoints: (builder) => ({
    listRefFamily: builder.query({
      query: (params) => ({
        url: `/reffamilies`,
        method: 'get',
        withCredentials: true,
        params: { ...params },
      }),
    }),

    searchRefFamily: builder.query({
      query: (query) => ({
        url: `/reffamilies/search`,
        method: 'get',
        withCredentials: true,
        params: { q: query }, // Ajout du paramètre de recherche
      }),
      keepUnusedDataFor: 0, // Optionnel, pour éviter de garder les anciennes recherches en cache
    }),

    updateRefFamily: builder.mutation({
      query: ({ id, data }) => ({
        url: `/reffamily/${id}`,
        method: 'patch',
        withCredentials: true,
        data: { ...data },
      }),
      keepUnusedDataFor: 0,
    }),

    createRefFamily: builder.mutation({
      query: ({ data }) => ({
        url: `/reffamily`,
        method: 'put',
        withCredentials: true,
        data: { ...data },
      }),
      keepUnusedDataFor: 0,
    }),

    deleteRefFamily: builder.mutation({
      query: ({ id }) => ({
        url: `/reffamily/${id}`,
        method: 'delete',
        withCredentials: true,
      }),
      keepUnusedDataFor: 0,
    }),
  }),
})

/**
 * Hooks for interacting with the orders-related endpoints.
 *
 * @typedef {Object} Hooks
 * @author  Pierre-Yves Léglise <contact@axialdata.net>
 * @property {Function}  - Hook to trigger the getOrdersList query.
 * @example
 *  const { data, isLoading, isFetching } = useGetOrdersListQuery({
 *    ordersGroupNb: selectedOrdersGroupNb,
 *  })
 * @returns {Object} Object containing order-related endpoint hooks.
 */
export const {
  useListRefFamilyQuery,
  useSearchRefFamilyQuery,
  useUpdateRefFamilyMutation,
  useCreateRefFamilyMutation,
  useDeleteRefFamilyMutation,
} = reFamilyApiSlice