From 37f0511002e2d8e9de6d38f0e669af1c52e879bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?junh=5Feee=28=EC=9D=B4=EC=A4=80=ED=9D=AC=29?= Date: Tue, 30 Jan 2024 13:56:12 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B8=B0=EC=B4=88=EC=A0=95=EB=B3=B4=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20Redux=20=EA=B2=BD=EB=A1=9C=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basis/dron/BasisDronContainer.js | 13 +- .../basis/dron/BasisDronDetailContainer.js | 4 +- .../basis/dron/BasisIdntfContainer.js | 2 +- .../actions/{basisDronAction.ts => index.ts} | 10 +- .../dron/apis/{basisDronApi.ts => index.ts} | 39 +-- src/modules/basis/dron/index.ts | 8 +- .../models/{basisDronModel.ts => index.ts} | 26 +- .../{basisDronReducer.ts => index.ts} | 5 +- .../dron/sagas/{basisDronSaga.ts => index.ts} | 17 +- .../basis/group/actions/basisGroupAction.ts | 3 - src/modules/basis/group/actions/index.ts | 262 ++++++++++++++++++ src/modules/basis/group/apis/basisGroupApi.ts | 40 ++- src/modules/statistics/models/index.ts | 2 +- 13 files changed, 335 insertions(+), 96 deletions(-) rename src/modules/basis/dron/actions/{basisDronAction.ts => index.ts} (95%) rename src/modules/basis/dron/apis/{basisDronApi.ts => index.ts} (65%) rename src/modules/basis/dron/models/{basisDronModel.ts => index.ts} (100%) rename src/modules/basis/dron/reducers/{basisDronReducer.ts => index.ts} (92%) rename src/modules/basis/dron/sagas/{basisDronSaga.ts => index.ts} (96%) create mode 100644 src/modules/basis/group/actions/index.ts diff --git a/src/containers/basis/dron/BasisDronContainer.js b/src/containers/basis/dron/BasisDronContainer.js index ecf29cf5..b04f30df 100644 --- a/src/containers/basis/dron/BasisDronContainer.js +++ b/src/containers/basis/dron/BasisDronContainer.js @@ -2,12 +2,11 @@ import { useEffect, useState } from 'react'; import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import { useHistory, Link } from 'react-router-dom'; import { Button } from 'reactstrap'; -import * as Actions from '../../../modules/basis/dron/actions/basisDronAction'; +import * as DronActions from '../../../modules/basis/dron/actions'; import * as GroupActions from '../../../modules/basis/group/actions/basisGroupAction'; import { GET_ARCTFT_TYPE_CD } from '../../../utility/CondeUtil'; import { GET_WGHT_TYPE_CD } from '../../../utility/CondeUtil'; import { BasisContainer } from '../BasisContainer'; -import { BasisGroupGrid } from '../../../components/basis/BasisGroupGrid'; import { BasisDataGrid } from '../../../components/basis/BasisDataGrid'; export const BasisDronContainer = props => { @@ -181,12 +180,12 @@ export const BasisDronContainer = props => { const handlerPageChange = page => { const param = params; param.page = page; - dispatch(Actions.LIST.request({ searchParams: param })); + dispatch(DronActions.LIST.request({ searchParams: param })); }; // 상세보기 선택 시 const handlerDetail = (groupId, groupNm, groupAuthCd, myGroupAuthCd) => { - dispatch(Actions.SELECT({ groupId: groupId, groupNm: groupNm })); + dispatch(DronActions.SELECT({ groupId: groupId, groupNm: groupNm })); localStorage.setItem('dronGroupId', groupId); localStorage.setItem('dronGroupNm', groupNm); setParams({ @@ -195,7 +194,7 @@ export const BasisDronContainer = props => { groupNm: groupNm }); dispatch( - Actions.LIST.request({ searchParams: { groupId: groupId, page: 1 } }) + DronActions.LIST.request({ searchParams: { groupId: groupId, page: 1 } }) ); //기체등록버튼 활성/비활성 제어 @@ -216,13 +215,13 @@ export const BasisDronContainer = props => { // 기체 등록 화면으로 이동 const handlerGroupCreate = () => { - dispatch(Actions.RESET_IDNTF()); // 초기화 진행 + dispatch(DronActions.RESET_IDNTF()); // 초기화 진행 history.push(`/basis/dron/create`); }; // 상세보기 선택취소 시 const handlerCancel = () => { - dispatch(Actions.SELECT()); + dispatch(DronActions.SELECT()); setParams({ ...params, diff --git a/src/containers/basis/dron/BasisDronDetailContainer.js b/src/containers/basis/dron/BasisDronDetailContainer.js index 659103ba..a4a934e9 100644 --- a/src/containers/basis/dron/BasisDronDetailContainer.js +++ b/src/containers/basis/dron/BasisDronDetailContainer.js @@ -8,8 +8,8 @@ import { yupResolver } from '@hookform/resolvers/yup'; import { BasisDronForm } from '../../../components/basis/dron/BasisDronForm'; import { BasisDronImage } from '../../../components/basis/dron/BasisDronImage'; -import * as Actions from '../../../modules/basis/dron/actions/basisDronAction'; -import { dronAPI } from '../../../modules/basis/dron/apis/basisDronApi'; +import * as Actions from '../../../modules/basis/dron/actions'; +import { dronAPI } from '../../../modules/basis/dron/apis'; import { IMG_PATH } from '../../../configs/constants'; export const BasisDronDetailContainer = props => { diff --git a/src/containers/basis/dron/BasisIdntfContainer.js b/src/containers/basis/dron/BasisIdntfContainer.js index 2e7515b9..e9a225a4 100644 --- a/src/containers/basis/dron/BasisIdntfContainer.js +++ b/src/containers/basis/dron/BasisIdntfContainer.js @@ -2,7 +2,7 @@ import { useEffect, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { Card, CardBody, Col, Row } from 'reactstrap'; import { BasisIdntfForm } from '../../../components/basis/dron/BasisIdntform'; -import * as Actions from '../../../modules/basis/dron/actions/basisDronAction'; +import * as Actions from '../../../modules/basis/dron/actions'; import ErrorModal from '../../../components/modal/ErrorModal'; export const BasisIdntfContainer = props => { const dispatch = useDispatch(); diff --git a/src/modules/basis/dron/actions/basisDronAction.ts b/src/modules/basis/dron/actions/index.ts similarity index 95% rename from src/modules/basis/dron/actions/basisDronAction.ts rename to src/modules/basis/dron/actions/index.ts index 209ab754..3f13e722 100644 --- a/src/modules/basis/dron/actions/basisDronAction.ts +++ b/src/modules/basis/dron/actions/index.ts @@ -1,13 +1,7 @@ import { AxiosError } from 'axios'; import { createAsyncAction, ActionType, createAction } from 'typesafe-actions'; -import { ErrorModel } from '../../../models/ComnModel'; -import { - initDron, - DronData, - DronState, - SelectData, - IdntfData -} from '../models/basisDronModel'; + +import { DronData, DronState, SelectData, IdntfData } from '../models'; //# 목록 조회 const LIST_REQUEST = 'basis/dron/LIST_REQUEST'; diff --git a/src/modules/basis/dron/apis/basisDronApi.ts b/src/modules/basis/dron/apis/index.ts similarity index 65% rename from src/modules/basis/dron/apis/basisDronApi.ts rename to src/modules/basis/dron/apis/index.ts index 5bfc2515..e3f0f29a 100644 --- a/src/modules/basis/dron/apis/basisDronApi.ts +++ b/src/modules/basis/dron/apis/index.ts @@ -1,9 +1,9 @@ import axios from '../../../utils/customAxiosUtil'; - import qs from 'qs'; -import { DronData, IdntfData } from '../models/basisDronModel'; +import { DronData } from '../models'; export const dronAPI = { + // 드론 목록 조회 list: async (data: string) => { const queryString = qs.stringify(data, { addQueryPrefix: true, @@ -11,10 +11,11 @@ export const dronAPI = { }); return await axios.get(`api/bas/dron/list${queryString}`); }, - + // 식별장치 목록 조회 idntfList: async (id: number) => { return await axios.get(`api/bas/dron/idntf/list/${id}`); }, + // 식별장치 수정 idntfUpdate: async (item: { id: number; data: any[] }) => { return await axios.put(`/api/bas/dron/idntf/update/${item.id}`, { idntfNum: item.data[0].idntfNum, @@ -22,44 +23,34 @@ export const dronAPI = { hpno: item.data[0].hpno }); }, - + // 드론 상세 조회 detail: async (id: number) => { return await axios.get(`api/bas/dron/detail/${id}`); }, - + //드론 생성 create: async (data: DronData) => { - const res = await axios.post('api/bas/dron/create', data); - // const res = await axios.post('api/bas/dron/create', data, { - // headers: { 'Content-Type': 'multipart/form-data' } - // }); - - return res; + return await axios.post('api/bas/dron/create', data); }, + // 식별장치 생성 idntfCreate: async (item: { data: any[]; arcrftSno: number }) => { - const res = await axios.post('api/bas/dron/idntf/create', item); - - return res; + return await axios.post('api/bas/dron/idntf/create', item); }, + // 드론 수정 update: async (data: DronData) => { - const res = await axios.put('api/bas/dron/update', data); - - return res; + return await axios.put('api/bas/dron/update', data); }, + // 드론 삭제 delete: async (id: number) => { return await axios.delete(`api/bas/dron/delete/${id}`); }, + // 식별장치 삭제 idntfDelete: async (id: string) => { return await axios.delete(`api/bas/dron/idntf/delete/${id}`); }, + // 드론 이미지 업로드 fileupload: async (file: any) => { let form = new FormData(); form.append('file', file); - - // const res = await axios.post('api/file/upload', form, { - // headers: { 'Content-Type': 'multipart/form-data' } - // }); - const res = await axios.post('api/file/upload', form); - - return res; + return await axios.post('api/file/upload', form); } }; diff --git a/src/modules/basis/dron/index.ts b/src/modules/basis/dron/index.ts index a9495a00..2ac0c247 100644 --- a/src/modules/basis/dron/index.ts +++ b/src/modules/basis/dron/index.ts @@ -1,4 +1,4 @@ -export * from './actions/basisDronAction'; -export * from './models/basisDronModel'; -export * from './reducers/basisDronReducer'; -export * from './sagas/basisDronSaga'; +export * from './actions'; +export * from './models'; +export * from './reducers'; +export * from './sagas'; diff --git a/src/modules/basis/dron/models/basisDronModel.ts b/src/modules/basis/dron/models/index.ts similarity index 100% rename from src/modules/basis/dron/models/basisDronModel.ts rename to src/modules/basis/dron/models/index.ts index 537af2b7..6f0b476a 100644 --- a/src/modules/basis/dron/models/basisDronModel.ts +++ b/src/modules/basis/dron/models/index.ts @@ -1,16 +1,3 @@ -export const initDron = { - list: undefined, - count: 0, - detail: undefined, - searchParams: '', - selectData: undefined, - listIdntf: undefined, - idntfCount: 0, - isRefreshIdntf: false, - page: 1, - total: 0 -}; - export interface DronState { list: DronData[] | undefined; count: number | 0; @@ -69,3 +56,16 @@ export interface IdntfData { createDt: Date; cstmrSno: number; } + +export const initDron = { + list: undefined, + count: 0, + detail: undefined, + searchParams: '', + selectData: undefined, + listIdntf: undefined, + idntfCount: 0, + isRefreshIdntf: false, + page: 1, + total: 0 +}; diff --git a/src/modules/basis/dron/reducers/basisDronReducer.ts b/src/modules/basis/dron/reducers/index.ts similarity index 92% rename from src/modules/basis/dron/reducers/basisDronReducer.ts rename to src/modules/basis/dron/reducers/index.ts index c760659c..c31701c0 100644 --- a/src/modules/basis/dron/reducers/basisDronReducer.ts +++ b/src/modules/basis/dron/reducers/index.ts @@ -1,8 +1,8 @@ import { createReducer } from 'typesafe-actions'; import produce from 'immer'; -import * as Actions from '../actions/basisDronAction'; -import { DronState, initDron } from '../models/basisDronModel'; +import * as Actions from '../actions'; +import { DronState, initDron } from '../models'; export const dronReducer = createReducer( initDron @@ -47,7 +47,6 @@ export const dronReducer = createReducer( draft.idntfCount = 0; }) ) - .handleAction(Actions.DETAIL.success, (state, action) => produce(state, draft => { const data = action.payload; diff --git a/src/modules/basis/dron/sagas/basisDronSaga.ts b/src/modules/basis/dron/sagas/index.ts similarity index 96% rename from src/modules/basis/dron/sagas/basisDronSaga.ts rename to src/modules/basis/dron/sagas/index.ts index 2ee0f172..9c31513f 100644 --- a/src/modules/basis/dron/sagas/basisDronSaga.ts +++ b/src/modules/basis/dron/sagas/index.ts @@ -7,8 +7,8 @@ import { SAVE_MESSAGE } from '../../../../configs/constants'; import * as MessageActions from '../../../comn/message/actions/comnMessageAction'; -import * as Actions from '../actions/basisDronAction'; -import * as Apis from '../apis/basisDronApi'; +import * as Actions from '../actions'; +import * as Apis from '../apis'; function* listSaga(action: ActionType) { try { @@ -40,7 +40,7 @@ function* listSaga(action: ActionType) { total }) ); - } catch (error) { + } catch (error: any) { yield put(Actions.LIST.failure(error)); } } @@ -80,7 +80,7 @@ function* listIdntfSaga(action: ActionType) { count: count }) ); - } catch (error) { + } catch (error: any) { yield put(Actions.IDNTF_LIST.failure(error)); } } @@ -92,7 +92,7 @@ function* detailSaga(action: ActionType) { const { data } = res; yield put(Actions.DETAIL.success(data)); - } catch (error) { + } catch (error: any) { yield put(Actions.DETAIL.failure(error)); } } @@ -128,7 +128,7 @@ function* createSaga(action: ActionType) { throw Error; } } - } catch (error) { + } catch (error: any) { yield put( MessageActions.IS_ERROR({ errorCode: ERROR_MESSAGE.code, @@ -185,7 +185,7 @@ function* createIdntfSaga( throw Error; } } - } catch (error) { + } catch (error: any) { yield put( MessageActions.IS_ERROR({ errorCode: ERROR_MESSAGE.code, @@ -202,6 +202,7 @@ function* updateSaga(action: ActionType) { try { const detail = action.payload; const res = yield call(Apis.dronAPI.update, detail); + console.log(res, '---res'); const { data } = res; @@ -228,7 +229,7 @@ function* updateSaga(action: ActionType) { throw Error; } } - } catch (error) { + } catch (error: any) { yield put( MessageActions.IS_ERROR({ errorCode: ERROR_MESSAGE.code, diff --git a/src/modules/basis/group/actions/basisGroupAction.ts b/src/modules/basis/group/actions/basisGroupAction.ts index 7811f40f..ab8e02b6 100644 --- a/src/modules/basis/group/actions/basisGroupAction.ts +++ b/src/modules/basis/group/actions/basisGroupAction.ts @@ -1,8 +1,6 @@ import { AxiosError } from 'axios'; import { createAsyncAction, ActionType, createAction } from 'typesafe-actions'; -import { ErrorModel } from '../../../models/ComnModel'; import { - initGroup, GroupData, JoinGroupData, AprvGroupData, @@ -256,7 +254,6 @@ const actions = { USER_DELEGATE, GROUP_MYLIST, GROUP_MAIN_LIST, - SELECT, GROUP_APRV_SELECT, GROUP_USER_SELECT diff --git a/src/modules/basis/group/actions/index.ts b/src/modules/basis/group/actions/index.ts new file mode 100644 index 00000000..ab8e02b6 --- /dev/null +++ b/src/modules/basis/group/actions/index.ts @@ -0,0 +1,262 @@ +import { AxiosError } from 'axios'; +import { createAsyncAction, ActionType, createAction } from 'typesafe-actions'; +import { + GroupData, + JoinGroupData, + AprvGroupData, + UserGroupData, + UserGroupState, + GroupState, + MainGroupData, + SelectData +} from '../models/basisGroupModel'; + +//# 나의 그룹 목록 조회 +const MY_LIST_REQUEST = 'basis/group/MY_LIST_REQUEST'; +const MY_LIST_SUCCESS = 'basis/group/MY_LIST_SUCCESS'; +const MY_LIST_FAILURE = 'basis/group/MY_LIST_FAILURE'; + +//# 참여 그룹 목록 조회 +const JOIN_LIST_REQUEST = 'basis/group/JOIN_LIST_REQUEST'; +const JOIN_LIST_SUCCESS = 'basis/group/JOIN_LIST_SUCCESS'; +const JOIN_LIST_FAILURE = 'basis/group/JOIN_LIST_FAILURE'; + +//# 그룹 상세 조회 +const GROUP_DETAIL_REQUEST = 'basis/group/GROUP_DETAIL_REQUEST'; +const GROUP_DETAIL_SUCCESS = 'basis/group/GROUP_DETAIL_SUCCESS'; +const GROUP_DETAIL_FAILURE = 'basis/group/GROUP_DETAIL_FAILURE'; + +//## 그룹 생성 +const GROUP_CREATE_REQUEST = 'basis/group/GROUP_CREATE_REQUEST'; +const GROUP_CREATE_SUCCESS = 'basis/group/GROUP_CREATE_SUCCESS'; +const GROUP_CREATE_FAILURE = 'basis/group/GROUP_CREATE_FAILURE'; + +//## 그룹 수정 +const GROUP_UPDATE_REQUEST = 'basis/group/GROUP_UPDATE_REQUEST'; +const GROUP_UPDATE_SUCCESS = 'basis/group/GROUP_UPDATE_SUCCESS'; +const GROUP_UPDATE_FAILURE = 'basis/group/GROUP_UPDATE_FAILURE'; + +//## 그룹 삭제 +const GROUP_DELETE_REQUEST = 'basis/group/GROUP_DELETE_REQUEST'; +const GROUP_DELETE_SUCCESS = 'basis/group/GROUP_DELETE_SUCCESS'; +const GROUP_DELETE_FAILURE = 'basis/group/GROUP_DELETE_FAILURE'; + +//## 그룹 전체 조회 +const GROUP_LIST_REQUEST = 'basis/group/GROUP_LIST_REQUEST'; +const GROUP_LIST_SUCCESS = 'basis/group/GROUP_LIST_SUCCESS'; +const GROUP_LIST_FAILURE = 'basis/group/GROUP_LIST_FAILURE'; + +const ENTIRE_GROUP_LIST_REQUEST = 'basis/group/ENTIRE_GROUP_LIST_REQUEST'; +const ENTIRE_GROUP_LIST_SUCCESS = 'basis/group/ENTIRE_GROUP_LIST_SUCCESS'; +const ENTIRE_GROUP_LIST_FAILURE = 'basis/group/ENTIRE_GROUP_LIST_FAILURE'; + +//# 그룹코드 발급 +const GROUP_CREATEID_REQUEST = 'basis/group/GROUP_CREATEID_REQUEST'; +const GROUP_CREATEID_SUCCESS = 'basis/group/GROUP_CREATEID_SUCCESS'; +const GROUP_CREATEID_FAILURE = 'basis/group/GROUP_CREATEID_FAILURE'; + +//# 참여가능 그룹 목록 조회 +const GROUP_JOINLIST_REQUEST = 'basis/group/GROUP_JOINLIST_REQUEST'; +const GROUP_JOINLIST_SUCCESS = 'basis/group/GROUP_JOINLIST_SUCCESS'; +const GROUP_JOINLIST_FAILURE = 'basis/group/GROUP_JOINLIST_FAILURE'; + +//# 나의 그룹 목록 조회 +const GROUP_MYLIST_REQUEST = 'basis/group/GROUP_MYLIST_REQUEST'; +const GROUP_MYLIST_SUCCESS = 'basis/group/GROUP_MYLIST_SUCCESS'; +const GROUP_MYLIST_FAILURE = 'basis/group/GROUP_MYLIST_FAILURE'; + +//# 그룹 가입처리 +const GROUP_JOIN_REQUEST = 'basis/group/GROUP_JOIN_REQUEST'; +const GROUP_JOIN_SUCCESS = 'basis/group/GROUP_JOIN_SUCCESS'; +const GROUP_JOIN_FAILURE = 'basis/group/GROUP_JOIN_FAILURE'; + +//# 그룹 가입 탈퇴 / 취소 처리 +const GROUP_JOIN_UPDATE_REQUEST = 'basis/group/GROUP_JOIN_UPDATE_REQUEST'; +const GROUP_JOIN_UPDATE_SUCCESS = 'basis/group/GROUP_JOIN_UPDATE_SUCCESS'; +const GROUP_JOIN_UPDATE_FAILURE = 'basis/group/GROUP_JOIN_UPDATE_FAILURE'; + +//# 승인요청 조회 +const APPROVAL_LIST_REQUEST = 'basis/group/APPROVAL_LIST_REQUEST'; +const APPROVAL_LIST_SUCCESS = 'basis/group/APPROVAL_LIST_SUCCESS'; +const APPROVAL_LIST_FAILURE = 'basis/group/APPROVAL_LIST_FAILURE'; + +//# 승인처리 / 취소 처리 +const APPROVAL_UPDATE_REQUEST = 'basis/group/APPROVAL_UPDATE_REQUEST'; +const APPROVAL_UPDATE_SUCCESS = 'basis/group/APPROVAL_UPDATE_SUCCESS'; +const APPROVAL_UPDATE_FAILURE = 'basis/group/APPROVAL_UPDATE_FAILURE'; + +//# 그룹사용자 조회 +const USER_LIST_REQUEST = 'basis/group/USER_LIST_REQUEST'; +const USER_LIST_SUCCESS = 'basis/group/USER_LIST_SUCCESS'; +const USER_LIST_FAILURE = 'basis/group/USER_LIST_FAILURE'; + +//# 사용자 권한 수정 / 블럭 처리 +const USER_UPDATE_REQUEST = 'basis/group/USER_UPDATE_REQUEST'; +const USER_UPDATE_SUCCESS = 'basis/group/USER_UPDATE_SUCCESS'; +const USER_UPDATE_FAILURE = 'basis/group/USER_UPDATE_FAILURE'; + +//# 그룹장 권한 위임 +const USER_DELEGATE_REQUEST = 'basis/group/USER_DELEGATE_REQUEST'; +const USER_DELEGATE_SUCCESS = 'basis/group/USER_DELEGATE_SUCCESS'; +const USER_DELEGATE_FAILURE = 'basis/group/USER_DELEGATE_FAILURE'; + +const GROUP_MAIN_LIST_REQUEST = 'basis/group/GROUP_MAIN_LIST_REQUEST'; +const GROUP_MAIN_LIST_SUCCESS = 'basis/group/GROUP_MAIN_LIST_SUCCESS'; +const GROUP_MAIN_LIST_FAILURE = 'basis/group/GROUP_MAIN_LIST_FAILURE'; + +//그룹 선택 +const SELECT_GROUP = 'basis/group/SELECT_GROUP'; +const APRV_GROUP_SELECT = 'basis/group/APRV_GROUP_SELECT'; +const USER_GROUP_SELECT = 'basis/group/USER_GROUP_SELECT'; + +export const MY_LIST = createAsyncAction( + MY_LIST_REQUEST, + MY_LIST_SUCCESS, + MY_LIST_FAILURE +)(); + +export const JOIN_LIST = createAsyncAction( + JOIN_LIST_REQUEST, + JOIN_LIST_SUCCESS, + JOIN_LIST_FAILURE +)(); + +export const GROUP_MYLIST = createAsyncAction( + GROUP_MYLIST_REQUEST, + GROUP_MYLIST_SUCCESS, + GROUP_MYLIST_FAILURE +)(); + +export const GROUP_MAIN_LIST = createAsyncAction( + GROUP_MAIN_LIST_REQUEST, + GROUP_MAIN_LIST_SUCCESS, + GROUP_MAIN_LIST_FAILURE +)(); + +export const GROUP_DETAIL = createAsyncAction( + GROUP_DETAIL_REQUEST, + GROUP_DETAIL_SUCCESS, + GROUP_DETAIL_FAILURE +)(); + +export const GROUP_CREATE = createAsyncAction( + GROUP_CREATE_REQUEST, + GROUP_CREATE_SUCCESS, + GROUP_CREATE_FAILURE +)(); +export const GROUP_UPDATE = createAsyncAction( + GROUP_UPDATE_REQUEST, + GROUP_UPDATE_SUCCESS, + GROUP_UPDATE_FAILURE +)(); +export const GROUP_DELETE = createAsyncAction( + GROUP_DELETE_REQUEST, + GROUP_DELETE_SUCCESS, + GROUP_DELETE_FAILURE +)(); + +export const GROUP_LIST = createAsyncAction( + GROUP_LIST_REQUEST, + GROUP_LIST_SUCCESS, + GROUP_LIST_FAILURE + // )(); +)(); + +export const ENTIRE_GROUP_LIST = createAsyncAction( + ENTIRE_GROUP_LIST_REQUEST, + ENTIRE_GROUP_LIST_SUCCESS, + ENTIRE_GROUP_LIST_FAILURE +)(); + +export const GROUP_CREATEID = createAsyncAction( + GROUP_CREATEID_REQUEST, + GROUP_CREATEID_SUCCESS, + GROUP_CREATEID_FAILURE +)(); + +export const GROUP_JOINLIST = createAsyncAction( + GROUP_JOINLIST_REQUEST, + GROUP_JOINLIST_SUCCESS, + GROUP_JOINLIST_FAILURE +)(); + +export const GROUP_JOIN = createAsyncAction( + GROUP_JOIN_REQUEST, + GROUP_JOIN_SUCCESS, + GROUP_JOIN_FAILURE +)(); + +export const GROUP_JOIN_UPDATE = createAsyncAction( + GROUP_JOIN_UPDATE_REQUEST, + GROUP_JOIN_UPDATE_SUCCESS, + GROUP_JOIN_UPDATE_FAILURE +)(); + +export const APPROVAL_LIST = createAsyncAction( + APPROVAL_LIST_REQUEST, + APPROVAL_LIST_SUCCESS, + APPROVAL_LIST_FAILURE +)< + GroupState, + { data: AprvGroupData[]; count: number; total: number }, + AxiosError +>(); + +export const APPROVAL_UPDATE = createAsyncAction( + APPROVAL_UPDATE_REQUEST, + APPROVAL_UPDATE_SUCCESS, + APPROVAL_UPDATE_FAILURE +)(); + +export const USER_LIST = createAsyncAction( + USER_LIST_REQUEST, + USER_LIST_SUCCESS, + USER_LIST_FAILURE +)< + GroupState, + { data: UserGroupData[]; count: number; total: number }, + AxiosError +>(); + +export const USER_UPDATE = createAsyncAction( + USER_UPDATE_REQUEST, + USER_UPDATE_SUCCESS, + USER_UPDATE_FAILURE +)(); + +export const USER_DELEGATE = createAsyncAction( + USER_DELEGATE_REQUEST, + USER_DELEGATE_SUCCESS, + USER_DELEGATE_FAILURE +)(); + +export const SELECT = createAction(SELECT_GROUP)(); +export const GROUP_APRV_SELECT = createAction(APRV_GROUP_SELECT)(); +export const GROUP_USER_SELECT = createAction(USER_GROUP_SELECT)(); + +const actions = { + MY_LIST, + JOIN_LIST, + GROUP_DETAIL, + GROUP_CREATE, + GROUP_UPDATE, + GROUP_DELETE, + GROUP_LIST, + ENTIRE_GROUP_LIST, + GROUP_CREATEID, + GROUP_JOINLIST, + GROUP_JOIN, + GROUP_JOIN_UPDATE, + APPROVAL_LIST, + APPROVAL_UPDATE, + USER_LIST, + USER_UPDATE, + USER_DELEGATE, + GROUP_MYLIST, + GROUP_MAIN_LIST, + SELECT, + GROUP_APRV_SELECT, + GROUP_USER_SELECT +}; + +export type GroupAction = ActionType; diff --git a/src/modules/basis/group/apis/basisGroupApi.ts b/src/modules/basis/group/apis/basisGroupApi.ts index 8bcc5dfa..abd824f4 100644 --- a/src/modules/basis/group/apis/basisGroupApi.ts +++ b/src/modules/basis/group/apis/basisGroupApi.ts @@ -8,9 +8,9 @@ import { UserGroupData, UserGroupState } from '../models/basisGroupModel'; -// import { ReponseControlGpHistory } from '../models/controlGpModel'; export const groupAPI = { + // 내가 생성한 그룹 조회 listMyGroup: async (data: string) => { const queryString = qs.stringify(data, { addQueryPrefix: true, @@ -18,6 +18,7 @@ export const groupAPI = { }); return await axios.get(`api/bas/group/mylist${queryString}`); }, + // 내가 참여한 그룹 조회 listMyGroupJoin: async (data: string) => { const queryString = qs.stringify(data, { addQueryPrefix: true, @@ -25,6 +26,8 @@ export const groupAPI = { }); return await axios.get(`api/bas/group/joinlist${queryString}`); }, + // 나와 관련된 모든 그룹 조회(생성 + 참여) + // super, admin은 모든 그룹 조회 grouplist: async (data: string) => { const id = qs.stringify(data, { addQueryPrefix: true, @@ -32,22 +35,23 @@ export const groupAPI = { }); return await axios.get(`api/bas/group/grouplist${id}`); }, + // 그룹 상세 조회 detailGroup: async (id: string) => { return await axios.get(`api/bas/group/detail/${id}`); }, + // 그룹 생성 createGroup: async (data: GroupData) => { - const res = await axios.post('api/bas/group/create', data); - - return res; + return await axios.post('api/bas/group/create', data); }, + // 그룹 수정 updateGroup: async (data: GroupData) => { - const res = await axios.put('api/bas/group/update', data); - - return res; + return await axios.put('api/bas/group/update', data); }, + // 그룹 삭제 deleteGroup: async (id: string) => { return await axios.delete(`api/bas/group/delete/${id}`); }, + // 그룹 검색 (미 사용) listGroup: async (data: string) => { const queryString = qs.stringify(data, { addQueryPrefix: true, @@ -55,9 +59,11 @@ export const groupAPI = { }); return await axios.get(`api/bas/group/list${queryString}`); }, + // 그룹 코드 생성 createid: async () => { return await axios.get('api/bas/group/createid'); }, + // 내가 가입할 그룹 목록 조회 listGroupJoin: async (data: string) => { const queryString = qs.stringify(data, { addQueryPrefix: true, @@ -66,14 +72,10 @@ export const groupAPI = { return await axios.get(`api/bas/group/join/list${queryString}`); }, createJoinGroup: async (data: JoinGroupData) => { - const res = await axios.post('api/bas/group/join/create', data); - - return res; + return await axios.post('api/bas/group/join/create', data); }, updateJoinGroup: async (data: JoinGroupData) => { - const res = await axios.put('api/bas/group/join/update', data); - - return res; + return await axios.put('api/bas/group/join/update', data); }, listGroupAprv: async (data: string, page: number) => { const queryString = qs.stringify(data, { @@ -83,9 +85,7 @@ export const groupAPI = { return await axios.get(`api/bas/group/aprv/list${queryString}`); }, updateAprvGroup: async (data: AprvGroupData) => { - const res = await axios.put('api/bas/group/aprv/update', data); - - return res; + return await axios.put('api/bas/group/aprv/update', data); }, listGroupUser: async (data: string) => { const queryString = qs.stringify(data, { @@ -95,13 +95,9 @@ export const groupAPI = { return await axios.get(`api/bas/group/user/list${queryString}`); }, updateUser: async (data: UserGroupData) => { - const res = await axios.put('api/bas/group/user/update', data); - - return res; + return await axios.put('api/bas/group/user/update', data); }, delegateUser: async (data: UserGroupState) => { - const res = await axios.put('api/bas/group/user/delegate', data); - - return res; + return await axios.put('api/bas/group/user/delegate', data); } }; diff --git a/src/modules/statistics/models/index.ts b/src/modules/statistics/models/index.ts index 39889195..024a9f46 100644 --- a/src/modules/statistics/models/index.ts +++ b/src/modules/statistics/models/index.ts @@ -34,7 +34,7 @@ export interface IStcsSearchRq { serviceType: string; } -export const initialState = { +export const initialState: IStatisticsState = { flight: [ { name: '-',