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 Stationhandler(self) local station_id = self.params.station local station = models.Stations:find({ station = station_id }) if not station then print("unknown station: " .. station_id) else print("This is: " .. station["name"]) end local artist = nil local release = nil local return_dict = {} local limit = 10 local offset = 0 -- local airtimes = models.Airtimes:paginated("where station = ? order by airtime desc", station["id"], { -- per_page = 10, -- fields = "track, station, airtime", -- prepare_results = function(airtime) -- models.Tracks:include_in(airtime, { id="track" }) -- models.Stations:include_in(airtime, { id="station" }) -- return airtime -- end -- }) -- airtimes = airtimes:get_page(1) local airtimes = db.query([[ SELECT airtime, track.name AS track, track.year, track.info_url, track.img_url, artist.name as artist, release.name AS release, release.country, release.label AS label FROM airtimes INNER JOIN tracks AS track ON (airtimes.track = track.id) INNER JOIN track_artists as track_artist ON (track_artist.track = track.id) INNER JOIN artists as artist ON (track_artist.artist = artist.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 station = ? ORDER BY airtime DESC LIMIT ? OFFSET ? ]], station["id"], limit, offset*limit ) return { json = airtimes } end return Stationhandler