import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'; import { setCredentials, logOut } from './features/auth/authSlice'; export interface User { firstName: string lastName: string } export interface UserResponse { user: User token: string } export interface LoginRequest { firstName: string lastName: string } export const apiSlice = createApi({ reducerPath: 'api', baseQuery: fetchBaseQuery({ // baseUrl: 'http://localhost:3000', baseUrl: '/', prepareHeaders: (headers, { getState }) => { const token = (getState() as RootState).auth.token; if (token) { headers.set('authorization', `Bearer ${token}`); } return headers; } }), tagTypes: ['Guests'], endpoints: builder => ({ getGuests: builder.query({ query: () => '/guests', providesTags: ['Guests'] }), updateGuest: builder.mutation({ query: guest => ({ url: `/guests/${guest.id}`, method: 'PATCH', body: guest, providesTags: ['Guests'] }) }), login: builder.mutation({ query: credentials => ({ url: '/guest-login', method: 'POST', body: credentials }) }) }) }); export const { useGetGuestsQuery, useUpdateGuestMutation, useLoginMutation } = apiSlice;