kakaoApi static method
카카오 API 에러 → KAuthError
Implementation
static KAuthError kakaoApi(kakao.KakaoApiException e) {
switch (e.code) {
case kakao.ApiErrorCause.invalidToken:
return KAuthError(
code: ErrorCodes.tokenExpired,
message: '액세스 토큰이 만료되었습니다.',
hint: '토큰 갱신 또는 다시 로그인해주세요.',
originalError: e,
);
case kakao.ApiErrorCause.insufficientScope:
return KAuthError(
code: ErrorCodes.kakaoConsentRequired,
message: '추가 동의가 필요합니다.',
hint: '동의항목을 확인하고 추가 동의를 요청하세요.',
docs: 'https://developers.kakao.com/console',
originalError: e,
);
case kakao.ApiErrorCause.notRegisteredUser:
return KAuthError(
code: ErrorCodes.loginFailed,
message: '앱에 연결되지 않은 사용자입니다.',
hint: '카카오 로그인으로 앱에 연결해주세요.',
originalError: e,
);
case kakao.ApiErrorCause.accountDoesNotExist:
return KAuthError(
code: ErrorCodes.loginFailed,
message: '카카오 계정이 존재하지 않습니다.',
hint: '카카오 계정을 확인해주세요.',
originalError: e,
);
case kakao.ApiErrorCause.propertyKeyDoesNotExist:
return KAuthError(
code: ErrorCodes.userInfoError,
message: '요청한 사용자 정보가 없습니다.',
hint: '사용자 프로퍼티 설정을 확인하세요.',
docs: 'https://developers.kakao.com/console',
originalError: e,
);
default:
return KAuthError(
code: ErrorCodes.loginFailed,
message: '카카오 API 오류가 발생했습니다.',
hint: e.message ?? '다시 시도해주세요.',
details: {'apiErrorCode': e.code.name},
originalError: e,
);
}
}