update: add the package page
This commit is contained in:
@ -1,8 +1,44 @@
|
||||
package routes
|
||||
|
||||
import "github.com/gofiber/fiber/v2"
|
||||
import (
|
||||
"fmt"
|
||||
"path"
|
||||
|
||||
"git.matterlinux.xyz/matter/tracker/lib"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
||||
func GET_package(c *fiber.Ctx) error {
|
||||
//name := c.Params("name")
|
||||
return c.Render("package", &fiber.Map{})
|
||||
var (
|
||||
name string
|
||||
version string
|
||||
list *[]lib.Package
|
||||
)
|
||||
|
||||
is_json := c.Query("json") == "1"
|
||||
is_download := c.Query("download") == "1"
|
||||
|
||||
list = c.Locals("list").(*[]lib.Package)
|
||||
version = c.Params("version")
|
||||
name = c.Params("name")
|
||||
|
||||
for _, pkg := range *list {
|
||||
if pkg.Name != name || (version != "ANY" && pkg.Version != version) {
|
||||
continue
|
||||
|
||||
}
|
||||
|
||||
if is_download {
|
||||
c.Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", path.Base(pkg.Archive)))
|
||||
return c.SendFile(pkg.Archive)
|
||||
}
|
||||
|
||||
if is_json {
|
||||
return c.JSON(pkg)
|
||||
}
|
||||
|
||||
return c.Render("package", &pkg)
|
||||
}
|
||||
|
||||
return lib.RenderError(c, 404)
|
||||
}
|
||||
|
Reference in New Issue
Block a user