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 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