import { api as generatedApi } from './petstore-api.generated';
export const api = generatedApi.enhanceEndpoints({
addTagTypes: ['Pet'],
endpoints: {
getPetById: {
providesTags: (result, error, arg) => [{ type: 'Pet', id: arg.petId }],
},
findPetsByStatus: {
providesTags: (result) =>
result
?
[{ type: 'Pet', id: 'LIST' }, ...result.map((pet) => ({ type: 'Pet' as const, id: pet.id }))]
:
[{ type: 'Pet', id: 'LIST' }],
},
addPet: (endpoint) => {
endpoint.invalidatesTags = (result) => [{ type: 'Pet', id: result.id }];
},
updatePet: {
invalidatesTags: (result, error, arg) => [{ type: 'Pet', id: arg.petId }],
},
deletePet: {
invalidatesTags: (result, error, arg) => [{ type: 'Pet', id: arg.petId }],
},
},
});
export const {
useGetPetByIdQuery,
useFindPetsByStatusQuery,
useAddPetMutation,
useUpdatePetMutation,
useDeletePetMutation,
} = api;