package pages

import (
  "github.com/gofiber/fiber/v2"

  "gitler.moe/suwako/gitlin/utils"
)

type Items struct {
  Fullname    string
  Description string
  HtmlUrl     string
  Stars       int64
  Forks       int64
  Watchers    int64
  Language    string
  License     string
}

func HandleExplore(c *fiber.Ctx) error {
  // get trending repos
  trendingRepos := utils.GetRequest("https://api.github.com/search/repositories?q=code&sort=stars&order=desc&per_page=25")
  gjsonArray := trendingRepos.Get("items").Array() // gjson.Result when I ask for an array. idiots, anyway so I have to do jank shit like this and I hate it. at least it works and is fast enough
  var trendingReposArray []Items
  for _, item := range gjsonArray {
    trendingReposArray = append(trendingReposArray, Items{
      Fullname:    item.Get("full_name").String(),
      Description: item.Get("description").String(),
      HtmlUrl:     item.Get("html_url").String(),
      Stars:       item.Get("stargazers_count").Int(),
      Forks:       item.Get("forks_count").Int(),
      Watchers:    item.Get("watchers_count").Int(),
      Language:    item.Get("language").String(),
      License:     item.Get("license").Get("name").String(),
    })
  }

  return c.Render("explore", fiber.Map{
    "title":  "エクスプローラー",
    "ver":    utils.Ver,
    "ves":    utils.Ves,
    "repos":  trendingReposArray,
  })
}
