const seminarKeys = {
base: ['seminars'],
attendances: [...base, 'attendances'],
available: [...base, 'available'],
recentlyDone: [...base, 'recentlyDone'] as const,
recentlyUpcoming: [...base, 'recentlyUpcoming'] as const,
attendanceList: (params: { page?: number, size: ~~ }) => [...attendances, params] as const,
byId: (id: number) => [...base, id] as const,
byDate: (params:{date:string}) => [...base, params] as const,
};
리팩토링 요약
각 api 파일 상단에 객체 상수 형식으로 키 지정
각 키에 queryfn에서 사용하는 변수 포함되어 있는 지 확인하고 없으면 포함시키기
path parameter 먼저 각각의 변수로 리스트 원소에 넣고, 이후 querystring은 params라는 변수로 객체 형식으로 묶어서 넘겨주기
as const각 프로퍼티 마다 붙여주기key를 사용하는 부분(ex.
setQueryData)에서도 상수 가져와서 사용하도록 수정하기외부에서 해당 쿼리키 사용 해야하는 부분이 있다면, 그 쿼리키만 export 하는 걸로!
params 어차피 fetcher랑 key부분에 둘다 넣으니까 따로 변수로 빼자!
기본 도메인 이름 base로 두기
리스트로 받아오는 경우 네이밍 subfix
List로 하기리팩토링 파트 분배