Skip to content

Commit 29499cf

Browse files
authored
Merge pull request #16 from AIVLE-School-Third-Big-Project/mergeTemp
Merge!
2 parents e11a600 + 0e86467 commit 29499cf

File tree

6 files changed

+55
-14
lines changed

6 files changed

+55
-14
lines changed

Diff for: src/routes/UserInfo.js

+23-5
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,8 @@ const SizeProfile = mongoose.model('sizeProfiles', sizeProfileSchema)
2020
// 사이즈 : backend -> frontend
2121
router.get('/api/size', async (req, res) => {
2222
const { userId } = req.query
23-
console.log(`get /userInfo/api/size ${userId}`)
24-
2523
try {
2624
const sizeProfile = await SizeProfile.findOne({ userId: userId })
27-
console.log(sizeProfile)
28-
2925
res.status(201).json({ success: true, message: sizeProfile })
3026
} catch (error) {
3127
console.error('Error finding size :', error)
@@ -37,7 +33,7 @@ router.get('/api/info', async (req, res) => {
3733
const { userId } = req.query
3834

3935
try {
40-
const user = await User.findById(userId)
36+
const user = await User.findById({ _id: userId })
4137
if (!user) {
4238
return res
4339
.status(404)
@@ -53,6 +49,28 @@ router.get('/api/info', async (req, res) => {
5349
}
5450
})
5551

52+
// 사용자 정보 업데이트
53+
router.put('/api/privacy', async (req, res) => {
54+
const user = req.body
55+
const userId = user.userId
56+
57+
const update = {
58+
$set: user,
59+
}
60+
61+
try {
62+
const result = await User.findByIdAndUpdate({ _id: userId }, update)
63+
64+
res.status(201).json({ success: true, code: 0, user: result })
65+
} catch (error) {
66+
res.status(500).json({
67+
success: false,
68+
code: error.code,
69+
message: 'An error occurred while updating the document.',
70+
})
71+
}
72+
})
73+
5674
// 사용자 신체 이미지 경로 전송
5775
router.get('/api/userimage', async (req, res) => {
5876
const { userId } = req.query

Diff for: style/src/components/MyPage/MyPage.js

+13-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ function MyPage({ currPage = 'privacy' }) {
1010
const [page, setPage] = useState(currPage)
1111
const [isSaveComplete, setIsSaveComplete] = useState(false)
1212
const [isShowAlert, setIsShowAlert] = useState(false)
13+
const [errorCode, setErrorCode] = useState(false)
1314

1415
const changePage = (pageName) => {
1516
setPage(pageName)
@@ -29,16 +30,26 @@ function MyPage({ currPage = 'privacy' }) {
2930
page={page}
3031
setIsShowAlert={setIsShowAlert}
3132
setIsSaveComplete={setIsSaveComplete}
33+
setErrorCode={setErrorCode}
3234
/>
3335
</div>
34-
{isSaveComplete ? (
36+
{isSaveComplete && (
3537
<AlertMessage
3638
variant="success"
3739
message={'저장에 성공하였습니다.'}
3840
show={isShowAlert}
3941
setShow={setIsShowAlert}
4042
/>
41-
) : (
43+
)}
44+
{!isSaveComplete && errorCode === 11000 && (
45+
<AlertMessage
46+
variant="danger"
47+
message={'저장에 실패하였습니다. 중복되는 이메일입니다.'}
48+
show={isShowAlert}
49+
setShow={setIsShowAlert}
50+
/>
51+
)}
52+
{!isSaveComplete && errorCode !== 11000 && (
4253
<AlertMessage
4354
variant="danger"
4455
message={'저장에 실패하였습니다. 다시 한번 시도해 주세요.'}

Diff for: style/src/components/MyPage/MyPrivacy.js

+7-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@ import authenticatedAxios from '../../api/authenticatedAxios'
66
import { API_URL } from '../../api/apiConfig'
77
import { updateUser } from '../User/UpdateInfo.js'
88

9-
function MyPrivacy({ userId, setIsShowAlert, setIsSaveComplete }) {
9+
function MyPrivacy({
10+
userId,
11+
setIsShowAlert,
12+
setIsSaveComplete,
13+
setErrorCode,
14+
}) {
1015
const [name, setName] = useState('')
1116
const [gender, setGender] = useState('')
1217
const [email, setEmail] = useState('')
@@ -65,6 +70,7 @@ function MyPrivacy({ userId, setIsShowAlert, setIsSaveComplete }) {
6570
modifyUser.gender = gender
6671
updateUser(modifyUser).then((result) => {
6772
setIsSaveComplete(result.success)
73+
setErrorCode(result.code)
6874
setIsShowAlert(true)
6975
setTimeout(() => {
7076
setIsShowAlert(false)

Diff for: style/src/components/MyPage/MySize.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { useState, useEffect } from 'react'
66
import authenticatedAxios from '../../api/authenticatedAxios'
77
import { API_URL } from '../../api/apiConfig'
88

9-
function MySize({ userId, setIsShowAlert, setIsSaveComplete }) {
9+
function MySize({ userId, setIsShowAlert, setIsSaveComplete, setErrorCode }) {
1010
const [height, setHeight] = useState(0)
1111
const [weight, setWeight] = useState(0)
1212
const [shoulderWidth, SetshoulderWidth] = useState(0)

Diff for: style/src/components/MyPage/RightSubMyPage.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ import MyPrivacy from './MyPrivacy'
33
import MySize from './MySize'
44
import { useSelector } from 'react-redux'
55

6-
function RightSubMyPage({ page, setIsShowAlert, setIsSaveComplete }) {
6+
function RightSubMyPage({
7+
page,
8+
setIsShowAlert,
9+
setIsSaveComplete,
10+
setErrorCode,
11+
}) {
712
// 새로고침 or 제출 버튼 누르면 웹 페이지 리프레쉬 되면서 redux 초기화 됨
813
// redux 초기화 되면서 user에 저장된 데이터 없어져서 오류 발생.
914
const user = useSelector((state) => state.auth.user)
@@ -15,6 +20,7 @@ function RightSubMyPage({ page, setIsShowAlert, setIsSaveComplete }) {
1520
userId={user._id}
1621
setIsShowAlert={setIsShowAlert}
1722
setIsSaveComplete={setIsSaveComplete}
23+
setErrorCode={setErrorCode}
1824
/>
1925
)
2026
case 'size':
@@ -23,6 +29,7 @@ function RightSubMyPage({ page, setIsShowAlert, setIsSaveComplete }) {
2329
userId={user._id}
2430
setIsShowAlert={setIsShowAlert}
2531
setIsSaveComplete={setIsSaveComplete}
32+
setErrorCode={setErrorCode}
2633
/>
2734
)
2835
// case 'closet':

Diff for: style/src/components/User/UpdateInfo.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@ export async function updateUser(userData) {
77
`${API_URL}/userInfo/api/privacy`,
88
userData
99
)
10-
1110
if (response.status === 200 || response.status === 201) {
12-
return { success: true, result: response.data }
11+
return response.data
1312
}
1413
} catch (error) {
1514
if (error.response && error.response.status >= 500) {
16-
return { success: false, error: 'Server error occurred.' }
15+
return error.response.data
1716
} else {
18-
return { success: false, error: error.message }
17+
return error.response.data
1918
}
2019
}
2120
}

0 commit comments

Comments
 (0)