@@ -14,30 +14,9 @@ function getCookie(name) {
1414}
1515
1616async function getUserData ( ) {
17- const token = localStorage . getItem ( 'access_token' ) ;
18-
19- if ( ! token ) {
20- console . warn ( "로그인 토큰이 없습니다." ) ;
21- return null ;
22- }
23-
24- try {
25- const response = await fetch ( '/api/users/api/profile_modify/' ) ;
26-
27- if ( response . ok ) {
28- const userData = await response . json ( ) ;
29- console . log ( "유저 정보 로드 성공:" , userData ) ;
30- return userData ;
31- } else {
32- alert ( '토큰이 만료되었거나 유효하지 않습니다.' )
33- console . error ( "토큰이 만료되었거나 유효하지 않습니다." ) ;
34- window . location . href = '/api/users/login/' ;
35- return null ;
36- }
37- } catch ( error ) {
38- console . error ( "네트워크 오류 발생:" , error ) ;
39- return null ;
40- }
17+ const userData = await Auth . getData ( '/api/users/api/profile_modify/' ) ;
18+ if ( userData ) console . log ( "유저 정보 로드 성공:" , userData ) ;
19+ return userData ;
4120}
4221
4322async function renderProfile ( ) {
@@ -67,51 +46,31 @@ async function renderProfile() {
6746}
6847
6948async function patchProfile ( ) {
70- const token = localStorage . getItem ( 'access_token' ) ;
71-
72- if ( ! token ) {
73- alert ( "로그인이 만료되었습니다. 다시 로그인해주세요." ) ;
74- window . location . href = '/api/users/login/' ;
75- return ;
76- }
77-
7849 const username = document . getElementById ( 'user-username' ) . value ;
79- const userInput = document . getElementById ( 'userphoto' )
50+ const userInput = document . getElementById ( 'userphoto' ) ;
8051 const formData = new FormData ( ) ;
81-
82- formData . append ( 'username' , username )
52+ formData . append ( 'username' , username ) ;
8353 if ( userInput . files . length > 0 ) {
8454 formData . append ( 'user_photo' , userInput . files [ 0 ] ) ;
8555 }
8656
87- try {
88- // 2. 백엔드 PATCH API 호출
89- const response = await fetch ( '/api/users/api/profile_modify/' , {
90- method : 'PATCH' ,
91- headers : {
92- 'X-CSRFToken' : getCookie ( 'csrftoken' ) ,
93- } ,
94- body : formData
95- } ) ;
96-
97- if ( response . ok ) {
98- alert ( "프로필이 성공적으로 변경되었습니다!" ) ;
99- window . location . href = '/api/users/mypage/' ; // 저장 후 마이페이지로 이동
100- } else {
101- const errorData = await response . json ( ) ;
102- alert ( "수정 실패: " + ( errorData . detail || "오류가 발생했습니다." ) ) ;
103- }
104- } catch ( error ) {
105- console . error ( "네트워크 오류:" , error ) ;
106- alert ( "서버 연결에 실패했습니다. 인터넷 연결을 확인해주세요." ) ;
57+ const result = await Auth . patchData (
58+ '/api/users/api/profile_modify/' ,
59+ formData ,
60+ true ,
61+ { headers : { 'X-CSRFToken' : getCookie ( 'csrftoken' ) } }
62+ ) ;
63+ if ( result !== null ) {
64+ alert ( "프로필이 성공적으로 변경되었습니다!" ) ;
65+ window . location . href = '/api/users/mypage/' ;
66+ } else {
67+ alert ( "수정 실패: 오류가 발생했습니다." ) ;
10768 }
108- } ;
69+ }
10970
110- function logout ( ) {
111- localStorage . removeItem ( 'access_token' ) ;
112- localStorage . removeItem ( 'refresh_token' ) ;
71+ function logout ( ) {
11372 alert ( '로그아웃 되었습니다' ) ;
114- window . location . href = "/ users/login/";
73+ Auth . logout ( "/api/ users/login/") ;
11574}
11675
11776function previewImage ( input ) {
0 commit comments