Merge branch 'develop' of ssh://git.idiopolis.nl:2222/dreamer/PreviouslyOnIFM into develop
This commit is contained in:
commit
0189d1d8e8
59
code/handlers/releasehandler.lua
Normal file
59
code/handlers/releasehandler.lua
Normal file
@ -0,0 +1,59 @@
|
||||
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")
|
||||
|
||||
|
||||
local function Releasehandler(self)
|
||||
local release_id = self.params.release
|
||||
|
||||
local release = models.releases:find({ id = release_id })
|
||||
if not release then
|
||||
self:write({"Not Found", status = 404})
|
||||
return
|
||||
end
|
||||
|
||||
local hidden_fields = {
|
||||
"unique_name",
|
||||
"created_at",
|
||||
"updated_at"
|
||||
}
|
||||
|
||||
for i, field in ipairs(hidden_fields) do
|
||||
release[field] = nil
|
||||
end
|
||||
|
||||
local tracks = db.query([[
|
||||
SELECT track.name AS track_name, track.id, release.name AS release_name
|
||||
FROM track_releases
|
||||
INNER JOIN
|
||||
tracks AS track ON (track_releases.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_releases.release = ?
|
||||
]], release["id"])
|
||||
|
||||
release["tracks"] = tracks
|
||||
|
||||
for i, track in ipairs(tracks) do
|
||||
local airtimes = db.query([[
|
||||
SELECT airtime
|
||||
FROM airtimes
|
||||
WHERE track = ?
|
||||
]], track["id"])
|
||||
|
||||
release["tracks"][i]["airtimes"] = {}
|
||||
for j, airtime in ipairs(airtimes) do
|
||||
table.insert(release["tracks"][i]["airtimes"], airtime['airtime'])
|
||||
end
|
||||
end
|
||||
|
||||
return { json = release }
|
||||
|
||||
end
|
||||
|
||||
return Releasehandler
|
||||
Loading…
Reference in New Issue
Block a user