PreviouslyOnIFM/code/handlers/trackhandler.lua

54 lines
1.1 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")
function Trackhandler(self)
local track_id = self.params.track
local track = models.Tracks:find({ id = track_id })
if not track 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
track[field] = nil
end
local artists = db.query([[
SELECT artist.name AS artist_name
FROM track_artists
INNER JOIN
artists as artist ON (track_artists.artist = artist.id)
WHERE track_artists.track = ?
]], track["id"])
track["artist"] = artists[1]["artist_name"]
local airtimes = db.query([[
SELECT airtime
FROM airtimes
WHERE track = ?
]], track["id"])
track["airtimes"] = {}
for i, airtime in ipairs(airtimes) do
track["airtimes"][i] = airtime.airtime
end
return { json = track }
end
return Trackhandler