From 18664501c59d5c72a7601f95b21b61d2af96cdb5 Mon Sep 17 00:00:00 2001 From: dreamer Date: Fri, 16 Oct 2020 09:35:41 +0200 Subject: [PATCH] add releases to tracks in artist and track --- code/handlers/artisthandler.lua | 35 +++++++++++++++++++++++++++------ code/handlers/trackhandler.lua | 13 ++++++++++++ 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/code/handlers/artisthandler.lua b/code/handlers/artisthandler.lua index 42caba3..41932d5 100644 --- a/code/handlers/artisthandler.lua +++ b/code/handlers/artisthandler.lua @@ -25,19 +25,27 @@ local function Artisthandler(self) artist[field] = nil end + -- local tracks = db.query([[ + -- SELECT track.name AS track_name, track.id, release.name AS release_name + -- FROM track_artists + -- INNER JOIN + -- tracks AS track ON (track_artists.track = track.id) + -- INNER JOIN + -- track_releases AS track_release ON (track_release.track = track.id) + -- INNER JOIN + -- releases AS release ON (track_release.release = release.id) + -- WHERE track_artists.artist = ? + -- ]], artist["id"]) + local tracks = db.query([[ - SELECT track.name AS track_name, track.id, release.name AS release_name + SELECT track.name AS track_name, track.id FROM track_artists INNER JOIN tracks AS track ON (track_artists.track = track.id) - INNER JOIN - track_releases AS track_release ON (track_release.track = track.id) - INNER JOIN - releases AS release ON (track_release.release = release.id) WHERE track_artists.artist = ? ]], artist["id"]) -artist["tracks"] = tracks + artist["tracks"] = tracks for i, track in ipairs(tracks) do local airtimes = db.query([[ @@ -50,6 +58,21 @@ artist["tracks"] = tracks for j, airtime in ipairs(airtimes) do table.insert(artist["tracks"][i]["airtimes"], airtime['airtime']) end + + local releases = db.query([[ + SELECT release.id, release.name + FROM track_releases + INNER JOIN + releases AS release ON (track_releases.release = release.id) + WHERE track = ? + ]], track["id"]) + + artist["tracks"][i]["releases"] = {} + for k, release in ipairs(releases) do + print(to_json(release)) + table.insert(artist["tracks"][i]["releases"], release) + end + end return { json = artist } diff --git a/code/handlers/trackhandler.lua b/code/handlers/trackhandler.lua index b21ffce..902f477 100644 --- a/code/handlers/trackhandler.lua +++ b/code/handlers/trackhandler.lua @@ -47,6 +47,19 @@ local function Trackhandler(self) track["airtimes"][i] = airtime.airtime end + local releases = db.query([[ + SELECT release.id, release.name + FROM track_releases + INNER JOIN + releases AS release ON (track_releases.release = release.id) + WHERE track = ? + ]], track["id"]) + + track["releases"] = {} + for i, release in ipairs(releases) do + track["releases"][i] = release + end + return { json = track } end