노승철
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