From 4576954f8023c4228a7b363f72e2856dca6e1be0 Mon Sep 17 00:00:00 2001 From: Esa Kataja Date: Sun, 4 May 2025 22:42:44 +0300 Subject: [PATCH] Add song data fetching --- pages/review/[id].vue | 25 +++++++++++++++++-------- server/api/artist.get.ts | 29 ++++++++++++++++------------- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/pages/review/[id].vue b/pages/review/[id].vue index f5e7392..e8c2d81 100644 --- a/pages/review/[id].vue +++ b/pages/review/[id].vue @@ -4,12 +4,12 @@ const { id } = useRoute().params interface Artist { id: number year: number - country: string + country_fi: string artist: string title: string - runningOrder: number - lyricsOriginal: string - lyricsTranslationFI: string + running_order: number + lyrics_original: string + lyrics_translation_fi: string tags: string[] img: string flag: string @@ -17,6 +17,15 @@ interface Artist { const { data: artist } = await useFetch(`/api/artist?id=${id}`) +if (!artist.value) { + throw createError({ + statusCode: 404, + statusMessage: 'Artist not found' + }) +} + + + // State for toggling lyrics visibility const showOriginalLyrics = ref(false) const toggleOriginalLyrics = () => { @@ -76,9 +85,9 @@ const submitReview = () => { {{ showOriginalLyrics ? '▼' : '►' }} -
{{ artist.lyricsOriginal }}
+
{{ artist.lyrics_original }}
-
+

{ {{ showTranslationLyrics ? '▼' : '►' }}

-
{{ artist.lyricsTranslationFI }}
+
{{ artist.lyrics_translation_fi }}
-
    +
    • {{ tag }}
    diff --git a/server/api/artist.get.ts b/server/api/artist.get.ts index 8b6925b..49b472e 100644 --- a/server/api/artist.get.ts +++ b/server/api/artist.get.ts @@ -1,15 +1,18 @@ -export default defineEventHandler((event) => { - return { - id: 1, - year: 2025, - country: "Suomi", - artist: "Käärijä", - title: "Cha Cha Cha", - runningOrder: 1, - lyricsOriginal: "[Säkeistö 1]\nRankka viikko ja paljon pitkii päiviä takan\nMielenkiintona piña colada ja rata\nIlta on vielä nuori ja aikaa kumota\nTää jäinen ulkokuori on aika tuhota\n\n[Kertosäe]\nPidän kaksin käsin kiinni juomista niinku\n(Cha, cha, cha, cha, cha, cha, cha)\nEi, en mieti huomista ku tartun tuopista niinku\n(Cha, cha, cha, cha, cha, cha, cha)\nEi, haluun olla sekasin ja vapaa huolista niinku\n(Cha, cha, cha, cha, cha, cha, cha)\nEi, ja mä jatkan kunnes en enää pysy tuolissa niinku\n\n[Säkeistö 2]\nMuutama piña colada on jo takana\nSilti mul on vielä naamataulu vakava (Yeah, yeah, ye, ye, yeah)\nIlta on vielä nuori ja aikaa kumota\nTää jäinen ulkokuori on aika tuhota\nParketti kutsuu mua ku en oo enää lukossa\nNiinku cha-cha-cha, mä oon tulossa\n\n[Kertosäe]\nPidän kaksin käsin kiinni juomista niinku\n(Cha, cha, cha, cha, cha, cha, cha)\nEi, en mieti huomista ku tartun tuopista niinku\n(Cha, cha, cha, cha, cha, cha, cha)\nEi, haluun olla sekasin ja vapaa huolista niinku\n(Cha, cha, cha, cha, cha, cha, cha)\nEi, ja mä jatkan kunnes en enää pysy tuolissa niinku vou\nSee upcoming rock shows\nGet tickets for your favorite artists\nYou might also like\n\u200bmietin sua pahalla\n\u200bpehmoaino\nLet 3 - Mama ŠČ! (English Translation)\nGenius English Translations\nViimeinen tanssi\nBEHM & Olavi Uusivirta\n[Jälkikertosäe]\nNyt lähden tanssimaan\nNiinku cha-cha-cha\nEnkä pelkääkään tätä maailmaa\nNiinku cha-cha-cha\nKun mä kaadan päälleni samppanjaa\n\n[Väliosa]\n(Cha) Cha-cha-cha\nToinen silmä jo karsastaa\nJa puhe sammaltaa\nKu tää toinen puoli must vallan saa\n(Cha) Cha-cha-cha\nEn oo arkena tää mies laisinkaan\nEn oo mut tänään oon se mies\nTänään oon se mies (Ei)\n\n[Jälkikertosäe]\nNyt lähden tanssimaan\nNiinku cha-cha-cha\nEnkä pelkääkään tätä maailmaa\nNiinku cha-cha-cha\nKun mä kaadan päälleni samppanjaa\nNiinku cha-cha-cha\nCha, cha, cha, cha, cha, cha, cha, aa-aah\nNiinku cha-cha-cha\nCha, cha, cha, cha, cha, cha, cha\n[Outro]\nCha, cha, cha, cha, cha, cha, cha", - lyricsTranslationFI: null, - tags: ["Juhlat", "Alkoholi", "Sosiaalinen paine"], - img: "https://placehold.co/150", - flag: "fin" +import { getQuery } from 'h3'; + +export default defineEventHandler(async (event) => { + const query = getQuery(event) + const { id } = query as { id: number } + const config = useRuntimeConfig(event) + const apiBase = config.public.apiBase + + const response = await $fetch(`${apiBase}/songs/${id}`) + + if (!response) { + throw createError({ + statusCode: 404, + statusMessage: 'Artist not found' + }) } + return response }) \ No newline at end of file