diff --git a/src/app/test/page.tsx b/src/app/test/page.tsx index 3b4f3dd..6f151b4 100644 --- a/src/app/test/page.tsx +++ b/src/app/test/page.tsx @@ -1,12 +1,11 @@ -'use Client'; +'use client'; import Drone from './drone'; export default function Home() { return ( <> -
main
- {/* */} + ); } diff --git a/src/redux/features/basis/drone/droneThunk.ts b/src/redux/features/basis/drone/droneThunk.ts index 2085c61..0a1c6eb 100644 --- a/src/redux/features/basis/drone/droneThunk.ts +++ b/src/redux/features/basis/drone/droneThunk.ts @@ -2,7 +2,9 @@ import axios from '../../../../utils/axiosInterceptor'; import qs from 'qs'; import { createAsyncThunk } from '@reduxjs/toolkit'; +import { DroneData } from './droneState'; +// 드론 목록 조회 export const getDroneList = createAsyncThunk( 'basis/getDroneList', async (data: any) => { @@ -11,20 +13,132 @@ export const getDroneList = createAsyncThunk( addQueryPrefix: true, arrayFormat: 'repeat' }); - const response = await axios.get(`api/bas/dron/list${queryString}`); - return response.data; + const res = await axios.get(`api/bas/dron/list${queryString}`); + return res.data; } catch (error) { console.error(error); } } ); +// 드론 상세 조회 +export const getDroneDetail = createAsyncThunk( + 'basis/getDroneDetail', + async (id: number) => { + try { + const res = await axios.get(`api/bas/dron/detail/${id}`); + return res.data; + } catch (error) { + console.error(error); + } + } +); + +// 드론 생성 +export const createDrone = createAsyncThunk( + 'basis/createDrone', + async (data: DroneData) => { + try { + const res = await axios.post('api/bas/dron/create', data); + return res.data; + } catch (error) { + console.error(error); + } + } +); + +// 드론 수정 +export const updateDrone = createAsyncThunk( + 'basis/updateDrone', + async (data: DroneData) => { + try { + const res = await axios.put('api/bas/dron/update', data); + return res.data; + } catch (error) { + console.error(error); + } + } +); + +// 드론 삭제 +export const deleteDrone = createAsyncThunk( + 'basis/deleteDrone', + async (id: number) => { + try { + const res = await axios.delete(`api/bas/dron/delete/${id}`); + return res.data; + } catch (error) { + console.error(error); + } + } +); + +// 식별장치 목록 조회 export const getIdntfList = createAsyncThunk( 'basis/getIdntfList', async (id: number) => { try { - const response = await axios.get(`api/bas/dron/idntf/list/${id}`); - return response.data; + const res = await axios.get(`api/bas/dron/idntf/list/${id}`); + return res.data; + } catch (error) { + console.error(error); + } + } +); + +// 식별장치 수정 +export const updateIdntf = createAsyncThunk( + 'basis/updateIdntf', + async (item: { id: number; data: any[] }) => { + try { + const res = await axios.put(`/api/bas/dron/idntf/update/${item.id}`, { + idntfNum: item.data[0].idntfNum, + ownerNm: item.data[0].ownerNm, + hpno: item.data[0].hpno + }); + return res.data; + } catch (error) { + console.error(error); + } + } +); + +// 식별장치 삭제 +export const deleteIdntf = createAsyncThunk( + 'basis/deleteIdntf', + async (id: string) => { + try { + const res = await axios.delete(`api/bas/dron/idntf/delete/${id}`); + return res.data; + } catch (error) { + console.error(error); + } + } +); + +// 식별장치 생성 +export const createIdntf = createAsyncThunk( + 'basis/createIdntf', + async (item: { data: any[]; arcrftSno: number }) => { + try { + const res = await axios.post('api/bas/dron/idntf/create', item); + return res.data; + } catch (error) { + console.error(error); + } + } +); + +// 파일 업로드 +export const fileUpload = createAsyncThunk( + 'basis/fileUpload', + async (file: any) => { + try { + let form = new FormData(); + form.append('file', file); + + const res = await axios.post('api/file/upload', form); + return res.data; } catch (error) { console.error(error); }