From 3025bdff159357416e9f2ba4fefb73679b2cc0e3 Mon Sep 17 00:00:00 2001 From: yujiah-github Date: Thu, 28 Apr 2022 20:39:47 +0900 Subject: [PATCH 1/6] =?UTF-8?q?Feat:=20=EC=9D=B4=EB=A9=94=EC=9D=BC=20?= =?UTF-8?q?=EC=9D=B8=EC=A6=9D=20api=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/api/user.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/lib/api/user.js b/src/lib/api/user.js index 7ef58a45..ff44280d 100644 --- a/src/lib/api/user.js +++ b/src/lib/api/user.js @@ -19,3 +19,23 @@ export const getUserCommunityInfo = async (category, page = 0) => { const { data } = await axios.get(`${url}?page=${page}`); return data; }; + +//이메일 중복 확인 +export const getUserEmailCheck = async (email) => { + const { data } = await axios.get(`${baseUrl}/emailCheck?email=${email}`); + if(data === true){ + alert('중복된 이메일입니다!') + } + else{ + return data; + } +}; + +//이메일 인증 +export const getRegisterEmail = async (email) => { + setToken(); + const { data } = await axios.get(`${baseUrl}/RegisterEmail?email=${email}`,{ + email, + }); + return data; +}; \ No newline at end of file From 293ad64af28375ce300c86e552a53f8d4043a7ec Mon Sep 17 00:00:00 2001 From: yujiah-github Date: Thu, 28 Apr 2022 20:50:18 +0900 Subject: [PATCH 2/6] =?UTF-8?q?Feat:=20=EA=B0=9C=EC=9D=B8=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=A1=B0=ED=9A=8C,=20=EA=B0=9C=EC=9D=B8=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EC=88=98=EC=A0=95=20api=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/api/user.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/lib/api/user.js b/src/lib/api/user.js index ff44280d..c7b93e66 100644 --- a/src/lib/api/user.js +++ b/src/lib/api/user.js @@ -20,6 +20,33 @@ export const getUserCommunityInfo = async (category, page = 0) => { return data; }; +//개인정보 조회 +export const getUsers = async (id) => { + const { data } = await axios.get(`${baseUrl}/users?id=${id}`,{ + birthYear, + birthday, + createdDate, + email, + gender, + id, + nickname, + phoneNum, + updatedDate + }); + return data; +}; + +//개인정보 수정 +export const patchUser= async (id) => { + const { data } = await axios.get(`${baseUrl}/users?id=${id}`,{ + email, + gender, + nickname, + phoneNum + }); + return data; +}; + //이메일 중복 확인 export const getUserEmailCheck = async (email) => { const { data } = await axios.get(`${baseUrl}/emailCheck?email=${email}`); From 5e37961746a87e561703248e452f34cf2845f620 Mon Sep 17 00:00:00 2001 From: yujiah-github Date: Fri, 29 Apr 2022 09:26:58 +0900 Subject: [PATCH 3/6] =?UTF-8?q?Refactor:=20api=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyPage/PersonalInfoChangeForm.js | 5 ++++ src/lib/api/user.js | 27 +++++++------------ 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/components/MyPage/PersonalInfoChangeForm.js b/src/components/MyPage/PersonalInfoChangeForm.js index 89d08434..41f37ec5 100644 --- a/src/components/MyPage/PersonalInfoChangeForm.js +++ b/src/components/MyPage/PersonalInfoChangeForm.js @@ -1,6 +1,8 @@ import styled from 'styled-components'; import React, {useState} from 'react'; +import { useMutation, useQueryClient } from 'react-query'; import { Button } from '../common/Button'; +import { getUsers,patchUser} from '../../lib/api/user'; const ButtonPosition = styled.div` display: flex; @@ -66,6 +68,9 @@ const ItemWrapper = styled.div` padding: 2rem; `; +const queryClient = useQueryClient(); + + function PersonalInfoChangeForm(){ const [nickname , setNickname] = useState(" "); //비밀번호 재설정 로직 삭제 diff --git a/src/lib/api/user.js b/src/lib/api/user.js index c7b93e66..955d997a 100644 --- a/src/lib/api/user.js +++ b/src/lib/api/user.js @@ -1,4 +1,5 @@ import axios from 'axios'; +import { useQueryClient } from 'react-query'; import { setToken } from './auth'; const baseUrl = process.env.REACT_APP_BACKEND_BASE_URL @@ -16,29 +17,20 @@ export const getUserCommunityInfo = async (category, page = 0) => { // scrap url = `${baseUrl}/mypage/scraps`; } + const { data } = await axios.get(`${url}?page=${page}`); return data; }; //개인정보 조회 export const getUsers = async (id) => { - const { data } = await axios.get(`${baseUrl}/users?id=${id}`,{ - birthYear, - birthday, - createdDate, - email, - gender, - id, - nickname, - phoneNum, - updatedDate - }); + const { data } = await axios.get(`${baseUrl}/users?id=${id}`); return data; }; //개인정보 수정 -export const patchUser= async (id) => { - const { data } = await axios.get(`${baseUrl}/users?id=${id}`,{ +export const patchUsers= async (id) => { + const { data } = await axios.patch(`${baseUrl}/users?id=${id}`,{ email, gender, nickname, @@ -50,11 +42,10 @@ export const patchUser= async (id) => { //이메일 중복 확인 export const getUserEmailCheck = async (email) => { const { data } = await axios.get(`${baseUrl}/emailCheck?email=${email}`); - if(data === true){ - alert('중복된 이메일입니다!') - } - else{ - return data; + onSuccess: () => { + if(data === false){ + return data; + } } }; From 39119f348cd5fa5e594718cff3a1678db2afa059 Mon Sep 17 00:00:00 2001 From: yujiah-github Date: Fri, 29 Apr 2022 18:36:47 +0900 Subject: [PATCH 4/6] =?UTF-8?q?Refactor:=20api=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyPage/PersonalInfoChangeForm.js | 66 +++++++++++++++++-- src/lib/api/user.js | 12 ++-- 2 files changed, 67 insertions(+), 11 deletions(-) diff --git a/src/components/MyPage/PersonalInfoChangeForm.js b/src/components/MyPage/PersonalInfoChangeForm.js index 41f37ec5..9f7768d6 100644 --- a/src/components/MyPage/PersonalInfoChangeForm.js +++ b/src/components/MyPage/PersonalInfoChangeForm.js @@ -1,8 +1,9 @@ import styled from 'styled-components'; import React, {useState} from 'react'; -import { useMutation, useQueryClient } from 'react-query'; +import { useQuery,useQueryClient, useMutation} from 'react-query'; import { Button } from '../common/Button'; -import { getUsers,patchUser} from '../../lib/api/user'; +import { getUsers,patchUsers, getUserEmailCheck, getRegisterEmail} from '../../lib/api/user'; +import { useDispatch } from 'react-redux'; const ButtonPosition = styled.div` display: flex; @@ -68,8 +69,6 @@ const ItemWrapper = styled.div` padding: 2rem; `; -const queryClient = useQueryClient(); - function PersonalInfoChangeForm(){ const [nickname , setNickname] = useState(" "); @@ -77,6 +76,65 @@ function PersonalInfoChangeForm(){ const [phoneNo , setPhoneNo] = useState(" "); const [email , setEmail] = useState(" "); + const useQuery = useQueryClient(); + + +const dispatch = useDispatch(); +//개인정보 조회 +const { data } = useQuery( + ['getUsers', id], + () => getUsers(id), + { + refetchOnWindowFocus: false, + onSuccess: (data) => { + navigate('/api/users'); + }, + }, + ); + +//개인정보 수정 +const PatchMutation = useMutation( + (type) => + patchUsers( + email, + gender, + nickname, + phoneNum + ), + { + onSuccess: () => { + queryClient.refetchQueries(['patchUsers', email, gender, nickname, phoneNum]); + }, + }, + ); + +//이메일 중복 확인 +const { data} = useQuery( + ['getUserEmailCheck', email], + () => getUserEmailCheck(email), + { + refetchOnWindowFocus: false, + onError: () => { + alert('중복된 이메일입니다.'); + }, + onSuccess: (data) => { + navigate(`api/user/emailCheck?email=${email}`); + }, + }, + ); + +//이메일 인증 +const { data } = useQuery( + ['getRegisterEmail', email], + () => getRegisterEmail(email), + { + refetchOnWindowFocus: false, + onSuccess: (data) => { + navigate(`api/user/RegisterEmail?email=${email}`); + }, + }, + ); + const onNicknameHandler = (event) => { //닉네임 재설정 setNickname(event.currentTarget.value) } diff --git a/src/lib/api/user.js b/src/lib/api/user.js index 955d997a..bc1bc9d3 100644 --- a/src/lib/api/user.js +++ b/src/lib/api/user.js @@ -42,18 +42,16 @@ export const patchUsers= async (id) => { //이메일 중복 확인 export const getUserEmailCheck = async (email) => { const { data } = await axios.get(`${baseUrl}/emailCheck?email=${email}`); - onSuccess: () => { - if(data === false){ - return data; - } + if(data === true){ + alert('중복된 이메일입니다!') } + else{ + return data; }; //이메일 인증 export const getRegisterEmail = async (email) => { setToken(); - const { data } = await axios.get(`${baseUrl}/RegisterEmail?email=${email}`,{ - email, - }); + const { data } = await axios.get(`${baseUrl}/RegisterEmail?email=${email}`); return data; }; \ No newline at end of file From 5e942edb0db4e2b7778c1fd96d756314f05bd1ee Mon Sep 17 00:00:00 2001 From: yujiah-github Date: Fri, 29 Apr 2022 19:25:17 +0900 Subject: [PATCH 5/6] =?UTF-8?q?Refactor:=20api=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyPage/PersonalInfoChangeForm.js | 60 +----------------- src/lib/api/user.js | 62 ++++++++++++++++++- 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/src/components/MyPage/PersonalInfoChangeForm.js b/src/components/MyPage/PersonalInfoChangeForm.js index 9f7768d6..ad7d4bff 100644 --- a/src/components/MyPage/PersonalInfoChangeForm.js +++ b/src/components/MyPage/PersonalInfoChangeForm.js @@ -1,6 +1,6 @@ import styled from 'styled-components'; import React, {useState} from 'react'; -import { useQuery,useQueryClient, useMutation} from 'react-query'; +import { useQueryClient, useMutation} from 'react-query'; import { Button } from '../common/Button'; import { getUsers,patchUsers, getUserEmailCheck, getRegisterEmail} from '../../lib/api/user'; import { useDispatch } from 'react-redux'; @@ -76,64 +76,6 @@ function PersonalInfoChangeForm(){ const [phoneNo , setPhoneNo] = useState(" "); const [email , setEmail] = useState(" "); - const useQuery = useQueryClient(); - - -const dispatch = useDispatch(); -//개인정보 조회 -const { data } = useQuery( - ['getUsers', id], - () => getUsers(id), - { - refetchOnWindowFocus: false, - onSuccess: (data) => { - navigate('/api/users'); - }, - }, - ); - -//개인정보 수정 -const PatchMutation = useMutation( - (type) => - patchUsers( - email, - gender, - nickname, - phoneNum - ), - { - onSuccess: () => { - queryClient.refetchQueries(['patchUsers', email, gender, nickname, phoneNum]); - }, - }, - ); - -//이메일 중복 확인 -const { data} = useQuery( - ['getUserEmailCheck', email], - () => getUserEmailCheck(email), - { - refetchOnWindowFocus: false, - onError: () => { - alert('중복된 이메일입니다.'); - }, - onSuccess: (data) => { - navigate(`api/user/emailCheck?email=${email}`); - }, - }, - ); - -//이메일 인증 -const { data } = useQuery( - ['getRegisterEmail', email], - () => getRegisterEmail(email), - { - refetchOnWindowFocus: false, - onSuccess: (data) => { - navigate(`api/user/RegisterEmail?email=${email}`); - }, - }, - ); const onNicknameHandler = (event) => { //닉네임 재설정 setNickname(event.currentTarget.value) diff --git a/src/lib/api/user.js b/src/lib/api/user.js index bc1bc9d3..076d9599 100644 --- a/src/lib/api/user.js +++ b/src/lib/api/user.js @@ -1,5 +1,5 @@ import axios from 'axios'; -import { useQueryClient } from 'react-query'; +import { useQueryClient, useMutation} from 'react-query'; import { setToken } from './auth'; const baseUrl = process.env.REACT_APP_BACKEND_BASE_URL @@ -54,4 +54,62 @@ export const getRegisterEmail = async (email) => { setToken(); const { data } = await axios.get(`${baseUrl}/RegisterEmail?email=${email}`); return data; -}; \ No newline at end of file +}; + + + +const useQuery = useQueryClient(); +//개인정보 조회 +const { data } = useQuery( + ['getUsers', id], + () => getUsers(id), + { + refetchOnWindowFocus: false, + onSuccess: (id) => { + navigate('/api/users'); + }, + }, + ); + +//개인정보 수정 +const PatchMutation = useMutation( + (type) => + patchUsers( + email, + gender, + nickname, + phoneNum + ), + { + onSuccess: () => { + queryClient.refetchQueries(['patchUsers', email, gender, nickname, phoneNum]); + }, + }, + ); + +//이메일 중복 확인 +const { data } = useQuery( + ['getUserEmailCheck', email], + () => getUserEmailCheck(email), + { + refetchOnWindowFocus: false, + onError: () => { + alert('중복된 이메일입니다.'); + }, + onSuccess: (email) => { + navigate(`api/user/emailCheck?email=${email}`); + }, + }, + ); + +//이메일 인증 +const { data } = useQuery( + ['getRegisterEmail', email], + () => getRegisterEmail(email), + { + refetchOnWindowFocus: false, + onSuccess: ( email ) => { + navigate(`api/user/RegisterEmail?email=${email}`); + }, + }, + ); From f05cf155866f79dce3a8a75f14d3e74590b719b7 Mon Sep 17 00:00:00 2001 From: yujiah-github Date: Fri, 29 Apr 2022 20:41:52 +0900 Subject: [PATCH 6/6] =?UTF-8?q?Refactor:=20api=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyPage/PersonalInfoChangeForm.js | 56 ++++++++++++++++++ src/lib/api/user.js | 58 ------------------- 2 files changed, 56 insertions(+), 58 deletions(-) diff --git a/src/components/MyPage/PersonalInfoChangeForm.js b/src/components/MyPage/PersonalInfoChangeForm.js index ad7d4bff..cd3d111c 100644 --- a/src/components/MyPage/PersonalInfoChangeForm.js +++ b/src/components/MyPage/PersonalInfoChangeForm.js @@ -76,6 +76,62 @@ function PersonalInfoChangeForm(){ const [phoneNo , setPhoneNo] = useState(" "); const [email , setEmail] = useState(" "); + const useQuery = useQueryClient(); +//개인정보 조회 +const { data } = useQuery( + ['getUsers', id], + () => getUsers(id), + { + refetchOnWindowFocus: false, + onSuccess: (id) => { + navigate('/api/users'); + }, + }, + ); + +//개인정보 수정 +const PatchMutation = useMutation( + (type) => + patchUsers( + email, + gender, + nickname, + phoneNum + ), + { + onSuccess: () => { + queryClient.refetchQueries(['patchUsers', email, gender, nickname, phoneNum]); + }, + }, + ); + +//이메일 중복 확인 +const { data } = useQuery( + ['getUserEmailCheck', email], + () => getUserEmailCheck(email), + { + refetchOnWindowFocus: false, + onError: () => { + alert('중복된 이메일입니다.'); + }, + onSuccess: (email) => { + navigate(`api/user/emailCheck?email=${email}`); + }, + }, + ); + +//이메일 인증 +const { data } = useQuery( + ['getRegisterEmail', email], + () => getRegisterEmail(email), + { + refetchOnWindowFocus: false, + onSuccess: ( email ) => { + navigate(`api/user/RegisterEmail?email=${email}`); + }, + }, + ); + const onNicknameHandler = (event) => { //닉네임 재설정 setNickname(event.currentTarget.value) diff --git a/src/lib/api/user.js b/src/lib/api/user.js index 076d9599..ea469c57 100644 --- a/src/lib/api/user.js +++ b/src/lib/api/user.js @@ -55,61 +55,3 @@ export const getRegisterEmail = async (email) => { const { data } = await axios.get(`${baseUrl}/RegisterEmail?email=${email}`); return data; }; - - - -const useQuery = useQueryClient(); -//개인정보 조회 -const { data } = useQuery( - ['getUsers', id], - () => getUsers(id), - { - refetchOnWindowFocus: false, - onSuccess: (id) => { - navigate('/api/users'); - }, - }, - ); - -//개인정보 수정 -const PatchMutation = useMutation( - (type) => - patchUsers( - email, - gender, - nickname, - phoneNum - ), - { - onSuccess: () => { - queryClient.refetchQueries(['patchUsers', email, gender, nickname, phoneNum]); - }, - }, - ); - -//이메일 중복 확인 -const { data } = useQuery( - ['getUserEmailCheck', email], - () => getUserEmailCheck(email), - { - refetchOnWindowFocus: false, - onError: () => { - alert('중복된 이메일입니다.'); - }, - onSuccess: (email) => { - navigate(`api/user/emailCheck?email=${email}`); - }, - }, - ); - -//이메일 인증 -const { data } = useQuery( - ['getRegisterEmail', email], - () => getRegisterEmail(email), - { - refetchOnWindowFocus: false, - onSuccess: ( email ) => { - navigate(`api/user/RegisterEmail?email=${email}`); - }, - }, - );