Update error messages
Update error messages to provide more clarity.
This commit is contained in:
@@ -17,6 +17,10 @@ export const handleNetworkError = (error: any): string => {
|
||||
return '네트워크 오류가 발생했습니다. 인터넷 연결을 확인하세요.';
|
||||
} else if (error.message && error.message.includes('json')) {
|
||||
return '서버 응답 형식 오류: 서버가 올바른 JSON 응답을 반환하지 않았습니다.';
|
||||
} else if (error.message && error.message.includes('timeout')) {
|
||||
return '서버 응답 시간 초과: 서버가 응답하지 않습니다.';
|
||||
} else if (error.message && error.message.includes('aborted')) {
|
||||
return '요청이 중단되었습니다.';
|
||||
}
|
||||
|
||||
return error.message || '예상치 못한 오류가 발생했습니다.';
|
||||
@@ -51,6 +55,12 @@ export const parseResponse = async (response: Response) => {
|
||||
error: '서버 경로를 찾을 수 없습니다. Supabase URL을 확인하세요.',
|
||||
status: 404
|
||||
};
|
||||
} else if (response.status >= 200 && response.status < 300) {
|
||||
return {
|
||||
success: true,
|
||||
status: response.status,
|
||||
message: '서버가 성공 상태를 반환했지만 응답 내용이 없습니다.'
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
error: `서버가 빈 응답을 반환했습니다 (상태 코드: ${response.status})`,
|
||||
@@ -80,6 +90,12 @@ export const parseResponse = async (response: Response) => {
|
||||
error: '서버 내부 오류가 발생했습니다.',
|
||||
status: response.status
|
||||
};
|
||||
} else if (response.status >= 200 && response.status < 300) {
|
||||
return {
|
||||
success: true,
|
||||
status: response.status,
|
||||
message: '서버가 성공 상태를 반환했지만 JSON 형식이 아닙니다.'
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
error: `응답 형식 오류 (상태 코드: ${response.status}): 서버가 올바른 JSON 응답을 반환하지 않았습니다.`,
|
||||
@@ -134,23 +150,26 @@ export const checkSupabaseConnection = async (): Promise<boolean> => {
|
||||
}
|
||||
};
|
||||
|
||||
// 서버 연결 상태 검사
|
||||
// 서버 연결 상태 검사 (개선 버전)
|
||||
export const verifyServerConnection = async (): Promise<{
|
||||
connected: boolean;
|
||||
message: string;
|
||||
statusCode?: number;
|
||||
}> => {
|
||||
try {
|
||||
const start = Date.now();
|
||||
|
||||
// Supabase URL 가져오기
|
||||
const supabaseUrl = localStorage.getItem('supabase_url') || 'http://a11.ism.kr:8000';
|
||||
const supabaseUrl = supabase.auth.url;
|
||||
|
||||
// 단순 헬스 체크 요청
|
||||
const response = await fetch(`${supabaseUrl}/rest/v1/`, {
|
||||
const response = await fetch(`${supabaseUrl}/`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
},
|
||||
// 연결 확인만을 위한 요청이므로 짧은 타임아웃 설정
|
||||
signal: AbortSignal.timeout(3000)
|
||||
});
|
||||
|
||||
const elapsed = Date.now() - start;
|
||||
@@ -159,12 +178,14 @@ export const verifyServerConnection = async (): Promise<{
|
||||
// 401도 서버가 응답했다는 의미이므로 연결 성공으로 간주
|
||||
return {
|
||||
connected: true,
|
||||
message: `서버 연결 성공 (응답 시간: ${elapsed}ms)`
|
||||
message: `서버 연결 성공 (응답 시간: ${elapsed}ms)`,
|
||||
statusCode: response.status
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
connected: false,
|
||||
message: `서버 응답 오류: ${response.status} ${response.statusText}`
|
||||
message: `서버 응답 오류: ${response.status} ${response.statusText}`,
|
||||
statusCode: response.status
|
||||
};
|
||||
}
|
||||
} catch (error: any) {
|
||||
@@ -180,6 +201,10 @@ export const verifyServerConnection = async (): Promise<{
|
||||
errorMessage = '네트워크 연결 실패';
|
||||
} else if (error.message.includes('TypeError')) {
|
||||
errorMessage = '네트워크 요청 형식 오류';
|
||||
} else if (error.message.includes('timeout')) {
|
||||
errorMessage = '서버 응답 시간 초과';
|
||||
} else if (error.message.includes('aborted')) {
|
||||
errorMessage = '요청이 중단됨';
|
||||
} else {
|
||||
errorMessage = error.message;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user