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