test-task-sws
49 строк · 1.4 Кб
1import axios from "axios";
2import { CiwCreateData, CiwUpdateData } from "./ts/ApiData";
3import updateNodeInSessionData from "./lib/updateNodeInSessionData";
4import { TreeNode } from "./ts/TreeNode";
5import deleteNodeInSessionData from "./lib/deleteNodeInSessionData";
6
7/**
8* Fetch data from API
9*/
10export const fetchData = async () =>
11await axios
12.get(`${import.meta.env.VITE_APP_PATH}/row/list`)
13.then((res) => res.data)
14.catch((e) => {
15console.log(e);
16});
17
18/**
19* Create new data in API
20*/
21export const createData = async (data: CiwCreateData, nodes: TreeNode[], key: string) =>
22await axios
23.post(`${import.meta.env.VITE_APP_PATH}/row/create`, data)
24.then((res) => updateNodeInSessionData(nodes, res.data.current, key))
25.catch((e) => {
26console.log(e);
27});
28
29/**
30* Update current data in API
31*/
32export const updateData = async (data: CiwUpdateData, nodes: TreeNode[], key: string) =>
33await axios
34.post(`${import.meta.env.VITE_APP_PATH}/row/${data.id}/update`, data)
35.then((res) => updateNodeInSessionData(nodes, res.data.current, key))
36.catch((e) => {
37console.log(e);
38});
39
40/**
41* Delete current data in API
42*/
43export const deleteData = async (rowId: number, nodes: TreeNode[]) =>
44await axios
45.delete(`${import.meta.env.VITE_APP_PATH}/row/${rowId}/delete`)
46.then(() => deleteNodeInSessionData(nodes, rowId))
47.catch((e) => {
48console.log(e);
49});
50