|
|
|
@ -2,13 +2,20 @@ import axios from '../../../../modules/utils/customAxiosUtil';
|
|
|
|
|
import qs from 'qs'; |
|
|
|
|
|
|
|
|
|
import { createAsyncThunk } from '@reduxjs/toolkit'; |
|
|
|
|
import { isError } from '../../comn/message/messageSlice'; |
|
|
|
|
import { ERROR_MESSAGE } from '@src/configs/constants'; |
|
|
|
|
import { isError, isMessage } from '../../comn/message/messageSlice'; |
|
|
|
|
import { |
|
|
|
|
ERROR_MESSAGE, |
|
|
|
|
DUPLATE_MESSAGE, |
|
|
|
|
SAVE_MESSAGE, |
|
|
|
|
DELETE_MESSAGE |
|
|
|
|
} from '@src/configs/constants'; |
|
|
|
|
import { ICreateDroneRq, ICreateIdntfRq, IUpdateDroneRq } from './droneState'; |
|
|
|
|
|
|
|
|
|
// 드론 목록 조회
|
|
|
|
|
export const getDroneList = createAsyncThunk( |
|
|
|
|
'basis/getDroneList', |
|
|
|
|
async (rq: string, thunkAPI) => { |
|
|
|
|
const { rejectWithValue } = thunkAPI; |
|
|
|
|
try { |
|
|
|
|
const queryString = qs.stringify(rq, { |
|
|
|
|
addQueryPrefix: true, |
|
|
|
@ -19,7 +26,7 @@ export const getDroneList = createAsyncThunk(
|
|
|
|
|
const { data, errorCode } = res; |
|
|
|
|
|
|
|
|
|
if (errorCode) { |
|
|
|
|
return errorCode; |
|
|
|
|
throw Error; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return data; |
|
|
|
@ -32,12 +39,288 @@ export const getDroneList = createAsyncThunk(
|
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
return rejectWithValue(error); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// 드론 상세 조회
|
|
|
|
|
// export const getDroneDetail = createAsyncThunk(
|
|
|
|
|
// 'basis/getDroneDetail',
|
|
|
|
|
export const getDroneDetail = createAsyncThunk( |
|
|
|
|
'basis/getDroneDetail', |
|
|
|
|
async (id: number, thunkAPI) => { |
|
|
|
|
const { rejectWithValue } = thunkAPI; |
|
|
|
|
try { |
|
|
|
|
const res: any = await axios.get(`api/bas/dron/detail/${id}`); |
|
|
|
|
return res.data; |
|
|
|
|
} catch (error) { |
|
|
|
|
return rejectWithValue(error); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// 드론 생성
|
|
|
|
|
export const createDrone = createAsyncThunk( |
|
|
|
|
'basis/createDrone', |
|
|
|
|
async (rq: ICreateDroneRq, thunkAPI) => { |
|
|
|
|
const { rejectWithValue } = thunkAPI; |
|
|
|
|
try { |
|
|
|
|
const { data } = await axios.post('api/bas/dron/create', rq); |
|
|
|
|
|
|
|
|
|
if (data.result) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isMessage({ |
|
|
|
|
messageCode: SAVE_MESSAGE.code, |
|
|
|
|
message: SAVE_MESSAGE.message, |
|
|
|
|
isHistoryBack: true, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
if (data.errorCode === 'DT002') { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isError({ |
|
|
|
|
errorCode: DUPLATE_MESSAGE.code, |
|
|
|
|
errorMessage: '제작번호 ' + DUPLATE_MESSAGE.message, |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
throw Error; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (error) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isError({ |
|
|
|
|
errorCode: ERROR_MESSAGE.code, |
|
|
|
|
errorMessage: ERROR_MESSAGE.message, |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
rejectWithValue(error); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// 드론 수정
|
|
|
|
|
export const updateDrone = createAsyncThunk( |
|
|
|
|
'basis/updateDrone', |
|
|
|
|
async (rq: IUpdateDroneRq, thunkAPI) => { |
|
|
|
|
const { rejectWithValue } = thunkAPI; |
|
|
|
|
try { |
|
|
|
|
const { data } = await axios.put('api/bas/dron/update', rq); |
|
|
|
|
|
|
|
|
|
if (data.result) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isMessage({ |
|
|
|
|
messageCode: SAVE_MESSAGE.code, |
|
|
|
|
message: SAVE_MESSAGE.message, |
|
|
|
|
isHistoryBack: true, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
if (data.errorCode === 'DT002') { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isError({ |
|
|
|
|
errorCode: DUPLATE_MESSAGE.code, |
|
|
|
|
errorMessage: '제작번호 ' + DUPLATE_MESSAGE.message, |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
throw Error; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (error) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isError({ |
|
|
|
|
errorCode: ERROR_MESSAGE.code, |
|
|
|
|
errorMessage: ERROR_MESSAGE.message, |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
rejectWithValue(error); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// 드론 삭제
|
|
|
|
|
export const deleteDrone = createAsyncThunk( |
|
|
|
|
'basis/deleteDrone', |
|
|
|
|
async (id: number, thunkAPI) => { |
|
|
|
|
const { rejectWithValue } = thunkAPI; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
const { data } = await axios.delete(`api/bas/dron/delete/${id}`); |
|
|
|
|
|
|
|
|
|
if (data.result) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isMessage({ |
|
|
|
|
messageCode: DELETE_MESSAGE.code, |
|
|
|
|
message: DELETE_MESSAGE.message, |
|
|
|
|
isHistoryBack: true, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
throw Error; |
|
|
|
|
} |
|
|
|
|
} catch (error) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isError({ |
|
|
|
|
errorCode: ERROR_MESSAGE.code, |
|
|
|
|
errorMessage: ERROR_MESSAGE.message, |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
rejectWithValue(error); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// 식별장치 목록 조회
|
|
|
|
|
export const getIdntfList = createAsyncThunk( |
|
|
|
|
'basis/getIdntfList', |
|
|
|
|
async (id: number, thunkAPI) => { |
|
|
|
|
const { rejectWithValue } = thunkAPI; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
const res: any = await axios.get(`api/bas/dron/idntf/list/${id}`); |
|
|
|
|
const { data, count, errorCode } = res; |
|
|
|
|
|
|
|
|
|
if (errorCode) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isError({ |
|
|
|
|
errorCode: errorCode, |
|
|
|
|
errorMessage: '처리중 오류가 발생하였습니다', |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
throw Error; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const list = data |
|
|
|
|
? [ |
|
|
|
|
{ |
|
|
|
|
...data, |
|
|
|
|
isSave: true, |
|
|
|
|
id: data?.idntfNum, |
|
|
|
|
idntfNum: data.idntfNum.substring(2) |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
: []; |
|
|
|
|
|
|
|
|
|
return { data: list, count: count }; |
|
|
|
|
} catch (error) { |
|
|
|
|
return rejectWithValue(error); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// 식별장치 생성, 수정
|
|
|
|
|
export const createIdntf = createAsyncThunk( |
|
|
|
|
'basis/createIdntf', |
|
|
|
|
async ( |
|
|
|
|
rq: { mode: string; data: ICreateIdntfRq[]; arcrftSno: number }, |
|
|
|
|
thunkAPI |
|
|
|
|
) => { |
|
|
|
|
const { rejectWithValue } = thunkAPI; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
let res; |
|
|
|
|
if (rq.mode === 'create') { |
|
|
|
|
res = await axios.post('api/bas/dron/idntf/create', { |
|
|
|
|
data: rq.data, |
|
|
|
|
arcrftSno: rq.arcrftSno |
|
|
|
|
}); |
|
|
|
|
} else { |
|
|
|
|
res = await axios.put(`api/bas/dron/idntf/update/${rq.arcrftSno}`, { |
|
|
|
|
idntfNum: rq.data[0].idntfNum, |
|
|
|
|
ownerNm: rq.data[0].ownerNm, |
|
|
|
|
hpno: rq.data[0].hpno |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const { data } = res; |
|
|
|
|
|
|
|
|
|
if (data.result) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isMessage({ |
|
|
|
|
messageCode: SAVE_MESSAGE.code, |
|
|
|
|
message: SAVE_MESSAGE.message, |
|
|
|
|
isHistoryBack: true, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
return data; |
|
|
|
|
} else { |
|
|
|
|
if (data.errorCode === 'DT002') { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isError({ |
|
|
|
|
errorCode: DUPLATE_MESSAGE.code, |
|
|
|
|
errorMessage: '식별번호가 ' + DUPLATE_MESSAGE.message, |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
} else { |
|
|
|
|
throw Error; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} catch (error) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isError({ |
|
|
|
|
errorCode: ERROR_MESSAGE.code, |
|
|
|
|
errorMessage: ERROR_MESSAGE.message, |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
return rejectWithValue(error); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// 식별장치 삭제
|
|
|
|
|
export const deleteIdntf = createAsyncThunk( |
|
|
|
|
'basis/deleteIdntf', |
|
|
|
|
async (id: string, thunkAPI) => { |
|
|
|
|
const { rejectWithValue } = thunkAPI; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
const { data }: any = await axios.delete( |
|
|
|
|
`api/bas/dron/idntf/delete/${id}` |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// )
|
|
|
|
|
if (data.result) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isMessage({ |
|
|
|
|
messageCode: DELETE_MESSAGE.code, |
|
|
|
|
message: DELETE_MESSAGE.message, |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
return data; |
|
|
|
|
} else { |
|
|
|
|
throw Error; |
|
|
|
|
} |
|
|
|
|
} catch (error) { |
|
|
|
|
thunkAPI.dispatch( |
|
|
|
|
isError({ |
|
|
|
|
errorCode: ERROR_MESSAGE.code, |
|
|
|
|
errorMessage: ERROR_MESSAGE.message, |
|
|
|
|
isHistoryBack: false, |
|
|
|
|
isRefresh: false |
|
|
|
|
}) |
|
|
|
|
); |
|
|
|
|
return rejectWithValue(error); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
); |
|
|
|
|