From 61cd9918b4ee54cf508bfd4c9e0a09a9aba39a2a 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: Fri, 2 Feb 2024 17:22:57 +0900 Subject: [PATCH] =?UTF-8?q?[Redux]=20/account/auth=20=EB=84=A4=EC=9D=B4?= =?UTF-8?q?=EB=B0=8D=20=EA=B7=9C=EC=B9=99=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../layouts/components/navbar/UserDropdown.js | 2 +- src/components/account/login/AccountLogin.js | 2 +- .../account/mypage/AccountMypagePwForm.js | 29 ++-- .../account/mypage/AccountMypageContainer.js | 16 +- .../simulator/AnalysisSimulationContainer.js | 2 +- .../inquiry/UserInquiryContainer.js | 4 +- src/modules/_sample/models/index.ts | 4 +- src/modules/_sample/reducers/index.ts | 4 +- src/modules/account/auth/actions/index.ts | 144 +++++++++--------- src/modules/account/auth/apis/index.ts | 22 +-- src/modules/account/auth/models/index.ts | 70 +++++++-- src/modules/account/auth/reducers/index.ts | 92 +++++------ src/modules/account/auth/sagas/index.ts | 73 ++++----- src/modules/basis/drone/models/index.ts | 2 +- src/modules/basis/drone/reducers/index.ts | 4 +- src/modules/basis/group/models/index.ts | 2 +- src/modules/basis/group/reducers/index.ts | 4 +- .../cstmrService/inquiry/actions/index.ts | 8 +- .../cstmrService/inquiry/reducers/index.ts | 2 +- .../cstmrService/inquiry/sagas/index.ts | 22 ++- src/modules/utils/customAxiosUtil.ts | 2 +- src/redux/reducers/rootReducer.ts | 4 +- src/views/control/main/ControlMain.js | 2 +- 23 files changed, 274 insertions(+), 242 deletions(-) diff --git a/src/@core/layouts/components/navbar/UserDropdown.js b/src/@core/layouts/components/navbar/UserDropdown.js index d07a1521..193c1825 100644 --- a/src/@core/layouts/components/navbar/UserDropdown.js +++ b/src/@core/layouts/components/navbar/UserDropdown.js @@ -26,7 +26,7 @@ const UserDropdown = () => { const { isLogin, user } = useSelector(state => state.authState); const handelrLogout = async () => { - dispatch(Actions.logout.request()); + dispatch(Actions.userLogout.request()); }; // useEffect(() => { diff --git a/src/components/account/login/AccountLogin.js b/src/components/account/login/AccountLogin.js index 937562ff..d7205df5 100644 --- a/src/components/account/login/AccountLogin.js +++ b/src/components/account/login/AccountLogin.js @@ -68,7 +68,7 @@ export const AccountLogin = ({ props }) => { return; } - dispatch(Actions.login.request(loginForm)); + dispatch(Actions.userLogin.request(loginForm)); }; // 로그인 실패 모달 diff --git a/src/components/account/mypage/AccountMypagePwForm.js b/src/components/account/mypage/AccountMypagePwForm.js index 1fe6e124..a98b3a9d 100644 --- a/src/components/account/mypage/AccountMypagePwForm.js +++ b/src/components/account/mypage/AccountMypagePwForm.js @@ -15,15 +15,15 @@ import { // ** Styles import '../../../assets/css/custom.css'; import { - pwUpdateAction, - pwCheckAction + updateUserPw, + checkUserPw } from '../../../modules/account/auth/actions'; import { useHistory } from 'react-router-dom'; import ErrorModal from '../../modal/ErrorModal'; const AccountMypagePwForm = ({ activeTab }) => { // 비밀번호 확인 결과 - const { result } = useSelector(state => state.UserPageState); + const { result } = useSelector(state => state.userPageState); // 기존 비밀번호 const [userPswd, setuserPswd] = useState(''); // 새로운 비밀번호 @@ -48,13 +48,18 @@ const AccountMypagePwForm = ({ activeTab }) => { // 비밀번호 확인 결과 헨들러 useEffect(() => { if (result) { - if (result.errorCode) { - setresultOk(true); - setbtnOk(false); - } else { - setresultOk(false); - setbtnOk(true); - } + setresultOk(false); + setbtnOk(true); + // if (result.errorCode) { + // setresultOk(true); + // setbtnOk(false); + // } else { + // setresultOk(false); + // setbtnOk(true); + // } + } else { + setresultOk(true); + setbtnOk(false); } }, [result]); @@ -110,13 +115,13 @@ const AccountMypagePwForm = ({ activeTab }) => { desc: '비밀번호가 일치하지 않습니다.' }); } else { - dispatch(pwUpdateAction.request(inputs)); + dispatch(updateUserPw.request(inputs)); } }; // 비밀번호 확인 const pwok = () => { - dispatch(pwCheckAction.request(userPswd)); + dispatch(checkUserPw.request(userPswd)); }; return ( diff --git a/src/containers/account/mypage/AccountMypageContainer.js b/src/containers/account/mypage/AccountMypageContainer.js index 208f6b49..959b7b0e 100644 --- a/src/containers/account/mypage/AccountMypageContainer.js +++ b/src/containers/account/mypage/AccountMypageContainer.js @@ -19,9 +19,9 @@ import { accountAPI } from '../../../modules/account/register'; import AccountMypagePwForm from '../../../components/account/mypage/AccountMypagePwForm'; import AccountMypageForm from '../../../components/account/mypage/AccountMypageForm'; import { - userPageAction, - userUpdateAction, - userDeleteAction + getUserPage, + updateUser, + deleteUser } from '../../../modules/account/auth/actions'; import { MessageErrorModal } from '../../../components/message/MessageErrorModal'; @@ -42,7 +42,7 @@ const AccountMypageContainer = () => { // 모달 관리 const [formModal, setFormModal] = useState(false); // 회원 정보 조회 - const { userPage } = useSelector(state => state.UserPageState); + const { userPage } = useSelector(state => state.userPageState); // 로그인 정보 조회 const { user } = useSelector(state => state.authState); @@ -278,9 +278,9 @@ const AccountMypageContainer = () => { // 회원 정보 조회 useEffect(() => { if (user) { - dispatch(userPageAction.request(user.cstmrSno)); + dispatch(getUserPage.request(user.cstmrSno)); } - }, []); + }, [user]); // 휴대폰 번호 변경 모달 헨들러 const handler = () => { @@ -327,7 +327,7 @@ const AccountMypageContainer = () => { color: 'danger' }); } else { - dispatch(userUpdateAction.request(param)); + dispatch(updateUser.request(param)); } }; @@ -342,7 +342,7 @@ const AccountMypageContainer = () => { // 탈퇴 const waitwait = () => { - dispatch(userDeleteAction.request(user.cstmrSno)); + dispatch(deleteUser.request(user.cstmrSno)); }; return ( diff --git a/src/containers/analysis/simulator/AnalysisSimulationContainer.js b/src/containers/analysis/simulator/AnalysisSimulationContainer.js index f429e21d..d2648f88 100644 --- a/src/containers/analysis/simulator/AnalysisSimulationContainer.js +++ b/src/containers/analysis/simulator/AnalysisSimulationContainer.js @@ -239,7 +239,7 @@ export const AnalysisSimulationContainer = props => { // 로그아웃 const handlerLogout = () => { - dispatch(AuthAction.logout.request()); + dispatch(AuthAction.userLogout.request()); }; // 비행 시물레이션 데이터 닫기 diff --git a/src/containers/cstmrService/inquiry/UserInquiryContainer.js b/src/containers/cstmrService/inquiry/UserInquiryContainer.js index 543282cd..f3966eea 100644 --- a/src/containers/cstmrService/inquiry/UserInquiryContainer.js +++ b/src/containers/cstmrService/inquiry/UserInquiryContainer.js @@ -52,7 +52,7 @@ export default function UserInquiryContainer({ memberName }) { useEffect(() => { dispatch( - Actions.getUserList.request({ category: '', searchType: '', word: '' }) + Actions.USER_LIST.request({ category: '', searchType: '', word: '' }) ); }, []); @@ -268,7 +268,7 @@ export default function UserInquiryContainer({ memberName }) { dispatch(Actions.USER_INQUIRY.request(form)); } else if (type === 'edit') { dispatch( - Actions.updateUserAccess.request({ + Actions.USER_UPDATE.request({ qnaSno, category, contact, diff --git a/src/modules/_sample/models/index.ts b/src/modules/_sample/models/index.ts index 685115e3..5a7fd799 100644 --- a/src/modules/_sample/models/index.ts +++ b/src/modules/_sample/models/index.ts @@ -2,11 +2,11 @@ * 모든 interface는 파스칼케이스를 사용하여 작성한다. * Rq, Rs interface의 경우 Action명 + Rq or Rs를 붙여준다. * - * 초기값의 경우 변수명을 initialState로 작성한다. + * 초기값의 경우 변수명을 init + 주체 로 작성한다. * 초기값의 interface는 State로 끝나도록 작성한다. */ -export const initialState: SampleState = { +export const initSample: SampleState = { droneList: undefined, droneCount: 0 }; diff --git a/src/modules/_sample/reducers/index.ts b/src/modules/_sample/reducers/index.ts index b805f5ea..3b1a9e91 100644 --- a/src/modules/_sample/reducers/index.ts +++ b/src/modules/_sample/reducers/index.ts @@ -1,7 +1,7 @@ import { createReducer } from 'typesafe-actions'; import produce from 'immer'; -import { SampleState, initialState } from '../models'; +import { SampleState, initSample } from '../models'; import * as Actions from '../actions'; /** @@ -9,7 +9,7 @@ import * as Actions from '../actions'; */ export const sampleReducer = createReducer( - initialState + initSample ).handleAction(Actions.getDroneList.success, (state, action) => produce(state, draft => {}) ); diff --git a/src/modules/account/auth/actions/index.ts b/src/modules/account/auth/actions/index.ts index a233d3e3..d1fe4799 100644 --- a/src/modules/account/auth/actions/index.ts +++ b/src/modules/account/auth/actions/index.ts @@ -3,55 +3,58 @@ import { ActionType, createAsyncAction } from 'typesafe-actions'; import { TokenAccount, UserAccount, - UserPw, + UpdatePwRq, UserData, UserPageData, - UpdateData + UpdateData, + CheckPwRs, + UpdatePwRs } from '../models'; // 로그인 -const USERS_LOGIN_REQUEST = 'auth/USERS_LOGIN_REQUEST'; -const USERS_LOGIN_SUCCESS = 'auth/USERS_LOGIN_SUCCESS'; -const USERS_LOGIN_FAILURE = 'auth/USERS_LOGIN_FAILURE'; +const USER_LOGIN_REQUEST = 'auth/USER_LOGIN_REQUEST'; +const USER_LOGIN_SUCCESS = 'auth/USER_LOGIN_SUCCESS'; +const USER_LOGIN_FAILURE = 'auth/USER_LOGIN_FAILURE'; +// 인증 확인 const CHECK_AUTHENCATION_REQUEST = 'auth/CHECK_AUTHENCATION_REQUEST'; const CHECK_AUTHENCATION_SUCCESS = 'auth/CHECK_AUTHENCATION_SUCCESS'; const CHECK_AUTHENCATION_FAILURE = 'auth/CHECK_AUTHENCATION_FAILURE'; // 로그아웃 -const USERS_LOGOUT_REQUEST = 'auth/USERS_LOGOUT_REQUEST'; -const USERS_LOGOUT_SUCCESS = 'auth/USERS_LOGOUT_SUCCESS'; -const USERS_LOGOUT_FAILURE = 'auth/USERS_LOGOUT_FAILURE'; +const USER_LOGOUT_REQUEST = 'auth/USER_LOGOUT_REQUEST'; +const USER_LOGOUT_SUCCESS = 'auth/USER_LOGOUT_SUCCESS'; +const USER_LOGOUT_FAILURE = 'auth/USER_LOGOUT_FAILURE'; -// mypage list -const USERS_USERPAGE_REQUEST = 'auth/USERS_USERPAGE_REQUEST'; -const USERS_USERPAGE_SUCCESS = 'auth/USERS_USERPAGE_SUCCESS'; -const USERS_USERPAGE_FAILURE = 'auth/USERS_USERPAGE_FAILURE'; +// 마이페이지 조회 +const GET_USER_PAGE_REQUEST = 'auth/GET_USER_PAGE_REQUEST'; +const GET_USER_PAGE_SUCCESS = 'auth/GET_USER_PAGE_SUCCESS'; +const GET_USER_PAGE_FAILURE = 'auth/GET_USER_PAGE_FAILURE'; -//# mypage update -const USERS_UPDATE_REQUEST = 'auth/USERS_UPDATE_REQUEST'; -const USERS_UPDATE_SUCCESS = 'auth/USERS_UPDATE_SUCCESS'; -const USERS_UPDATE_FAILURE = 'auth/USERS_UPDATE_FAILURE'; - -// 비밀번호 변경 -const USERS_PWUPDATE_REQUEST = 'auth/USERS_PWUPDATE_REQUEST'; -const USERS_PWUPDATE_SUCCESS = 'auth/USERS_PWUPDATE_SUCCESS'; -const USERS_PWUPDATE_FAILURE = 'auth/USERS_PWUPDATE_FAILURE'; +// 마이페이지 수정 +const UPDATE_USER_REQUEST = 'auth/UPDATE_USER_REQUEST'; +const UPDATE_USER_SUCCESS = 'auth/UPDATE_USER_SUCCESS'; +const UPDATE_USER_FAILURE = 'auth/UPDATE_USER_FAILURE'; // 회원 탈퇴 -const USERS_DELETE_REQUEST = 'auth/USERS_DELETE_REQUEST'; -const USERS_DELETE_SUCCESS = 'auth/USERS_DELETE_SUCCESS'; -const USERS_DELETE_FAILURE = 'auth/USERS_DELETE_FAILURE'; +const DELETE_USER_REQUEST = 'auth/DELETE_USER_REQUEST'; +const DELETE_USER_SUCCESS = 'auth/DELETE_USER_SUCCESS'; +const DELETE_USER_FAILURE = 'auth/DELETE_USER_FAILURE'; // 기존 비밀번호 체크 -const USERS_PWCHECK_REQUEST = 'auth/USERS_PWCHECK_REQUEST'; -const USERS_PWCHECK_SUCCESS = 'auth/USERS_PWCHECK_SUCCESS'; -const USERS_PWCHECK_FAILURE = 'auth/USERS_PWCHECK_FAILURE'; - -export const login = createAsyncAction( - USERS_LOGIN_REQUEST, - USERS_LOGIN_SUCCESS, - USERS_LOGIN_FAILURE +const CHECK_USERPW_REQUEST = 'auth/CHECK_USERPW_REQUEST'; +const CHECK_USERPW_SUCCESS = 'auth/CHECK_USERPW_SUCCESS'; +const CHECK_USERPW_FAILURE = 'auth/CHECK_USERPW_FAILURE'; + +// 비밀번호 변경 +const UPDATE_USERPW_REQUEST = 'auth/UPDATE_USERPW_REQUEST'; +const UPDATE_USERPW_SUCCESS = 'auth/UPDATE_USERPW_SUCCESS'; +const UPDATE_USERPW_FAILURE = 'auth/UPDATE_USERPW_FAILURE'; + +export const userLogin = createAsyncAction( + USER_LOGIN_REQUEST, + USER_LOGIN_SUCCESS, + USER_LOGIN_FAILURE )(); export const check = createAsyncAction( @@ -60,58 +63,59 @@ export const check = createAsyncAction( CHECK_AUTHENCATION_FAILURE )(); -export const logout = createAsyncAction( - USERS_LOGOUT_REQUEST, - USERS_LOGOUT_SUCCESS, - USERS_LOGOUT_FAILURE +export const userLogout = createAsyncAction( + USER_LOGOUT_REQUEST, + USER_LOGOUT_SUCCESS, + USER_LOGOUT_FAILURE )(); +// 사용안함? export const refresh = createAsyncAction( - USERS_LOGOUT_REQUEST, - USERS_LOGOUT_SUCCESS, - USERS_LOGOUT_FAILURE + USER_LOGOUT_REQUEST, + USER_LOGOUT_SUCCESS, + USER_LOGOUT_FAILURE )(); -export const userUpdateAction = createAsyncAction( - USERS_UPDATE_REQUEST, - USERS_UPDATE_SUCCESS, - USERS_UPDATE_FAILURE -)(); - -export const userPageAction = createAsyncAction( - USERS_USERPAGE_REQUEST, - USERS_USERPAGE_SUCCESS, - USERS_USERPAGE_FAILURE +export const getUserPage = createAsyncAction( + GET_USER_PAGE_REQUEST, + GET_USER_PAGE_SUCCESS, + GET_USER_PAGE_FAILURE )(); -export const userDeleteAction = createAsyncAction( - USERS_DELETE_REQUEST, - USERS_DELETE_SUCCESS, - USERS_DELETE_FAILURE +export const updateUser = createAsyncAction( + UPDATE_USER_REQUEST, + UPDATE_USER_SUCCESS, + UPDATE_USER_FAILURE +)(); + +export const deleteUser = createAsyncAction( + DELETE_USER_REQUEST, + DELETE_USER_SUCCESS, + DELETE_USER_FAILURE )(); -export const pwUpdateAction = createAsyncAction( - USERS_PWUPDATE_REQUEST, - USERS_PWUPDATE_SUCCESS, - USERS_PWUPDATE_FAILURE -)(); +export const checkUserPw = createAsyncAction( + CHECK_USERPW_REQUEST, + CHECK_USERPW_SUCCESS, + CHECK_USERPW_FAILURE +)(); -export const pwCheckAction = createAsyncAction( - USERS_PWCHECK_REQUEST, - USERS_PWCHECK_SUCCESS, - USERS_PWCHECK_FAILURE -)(); +export const updateUserPw = createAsyncAction( + UPDATE_USERPW_REQUEST, + UPDATE_USERPW_SUCCESS, + UPDATE_USERPW_FAILURE +)(); const actions = { - login, + userLogin, check, - logout, + userLogout, refresh, - userUpdateAction, - userPageAction, - pwUpdateAction, - userDeleteAction, - pwCheckAction + updateUser, + getUserPage, + updateUserPw, + deleteUser, + checkUserPw }; export type AuthAction = ActionType; diff --git a/src/modules/account/auth/apis/index.ts b/src/modules/account/auth/apis/index.ts index 941482f1..571c6403 100644 --- a/src/modules/account/auth/apis/index.ts +++ b/src/modules/account/auth/apis/index.ts @@ -1,15 +1,11 @@ import axios from '../../../utils/customAxiosUtil'; -import { UserAccount, TokenAccount, UserPw, UpdateData } from '../models'; +import { UserAccount, TokenAccount, UpdatePwRq, UpdateData } from '../models'; export const authAPI = { // 로그인 usersLogin: async (data: UserAccount) => { return await axios.post('api/acnt/jwt/login', data); }, - // 로그인한 회원정보 조회 - getUserProfile: async (id: number) => { - return await axios.get(`api/acnt/jwt/profile/${id}`); - }, // 로그아웃 usersLogout: (id: number) => { return axios.get(`api/acnt/jwt/logout/${id}`); @@ -18,6 +14,10 @@ export const authAPI = { refreshToken: (data: TokenAccount) => { return axios.post('api/acnt/jwt/refresh', data); }, + // 로그인한 회원정보 조회 + getUserProfile: async (id: number) => { + return await axios.get(`api/acnt/jwt/profile/${id}`); + }, // 회원정보 조회 getUserPage: async (id: string) => { return await axios.get(`api/acnt/cstmr/profile/${id}`); @@ -27,16 +27,16 @@ export const authAPI = { const res = await axios.put('api/acnt/cstmr/profile/update', data); return res; }, + // 회원 탈퇴 + deletedata: async (id: string) => { + return await axios.post(`api/acnt/cstmr/profile/delete/${id}`); + }, // 기존 비밀번호 확인 - pwcheck: async (userPswd: string) => { + checkUserPw: async (userPswd: string) => { return await axios.post('api/acnt/cstmr/profile/pwcheck', { userPswd }); }, // 비밀번호 변경 - pwupdate: async (data: UserPw) => { + updateUserPw: async (data: UpdatePwRq) => { return await axios.post('api/acnt/cstmr/profile/pswdupdate', data); - }, - // 회원 탈퇴 - deletedata: async (id: string) => { - return await axios.post(`api/acnt/cstmr/profile/delete/${id}`); } }; diff --git a/src/modules/account/auth/models/index.ts b/src/modules/account/auth/models/index.ts index 92b7e056..a52e90f3 100644 --- a/src/modules/account/auth/models/index.ts +++ b/src/modules/account/auth/models/index.ts @@ -1,3 +1,35 @@ +export const initUserPage: UserPageState = { + userPage: undefined, + result: undefined + // userPwPage: undefined +}; + +export interface UserPageState { + userPage?: UserPageData | undefined; + result: boolean | undefined; + // userPwPage: UpdatePwRq | undefined; +} + +export interface AuthState { + pageLoading: boolean; + isRefresh: boolean; + isLogin?: boolean; + message: string; + user?: UserData; + UserPw?: UpdatePwRq; + // UserPwCheck?: UserPwCheck; +} + +export const initAuth: AuthState = { + pageLoading: false, + isRefresh: false, + isLogin: undefined, + message: '', + user: undefined, + UserPw: undefined + // UserPwCheck: undefined +}; + export interface UserAccount { userId: string; userPswd: string; @@ -48,11 +80,6 @@ export interface UserData { authNm: string; } -export interface UserPageState { - userPage?: UserPageData | undefined; - result: boolean | undefined; - userPwPage: UserPw | undefined; -} export interface UserPageData { memberName: string; cstmrSno: string; @@ -70,16 +97,31 @@ export interface UpdateData { updateDt: string; } -export interface UserPw { +export interface CheckPwRs { + result: boolean; + errorMessage?: string; + errorCode?: string; +} + +export interface UpdatePwRq { newPswd: string; newPswdConfirm: string; } -export interface UserPwCheck { - result: string; -} -export const initResponseUserPageData: UserPageState = { - userPage: undefined, - result: undefined, - userPwPage: undefined -}; +export interface UpdatePwRs { + authId: string; + cptAuthCode: string; + cstmrDivCd: string; + cstmrSno: number; + cstmrStatusCd: string; + joinDt: string; + joinIp: string; + pswdUpdtDt: string; + rfrshToken: string; + siteCode: string; + userId: string; + userPswd: string; +} +// export interface UserPwCheck { +// result: string; +// } diff --git a/src/modules/account/auth/reducers/index.ts b/src/modules/account/auth/reducers/index.ts index 05055550..efae9697 100644 --- a/src/modules/account/auth/reducers/index.ts +++ b/src/modules/account/auth/reducers/index.ts @@ -4,68 +4,48 @@ import produce from 'immer'; import { createReducer } from 'typesafe-actions'; // action -import { - AuthAction, - userPageAction, - check, - login, - logout, - refresh, - pwUpdateAction, - userDeleteAction, - pwCheckAction -} from '../actions'; +// import { +// AuthAction, +// getUserPage, +// check, +// userLogin, +// userLogout, +// refresh, +// deleteUser, +// checkUserPw +// } from '../actions'; +import * as Actions from '../actions'; import { UserPageState, UserPageData, - initResponseUserPageData, - UserData, - UserPw, - UserPwCheck + initUserPage, + AuthState, + initAuth } from '../models'; -export interface AuthState { - pageLoading: boolean; - isRefresh: boolean; - isLogin?: boolean; - message: string; - user?: UserData; - UserPw?: UserPw; - UserPwCheck?: UserPwCheck; -} - -// reducers -const initialState: AuthState = { - pageLoading: false, - isRefresh: false, - isLogin: undefined, - message: '', - user: undefined, - UserPw: undefined, - UserPwCheck: undefined -}; - -export const authReducer = createReducer(initialState) - .handleAction(login.success, (state, action) => +export const authReducer = createReducer( + initAuth +) + .handleAction(Actions.userLogin.success, (state, action) => produce(state, draft => { draft.isLogin = true; draft.user = action.payload; }) ) - .handleAction(login.request, (state, action) => + .handleAction(Actions.userLogin.request, (state, action) => produce(state, draft => { draft.isLogin = false; draft.message = ''; }) ) - .handleAction(login.failure, (state, action) => + .handleAction(Actions.userLogin.failure, (state, action) => produce(state, draft => { draft.isLogin = false; draft.message = action.payload; }) ) - .handleAction(check.success, (state, action) => + .handleAction(Actions.check.success, (state, action) => produce(state, draft => { const { isLogin, user } = action.payload; draft.isRefresh = false; @@ -73,47 +53,47 @@ export const authReducer = createReducer(initialState) draft.user = user; }) ) - .handleAction(refresh.request, (state, action) => + .handleAction(Actions.refresh.request, (state, action) => produce(state, draft => { draft.isRefresh = true; }) ) - .handleAction(refresh.success, (state, action) => + .handleAction(Actions.refresh.success, (state, action) => produce(state, draft => { draft.user = action.payload; }) ) - .handleAction(logout.success, state => + .handleAction(Actions.userLogout.success, state => produce(state, draft => { draft.isLogin = false; draft.user = undefined; }) ) - .handleAction(userDeleteAction.success, state => + .handleAction(Actions.deleteUser.success, state => produce(state, draft => { draft.isLogin = false; draft.user = undefined; }) ); -export const mypageReducer = createReducer( - initResponseUserPageData +export const userPageReducer = createReducer( + initUserPage ) - .handleAction(userPageAction.success, (state, action) => + .handleAction(Actions.getUserPage.success, (state, action) => produce(state, draft => { const data: UserPageData = action.payload; draft.userPage = data; }) ) - .handleAction(pwCheckAction.success, (state, action) => + .handleAction(Actions.checkUserPw.success, (state, action) => produce(state, draft => { const data = action.payload; - draft.result = data; - }) - ) - .handleAction(pwUpdateAction.success, (state, action) => - produce(state, draft => { - const data: UserPw = action.payload; - draft.userPwPage = data; + draft.result = data.result; }) ); +// .handleAction(Actions.updateUserPw.success, (state, action) => +// produce(state, draft => { +// const data = action.payload; +// draft.userPwPage = data; +// }) +// ); diff --git a/src/modules/account/auth/sagas/index.ts b/src/modules/account/auth/sagas/index.ts index defdd6cb..59f4de6b 100644 --- a/src/modules/account/auth/sagas/index.ts +++ b/src/modules/account/auth/sagas/index.ts @@ -8,7 +8,7 @@ import { ActionType } from 'typesafe-actions'; import { ERROR_MESSAGE, SAVE_MESSAGE } from '../../../../configs/constants'; import * as Actions from '../actions'; import { authAPI } from '../apis'; -import { LoginData } from '../models'; +import { CheckPwRs, LoginData } from '../models'; import { cookieStorage, COOKIE_ACCESS_TOKEN, @@ -16,7 +16,7 @@ import { } from '../service/cookie'; import * as MessageActions from '../../../comn/message/actions/comnMessageAction'; -function* userLoginSaga(action: ActionType) { +function* userLoginSaga(action: ActionType) { const param = action.payload; try { const { data, errorCode } = yield call(authAPI.usersLogin, param); @@ -40,12 +40,12 @@ function* userLoginSaga(action: ActionType) { // } yield put( - Actions.login.success({ + Actions.userLogin.success({ ...user.data }) ); } catch (error: any) { - yield put(Actions.login.failure(error)); + yield put(Actions.userLogin.failure(error)); // message.error(error); } @@ -71,7 +71,7 @@ function* userLoginSaga(action: ActionType) { // } // } -function* checkAuthencationSaga() { +function* checkSaga() { try { const accessToken = cookieStorage.getCookie(COOKIE_ACCESS_TOKEN); @@ -118,32 +118,32 @@ function* userLogoutSaga() { location.href = '/account/login'; } } - // yield put(Actions.logout.success()); + // yield put(Actions.userLogout.success()); cookieStorage.removeCookie(COOKIE_ACCESS_TOKEN); cookieStorage.removeCookie(COOKIE_REFRESH_TOKEN); yield put(replace('/')); } catch (error: any) { - yield put(Actions.logout.failure(error)); + yield put(Actions.userLogout.failure(error)); } } -function* userPageSaga( - action: ActionType +function* getUserPageSaga( + action: ActionType ) { try { const controlId = action.payload; const { data } = yield call(authAPI.getUserPage, controlId); - yield put(Actions.userPageAction.success(data)); + yield put(Actions.getUserPage.success(data)); } catch (error: any) { - yield put(Actions.userPageAction.failure(error)); + yield put(Actions.getUserPage.failure(error)); } } -function* userDeletePageSaga( - action: ActionType +function* deleteUserSaga( + action: ActionType ) { try { const controlId = action.payload; @@ -163,22 +163,22 @@ function* userDeletePageSaga( cookieStorage.removeCookie(COOKIE_REFRESH_TOKEN); yield put(replace('/')); - // yield put(Actions.userDeleteAction.success(data));; + // yield put(Actions.deleteUser.success(data));; } - // yield put(Actions.logout.success()); + // yield put(Actions.userLogout.success()); } catch (error: any) { - yield put(Actions.logout.failure(error)); + yield put(Actions.userLogout.failure(error)); } } -function* userUpdateSaga( - action: ActionType +function* updateUserSaga( + action: ActionType ) { const param = action.payload; try { const { data, errorCode } = yield call(authAPI.updateUser, param); - yield put(Actions.pwUpdateAction.success(data)); + yield put(Actions.updateUserPw.success(data)); if (data.errorCode === '-1') { yield put( MessageActions.IS_ERROR({ @@ -210,13 +210,16 @@ function* userUpdateSaga( } } -function* userPwCheckSaga( - action: ActionType +function* checkupdateUserPwSaga( + action: ActionType ) { const controlId = action.payload; try { - const { data } = yield call(authAPI.pwcheck, controlId); - yield put(Actions.pwCheckAction.success(data)); + const { data }: { data: CheckPwRs } = yield call( + authAPI.checkUserPw, + controlId + ); + yield put(Actions.checkUserPw.success(data)); if (data.errorCode === '-1') { yield put( MessageActions.IS_ERROR({ @@ -248,13 +251,13 @@ function* userPwCheckSaga( } } -function* userPwSaga( - action: ActionType +function* updateUserPwSaga( + action: ActionType ) { const param = action.payload; try { - const { data, errorCode } = yield call(authAPI.pwupdate, param); - //yield put(Actions.pwUpdateAction.success(data)); + const { data, errorCode } = yield call(authAPI.updateUserPw, param); + //yield put(Actions.updateUserPw.success(data)); if (data.errorCode === '-1') { yield put( @@ -288,12 +291,12 @@ function* userPwSaga( } export function* authSaga() { - yield takeEvery(Actions.login.request, userLoginSaga); - yield takeEvery(Actions.check.request, checkAuthencationSaga); - yield takeEvery(Actions.logout.request, userLogoutSaga); - yield takeEvery(Actions.userPageAction.request, userPageSaga); - yield takeEvery(Actions.pwUpdateAction.request, userPwSaga); - yield takeEvery(Actions.userUpdateAction.request, userUpdateSaga); - yield takeEvery(Actions.userDeleteAction.request, userDeletePageSaga); - yield takeEvery(Actions.pwCheckAction.request, userPwCheckSaga); + yield takeEvery(Actions.userLogin.request, userLoginSaga); + yield takeEvery(Actions.userLogout.request, userLogoutSaga); + yield takeEvery(Actions.check.request, checkSaga); + yield takeEvery(Actions.getUserPage.request, getUserPageSaga); + yield takeEvery(Actions.updateUser.request, updateUserSaga); + yield takeEvery(Actions.deleteUser.request, deleteUserSaga); + yield takeEvery(Actions.checkUserPw.request, checkupdateUserPwSaga); + yield takeEvery(Actions.updateUserPw.request, updateUserPwSaga); } diff --git a/src/modules/basis/drone/models/index.ts b/src/modules/basis/drone/models/index.ts index 05a900b2..4d819774 100644 --- a/src/modules/basis/drone/models/index.ts +++ b/src/modules/basis/drone/models/index.ts @@ -1,4 +1,4 @@ -export const initialState: DroneState = { +export const initDron: DroneState = { droneList: undefined, droneTotal: 0, droneDetail: undefined, diff --git a/src/modules/basis/drone/reducers/index.ts b/src/modules/basis/drone/reducers/index.ts index 7292eed9..11446789 100644 --- a/src/modules/basis/drone/reducers/index.ts +++ b/src/modules/basis/drone/reducers/index.ts @@ -2,10 +2,10 @@ import { createReducer } from 'typesafe-actions'; import produce from 'immer'; import * as Actions from '../actions'; -import { DroneState, initialState } from '../models'; +import { DroneState, initDron } from '../models'; export const droneReducer = createReducer( - initialState + initDron ) .handleAction(Actions.getDroneList.success, (state, action) => produce(state, draft => { diff --git a/src/modules/basis/group/models/index.ts b/src/modules/basis/group/models/index.ts index edda7e94..3e9505af 100644 --- a/src/modules/basis/group/models/index.ts +++ b/src/modules/basis/group/models/index.ts @@ -1,6 +1,6 @@ import { ErrorModel } from '../../../models/ComnModel'; -export const initialState: GroupState = { +export const initGroup: GroupState = { groupList: undefined, groupListCount: 0, diff --git a/src/modules/basis/group/reducers/index.ts b/src/modules/basis/group/reducers/index.ts index 5a69deb2..ace02c60 100644 --- a/src/modules/basis/group/reducers/index.ts +++ b/src/modules/basis/group/reducers/index.ts @@ -2,10 +2,10 @@ import { createReducer } from 'typesafe-actions'; import produce from 'immer'; import * as Actions from '../actions'; -import { GroupState, initialState } from '../models'; +import { GroupState, initGroup } from '../models'; export const groupReducer = createReducer( - initialState + initGroup ) .handleAction(Actions.getMyGroupList.success, (state, action) => produce(state, draft => { diff --git a/src/modules/cstmrService/inquiry/actions/index.ts b/src/modules/cstmrService/inquiry/actions/index.ts index ab2cdc90..de18d68b 100644 --- a/src/modules/cstmrService/inquiry/actions/index.ts +++ b/src/modules/cstmrService/inquiry/actions/index.ts @@ -111,7 +111,7 @@ export const ADMIN_DELETE = createAsyncAction( AxiosError >(); -export const getUserList = createAsyncAction( +export const USER_LIST = createAsyncAction( USER_LIST_REQUEST, USER_LIST_SUCCESS, USER_LIST_FAILURE @@ -131,7 +131,7 @@ export const USER_DETAIL = createAsyncAction( export const USER_DETAIL_INITAL = createAction(USER_DETAIL_INITAL_ACTION)(); -export const updateUserAccess = createAsyncAction( +export const USER_UPDATE = createAsyncAction( USER_UPDATE_REQUEST, USER_UPDATE_SUCCESS, USER_UPDATE_FAILURE @@ -156,11 +156,11 @@ const actions = { ADMIN_ANSWER, ADMIN_FILE_DOWN, ADMIN_DELETE, - getUserList, + USER_LIST, USER_INQUIRY, USER_DETAIL, USER_DETAIL_INITAL, - updateUserAccess, + USER_UPDATE, USER_DELETE }; diff --git a/src/modules/cstmrService/inquiry/reducers/index.ts b/src/modules/cstmrService/inquiry/reducers/index.ts index 98689f06..9cdb7ea5 100644 --- a/src/modules/cstmrService/inquiry/reducers/index.ts +++ b/src/modules/cstmrService/inquiry/reducers/index.ts @@ -27,7 +27,7 @@ export const qnaReducer = createReducer( }) ) // 사용자 목록 - .handleAction(Actions.getUserList.success, (state, action) => + .handleAction(Actions.USER_LIST.success, (state, action) => produce(state, draft => { const data = action.payload; draft.userList = data || []; diff --git a/src/modules/cstmrService/inquiry/sagas/index.ts b/src/modules/cstmrService/inquiry/sagas/index.ts index 582121f4..47cb2608 100644 --- a/src/modules/cstmrService/inquiry/sagas/index.ts +++ b/src/modules/cstmrService/inquiry/sagas/index.ts @@ -157,9 +157,7 @@ function* adminDeleteSaga( } } -function* getUserListSaga( - action: ActionType -) { +function* userListSaga(action: ActionType) { try { const payload = action.payload; const res = yield call(Apis.qnaAPI.userList, payload); @@ -178,9 +176,9 @@ function* getUserListSaga( return; } - yield put(Actions.getUserList.success(data)); + yield put(Actions.USER_LIST.success(data)); } catch (error) { - yield put(Actions.getUserList.failure(error)); + yield put(Actions.USER_LIST.failure(error)); } } @@ -215,7 +213,7 @@ function* userInquirySaga( ); } yield put( - Actions.getUserList.request({ category: '', searchType: '', word: '' }) + Actions.USER_LIST.request({ category: '', searchType: '', word: '' }) ); // yield put(Actions.USER_INQUIRY.success(data)); } catch (error) { @@ -251,7 +249,7 @@ function* userDetailSaga( } function* userUpdateSaga( - action: ActionType + action: ActionType ) { try { const payload = action.payload; @@ -281,11 +279,11 @@ function* userUpdateSaga( ); } yield put( - Actions.getUserList.request({ category: '', searchType: '', word: '' }) + Actions.USER_LIST.request({ category: '', searchType: '', word: '' }) ); // yield put(Actions.USER_INQUIRY_UPDATE.success(data)); } catch (error) { - yield put(Actions.updateUserAccess.failure(error)); + yield put(Actions.USER_UPDATE.failure(error)); } } @@ -323,7 +321,7 @@ function* userDeleteSaga( } yield put( - Actions.getUserList.request({ category: '', searchType: '', word: '' }) + Actions.USER_LIST.request({ category: '', searchType: '', word: '' }) ); } catch (error) { yield put(Actions.USER_DELETE.failure(error)); @@ -336,9 +334,9 @@ export function* qnaSaga() { yield takeEvery(Actions.ADMIN_ANSWER.request, adminAnswerSaga); yield takeEvery(Actions.ADMIN_FILE_DOWN.request, adminFileDownSaga); yield takeEvery(Actions.ADMIN_DELETE.request, adminDeleteSaga); - yield takeEvery(Actions.getUserList.request, getUserListSaga); + yield takeEvery(Actions.USER_LIST.request, userListSaga); yield takeEvery(Actions.USER_INQUIRY.request, userInquirySaga); yield takeEvery(Actions.USER_DETAIL.request, userDetailSaga); - yield takeEvery(Actions.updateUserAccess.request, userUpdateSaga); + yield takeEvery(Actions.USER_UPDATE.request, userUpdateSaga); yield takeEvery(Actions.USER_DELETE.request, userDeleteSaga); } diff --git a/src/modules/utils/customAxiosUtil.ts b/src/modules/utils/customAxiosUtil.ts index 53fbdab6..b4316bbd 100644 --- a/src/modules/utils/customAxiosUtil.ts +++ b/src/modules/utils/customAxiosUtil.ts @@ -51,7 +51,7 @@ clientInstance.interceptors.response.use( // refreshToken: getRefreshToken() // }) // ); - //store.dispatch(Actions.logout.request()); + //store.dispatch(Actions.userLogout.request()); // } else { // } diff --git a/src/redux/reducers/rootReducer.ts b/src/redux/reducers/rootReducer.ts index 05c7706c..bd38bb0b 100644 --- a/src/redux/reducers/rootReducer.ts +++ b/src/redux/reducers/rootReducer.ts @@ -12,7 +12,7 @@ import { findSaga, findAccountReducer } from '../../modules/account/find'; import { authSaga, authReducer, - mypageReducer + userPageReducer } from '../../modules/account/auth'; import { accountSaga, accountReducer } from '../../modules/account/register'; import { @@ -71,7 +71,7 @@ const rootReducer = combineReducers({ droneState: droneReducer, authState: authReducer, accountState: accountReducer, - UserPageState: mypageReducer, + userPageState: userPageReducer, laancState: laancReducer, controlGpState: controlGpReducer, controlGpHisState: controlGpHisReducer, diff --git a/src/views/control/main/ControlMain.js b/src/views/control/main/ControlMain.js index 0d702bfb..a5c7eed3 100644 --- a/src/views/control/main/ControlMain.js +++ b/src/views/control/main/ControlMain.js @@ -131,7 +131,7 @@ const ControlMain = () => { // 로그아웃 const handlerLogout = () => { - dispatch(Actions.logout.request()); + dispatch(Actions.userLogout.request()); }; // 드론 상세정보 창 닫기