40 lines
1003 B
TypeScript
40 lines
1003 B
TypeScript
import { apiInstance } from "@/shared/config/apiConfig";
|
|
import { IFetch } from "@/shared/types/fetch-type";
|
|
import { ITendersList } from "@/shared/types/tenders-type";
|
|
import { AxiosError } from "axios";
|
|
import { create } from "zustand";
|
|
|
|
interface useTendersStore extends IFetch {
|
|
data: ITendersList;
|
|
getTenders: (ordering: number) => void;
|
|
}
|
|
|
|
export const useTendersStore = create<useTendersStore>((set) => ({
|
|
data: {
|
|
count: 0,
|
|
previous: null,
|
|
next: null,
|
|
results: [],
|
|
},
|
|
error: "",
|
|
isLoading: false,
|
|
getTenders: async (ordering: number) => {
|
|
try {
|
|
set({ isLoading: true });
|
|
|
|
const res = await apiInstance.get(
|
|
`/procurements/?ordering=${ordering}/?limit=${10}/`
|
|
);
|
|
set({ data: res.data });
|
|
} catch (error: unknown) {
|
|
if (error instanceof AxiosError) {
|
|
set({ error: error.message });
|
|
} else {
|
|
set({ error: "An error occured" });
|
|
}
|
|
} finally {
|
|
set({ isLoading: false });
|
|
}
|
|
},
|
|
}));
|