link to release; airtimes on artist and release

This commit is contained in:
2020-10-15 21:41:22 +02:00
parent e1ed8cda9a
commit aa880f2ba1
5 changed files with 74 additions and 12 deletions
+13 -11
View File
@@ -12,6 +12,7 @@ local function Artisthandler(self)
local artist = models.Artists:find({ id = artist_id })
if not artist then
self:write({"Not Found", status = 404})
return
end
local hidden_fields = {
@@ -25,7 +26,7 @@ local function Artisthandler(self)
end
local tracks = db.query([[
SELECT track.name AS track_name, release.name AS release_name
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)
@@ -36,19 +37,20 @@ local function Artisthandler(self)
WHERE track_artists.artist = ?
]], artist["id"])
artist["tracks"] = tracks
-- local airtimes = db.query([[
-- SELECT airtime
-- FROM airtimes
-- WHERE track = ?
-- ]], track["id"])
for i, track in ipairs(tracks) do
local airtimes = db.query([[
SELECT airtime
FROM airtimes
WHERE track = ?
]], track["id"])
-- artist["airtimes"] = {}
-- for i, airtime in ipairs(airtimes) do
-- artist["airtimes"][i] = airtime.airtime
-- end
artist["tracks"][i]["airtimes"] = {}
for j, airtime in ipairs(airtimes) do
table.insert(artist["tracks"][i]["airtimes"], airtime['airtime'])
end
end
return { json = artist }
+55
View File
@@ -0,0 +1,55 @@
local db = require("lapis.db")
local to_json = require("lapis.util").to_json
local autoload = require("lapis.util").autoload
local preload = require("lapis.db.model").preload
local models = autoload("models")
local function Releasehandler(self)
local release_id = self.params.release
local release = models.releases:find({ id = release_id })
if not release then
self:write({"Not Found", status = 404})
return
end
local hidden_fields = {
"unique_name",
"created_at",
"updated_at"
}
for i, field in ipairs(hidden_fields) do
release[field] = nil
end
local tracks = db.query([[
SELECT track.name AS track_name, track.id
FROM track_releases
INNER JOIN
tracks AS track ON (track_releases.track = track.id)
WHERE track_releases.release = ?
]], release["id"])
release["tracks"] = tracks
for i, track in ipairs(tracks) do
local airtimes = db.query([[
SELECT airtime
FROM airtimes
WHERE track = ?
]], track["id"])
release["tracks"][i]["airtimes"] = {}
for j, airtime in ipairs(airtimes) do
table.insert(release["tracks"][i]["airtimes"], airtime['airtime'])
end
end
return { json = release }
end
return Releasehandler
+1
View File
@@ -12,6 +12,7 @@ local function Trackhandler(self)
local track = models.Tracks:find({ id = track_id })
if not track then
self:write({"Not Found", status = 404})
return
end
local hidden_fields = {