Files
isotope-server/routes/isotope/search.ar
T

30 lines
1.0 KiB
Plaintext

import "server" as *
import "config" as config
import "database" as *
import "url.ar" as urllib
let search(req, res) = do
let name = req.query.get_value("name", null)
if (name == null) do
res.code = 400
res.send("Name is required")
return
name = name.toLower()
let version = req.query.get_value("version", "latest")
let package = packages.get_value(name)
if (package == null) do
res.code = 404
res.send("Package not found")
return
let currentVersion = package.versions.get_value(version)
forever do
let redirect = currentVersion.get_value("redirect")
if (redirect) do
currentVersion = package.versions.get_value(redirect)
continue
break
let filename = currentVersion.get_value("filename")
let URL = config.url+"/isotope-download?"+urllib.queryStr({name:currentVersion.name, version:currentVersion.version})
res.json({Name: currentVersion.name, Version: currentVersion.version, URL:URL })
app.get("/isotope-search", search)