64 lines
2.0 KiB
TypeScript
64 lines
2.0 KiB
TypeScript
/**
|
|
* Appwrite 설정
|
|
*
|
|
* 이 파일은 Appwrite 서비스에 필요한 모든 설정 값을 정의합니다.
|
|
* 환경 변수에서 값을 가져오며, 기본값을 제공합니다.
|
|
*/
|
|
|
|
// Appwrite 설정 타입 정의
|
|
export interface AppwriteConfig {
|
|
endpoint: string;
|
|
projectId: string;
|
|
databaseId: string;
|
|
transactionsCollectionId: string;
|
|
apiKey: string;
|
|
}
|
|
|
|
// 환경 변수에서 설정 값 가져오기
|
|
const endpoint = import.meta.env.VITE_APPWRITE_ENDPOINT || 'https://a11.ism.kr/v1';
|
|
const projectId = import.meta.env.VITE_APPWRITE_PROJECT_ID || '68182a300039f6d700a6';
|
|
const databaseId = import.meta.env.VITE_APPWRITE_DATABASE_ID || 'default';
|
|
const transactionsCollectionId = import.meta.env.VITE_APPWRITE_TRANSACTIONS_COLLECTION_ID || 'transactions';
|
|
const apiKey = import.meta.env.VITE_APPWRITE_API_KEY || '';
|
|
|
|
// 개발 모드에서 설정 값 로깅
|
|
console.log('현재 Appwrite 설정:', {
|
|
endpoint,
|
|
projectId,
|
|
databaseId,
|
|
transactionsCollectionId,
|
|
apiKey: apiKey ? '설정됨' : '설정되지 않음' // API 키는 안전을 위해 완전한 값을 로깅하지 않음
|
|
});
|
|
|
|
// 설정 객체 생성
|
|
export const config: AppwriteConfig = {
|
|
endpoint,
|
|
projectId,
|
|
databaseId,
|
|
transactionsCollectionId,
|
|
apiKey,
|
|
};
|
|
|
|
// Getter functions for config values
|
|
export const getAppwriteEndpoint = (): string => endpoint;
|
|
export const getAppwriteProjectId = (): string => projectId;
|
|
export const getAppwriteDatabaseId = (): string => databaseId;
|
|
export const getAppwriteTransactionsCollectionId = (): string => transactionsCollectionId;
|
|
|
|
/**
|
|
* 서버 연결 유효성 검사
|
|
* @returns 유효한 설정인지 여부
|
|
*/
|
|
export const isValidAppwriteConfig = (): boolean => {
|
|
return Boolean(endpoint && projectId);
|
|
};
|
|
|
|
/**
|
|
* 설정 값 검증 및 오류 발생
|
|
* @throws 필수 설정이 없는 경우 오류 발생
|
|
*/
|
|
export const validateConfig = (): void => {
|
|
if (!endpoint) throw new Error("VITE_APPWRITE_ENDPOINT is not set");
|
|
if (!projectId) throw new Error("VITE_APPWRITE_PROJECT_ID is not set");
|
|
};
|