44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
|
|
|
|
export const authHeader = () => {
|
|
const token = localStorage.getItem('token')
|
|
return token ? { Authorization: `Bearer ${token}` } : {}
|
|
}
|
|
|
|
export const API = createApi({
|
|
reducerPath: 'API',
|
|
baseQuery: fetchBaseQuery({
|
|
baseUrl: 'https://api.sovamed.ru',
|
|
credentials: 'include',
|
|
}),
|
|
endpoints: (builder) => ({
|
|
login: builder.mutation({
|
|
query: (data) => ({
|
|
url: '/user/login',
|
|
method: 'POST',
|
|
body: data,
|
|
}),
|
|
async onQueryStarted(arg, { queryFulfilled }) {
|
|
try {
|
|
const { data } = await queryFulfilled
|
|
console.log(data)
|
|
localStorage.setItem('token', data.token)
|
|
localStorage.setItem('admSovamedUserUID', data.user.uid)
|
|
localStorage.setItem('admSovamedUserRegionId', data.user.regionId)
|
|
} catch {
|
|
//
|
|
}
|
|
},
|
|
}),
|
|
|
|
logout: builder.mutation({
|
|
async queryFn(_arg, _api, _extraOptions, _baseQuery) {
|
|
localStorage.removeItem('token')
|
|
return { data: undefined }
|
|
},
|
|
}),
|
|
}),
|
|
})
|
|
|
|
export const { useLoginMutation, useLogoutMutation } = API;
|