package pages import ( "fmt" "github.com/gofiber/fiber/v2" "codeberg.org/Odyssium/gothub/utils" "strings" ) type User struct { Login string Name string Bio string AvatarUrl string Location string Following int64 Followers int64 Link string Company string Type string EwTwitter string } type Ratelimit struct { Remaining int64 Limit int64 } // HandleUser handles the user page. func HandleUser(c *fiber.Ctx) error { user := utils.GetRequest("https://api.github.com/users/" + c.Params("user")) if strings.Contains(user.Get("message").String(), "rate limit") { // dont wanna get the status code so i'll just do this instead 👍 ratelimitJSON := utils.GetRequest("https://api.github.com/rate_limit") fmt.Println(ratelimitJSON) var ratelimitArray []Ratelimit ratelimitArray = append(ratelimitArray, Ratelimit{ Remaining: ratelimitJSON.Get("resources.core.remaining").Int(), Limit: ratelimitJSON.Get("resources.core.limit").Int(), }) fmt.Println(ratelimitArray) return c.Render("ratelimit", fiber.Map{ "Title": "GitHub API /users endpoint rate limit exceeded", "ratelimit": ratelimitArray, }) } else { var userArray []User userArray = append(userArray, User{ Login: user.Get("login").String(), Name: user.Get("name").String(), Bio: user.Get("bio").String(), AvatarUrl: "/avatar/" + user.Get("id").String(), Location: user.Get("location").String(), Following: user.Get("following").Int(), Followers: user.Get("followers").Int(), Link: user.Get("blog").String(), Company: user.Get("company").String(), Type: user.Get("type").String(), EwTwitter: user.Get("twitter_username").String(), }) fmt.Println(userArray) return c.Render("user", fiber.Map{ "user": userArray, }) } }