PreviouslyOnIFM/code/handlers/artisthandler.lua

58 lines
1.4 KiB
Lua

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 Artisthandler(self)
local artist_id = self.params.artist
local artist = models.Artists:find({ id = artist_id })
if not artist then
self:write({"Not Found", status = 404})
end
local hidden_fields = {
"unique_name",
"created_at",
"updated_at"
}
for i, field in ipairs(hidden_fields) do
artist[field] = nil
end
local tracks = db.query([[
SELECT track.name AS track_name, 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"])
artist["tracks"] = tracks
-- 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
return { json = artist }
end
return Artisthandler