노승철
2 years ago
9 changed files with 151 additions and 16 deletions
@ -0,0 +1,21 @@ |
|||||||
|
import { AxiosError } from 'axios'; |
||||||
|
import { createAsyncAction, ActionType} from 'typesafe-actions'; |
||||||
|
import { FlightAreaData } from '../models/basisFlightModel'; |
||||||
|
|
||||||
|
|
||||||
|
// 공역 조회
|
||||||
|
const AREA_LIST_REQUEST = 'basis/flight/area/LIST_REQUEST'; |
||||||
|
const AREA_LIST_SUCCESS = 'basis/flight/area/LIST_SUCCESS'; |
||||||
|
const AREA_LIST_FAILURE = 'basis/flight/area/LIST_FAILURE'; |
||||||
|
|
||||||
|
export const AREA_LIST = createAsyncAction( |
||||||
|
AREA_LIST_REQUEST, |
||||||
|
AREA_LIST_SUCCESS, |
||||||
|
AREA_LIST_FAILURE |
||||||
|
)<FlightAreaData, { data: FlightAreaData }, AxiosError>(); |
||||||
|
|
||||||
|
const actions = { |
||||||
|
AREA_LIST |
||||||
|
}; |
||||||
|
|
||||||
|
export type FlightAction = ActionType<typeof actions>; |
@ -0,0 +1,9 @@ |
|||||||
|
import axios from '../../../utils/customAxiosUtil'; |
||||||
|
import qs from 'qs'; |
||||||
|
|
||||||
|
|
||||||
|
export const flightPlanAPI = { |
||||||
|
area: async () => { |
||||||
|
return await axios.get(`api/bas/flight/area`); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
export interface FlightState { |
||||||
|
areaList: FlightAreaData | undefined
|
||||||
|
} |
||||||
|
|
||||||
|
export interface FlightAreaData { |
||||||
|
areaList: [] |
||||||
|
} |
||||||
|
|
||||||
|
export const initFlight = { |
||||||
|
areaList: undefined
|
||||||
|
}; |
@ -0,0 +1,15 @@ |
|||||||
|
import { createReducer } from 'typesafe-actions'; |
||||||
|
import produce from 'immer'; |
||||||
|
|
||||||
|
import * as Actions from '../actions/basisFlightAction'; |
||||||
|
import { FlightState, initFlight } from '../models/basisFlightModel'; |
||||||
|
import { any } from 'prop-types'; |
||||||
|
|
||||||
|
|
||||||
|
export const flightReducer = createReducer<FlightState, Actions.FlightAction> ( initFlight ) |
||||||
|
.handleAction(Actions.AREA_LIST.success, (state, action) =>
|
||||||
|
produce(state, draft => { |
||||||
|
const {data} = action.payload; |
||||||
|
draft.areaList = data;
|
||||||
|
}) |
||||||
|
) ; |
@ -0,0 +1,43 @@ |
|||||||
|
import { call, put, takeEvery } from '@redux-saga/core/effects'; |
||||||
|
import { ActionType } from 'typesafe-actions'; |
||||||
|
import { |
||||||
|
DELETE_MESSAGE, |
||||||
|
DUPLATE_MESSAGE, |
||||||
|
ERROR_MESSAGE, |
||||||
|
SAVE_MESSAGE |
||||||
|
} from '../../../../configs/constants'; |
||||||
|
import * as MessageActions from '../../../comn/message/actions/comnMessageAction'; |
||||||
|
import * as Actions from '../actions/basisFlightAction'; |
||||||
|
import * as Apis from '../apis/basisFlightApi'; |
||||||
|
|
||||||
|
function* listAreaSaga(action: ActionType<typeof Actions.AREA_LIST.request>) { |
||||||
|
try { |
||||||
|
const response = yield call(Apis.flightPlanAPI.area); |
||||||
|
|
||||||
|
if(response.errorCode) { |
||||||
|
yield put( |
||||||
|
MessageActions.IS_ERROR({ |
||||||
|
errorCode: response.errorCode, |
||||||
|
errorMessage: response.errorMessage, |
||||||
|
isHistoryBack: false, |
||||||
|
isRefresh: false |
||||||
|
}) |
||||||
|
); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
yield put( |
||||||
|
Actions.AREA_LIST.success({
|
||||||
|
data: response |
||||||
|
}) |
||||||
|
); |
||||||
|
} catch (error: any) { |
||||||
|
yield put( |
||||||
|
Actions.AREA_LIST.failure(error) |
||||||
|
); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
export function* flightSaga() { |
||||||
|
yield takeEvery(Actions.AREA_LIST.request, listAreaSaga); |
||||||
|
} |
Loading…
Reference in new issue