Ramble-FE / utils / oauthUtils.ts
oauthUtils.ts
Raw
import { CLIENT_ID_CONFIGS } from "@/config";
import { OAuthProvider } from "@/types";
import Constants from "expo-constants";
import { Platform } from "react-native";

export const APP_SCHEME = (Constants.expoConfig?.scheme as string) || "ramble";

export function getClientId(provider: OAuthProvider): string {
    const config = CLIENT_ID_CONFIGS[provider];
    const clientId = Platform.select({
        ios: config.ios,
        android: config.android,
        default: config.web,
    });
    
    if (!clientId) {
        throw new Error(`${provider} Client ID가 설정되지 않았습니다`);
    }
    
    return clientId;
}

export function formatAuthError(error: unknown, provider: OAuthProvider): string {
    console.error(`${provider} 인증 오류:`, error);
    
    if (error instanceof Error) {
        return error.message;
    } else if (typeof error === 'string') {
        return error;
    } else {
        return `${provider} 로그인 중 알 수 없는 오류가 발생했습니다`;
    }
}