70 lines
2.1 KiB
Lua
70 lines
2.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 Stationhandler(self)
|
|
local station_id = self.params.station
|
|
local json = self.params.json or nil
|
|
|
|
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 limit = self.params.limit or 10
|
|
local offset = self.params.offset or 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)
|
|
|
|
self.airtimes = db.query([[
|
|
SELECT airtime, track.id AS track_id, track.name AS track, track.year, track.info_url, track.img_url,
|
|
artist.id AS artist_id, artist.name as artist,
|
|
release.id AS release_id, 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
|
|
)
|
|
|
|
if json then
|
|
return { json = self.airtimes }
|
|
end
|
|
|
|
-- for i, item in ipairs(self.airtimes) do
|
|
-- print(to_json(item))
|
|
-- end
|
|
|
|
return { render = "station" }
|
|
|
|
end
|
|
|
|
return Stationhandler
|