diff --git a/src/lib/server/spotify.ts b/src/lib/server/spotify.ts deleted file mode 100644 index 050444f..0000000 --- a/src/lib/server/spotify.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { - SPOTIFY_CLIENT_ID, - SPOTIFY_CLIENT_SECRET, - SPOTIFY_REFRESH_TOKEN -} from '$env/static/private'; - -const basic = Buffer.from(`${SPOTIFY_CLIENT_ID}:${SPOTIFY_CLIENT_SECRET}`).toString('base64'); - -const TOKEN_ENDPOINT = `https://accounts.spotify.com/api/token`; -const NOW_PLAYING_ENDPOINT = `https://api.spotify.com/v1/me/player/currently-playing`; - -const getAccessToken = async () => { - const response = await fetch(TOKEN_ENDPOINT, { - method: 'POST', - headers: { - Authorization: `Basic ${basic}`, - 'Content-Type': 'application/x-www-form-urlencoded' - }, - body: new URLSearchParams({ - grant_type: 'refresh_token', - refresh_token: SPOTIFY_REFRESH_TOKEN - }).toString() - }); - - return response.json(); -}; - -export const getNowPlaying = async () => { - const { access_token } = await getAccessToken(); - - return fetch(NOW_PLAYING_ENDPOINT, { - headers: { - Authorization: `Bearer ${access_token}` - } - }); -}; - -export type Artist = { - external_urls: { - spotify: string; - }; - href: string; - id: string; - name: string; - type: string; - uri: string; -}; diff --git a/src/routes/api/spotify/np/+server.ts b/src/routes/api/spotify/np/+server.ts index ab2a041..5303d7f 100644 --- a/src/routes/api/spotify/np/+server.ts +++ b/src/routes/api/spotify/np/+server.ts @@ -1,4 +1,39 @@ -import { getNowPlaying, type Artist } from '$lib/server/spotify'; +import { + SPOTIFY_CLIENT_ID, + SPOTIFY_CLIENT_SECRET, + SPOTIFY_REFRESH_TOKEN +} from '$env/static/private'; + +const basic = Buffer.from(`${SPOTIFY_CLIENT_ID}:${SPOTIFY_CLIENT_SECRET}`).toString('base64'); + +const TOKEN_ENDPOINT = `https://accounts.spotify.com/api/token`; +const NOW_PLAYING_ENDPOINT = `https://api.spotify.com/v1/me/player/currently-playing`; + +const getAccessToken = async () => { + const response = await fetch(TOKEN_ENDPOINT, { + method: 'POST', + headers: { + Authorization: `Basic ${basic}`, + 'Content-Type': 'application/x-www-form-urlencoded' + }, + body: new URLSearchParams({ + grant_type: 'refresh_token', + refresh_token: SPOTIFY_REFRESH_TOKEN + }).toString() + }); + + return response.json(); +}; + +const getNowPlaying = async () => { + const { access_token } = await getAccessToken(); + + return fetch(NOW_PLAYING_ENDPOINT, { + headers: { + Authorization: `Bearer ${access_token}` + } + }); +}; export async function GET() { const response = await getNowPlaying(); @@ -50,3 +85,14 @@ export async function GET() { } ); } + +type Artist = { + external_urls: { + spotify: string; + }; + href: string; + id: string; + name: string; + type: string; + uri: string; +};