<aside> 💡 로그인을 해야만 보여지는 우측 사이드바에 노래목록을 렌더링 할 것이다.
</aside>
import { Song } from '@/types';
import { createServerComponentClient } from '@supabase/auth-helpers-nextjs';
import { cookies } from 'next/headers';
const getSongsByUserId = async (): Promise<Song[]> => {
const supabase = createServerComponentClient({
cookies: cookies,
});
// userId를 조회하기 위해 session을 가져온다.
const { data: sessionData, error: sessionError } =
await supabase.auth.getSession();
if (sessionError) {
console.log(sessionError.message);
return [];
}
const { data, error } = await supabase
.from('songs')
.select('*')
// sessionId를 같이 넘긴다.
.eq('user_id', sessionData.session?.user.id)
.order('created_at', { ascending: false });
if (error) {
console.log(error.message);
}
return (data as any) || [];
};
export default getSongsByUserId;
<aside> 💡 즉 로그인을 안해서 session이 없다면 빈 배열을 return 한다.
</aside>
backend
≤=> client
API 호출을 따로 하지 않는다.