package api

import (
	"github.com/gin-gonic/gin"
	"github.com/rs/zerolog/log"
	"net/http"
	"thuanle.me/ip-info/internal/data"
)

func HandleJson(c *gin.Context) {
	ip := c.ClientIP()
	if !data.Ins().IsLoaded() {
		log.Error().Msg("DB is not loaded")
		c.String(http.StatusInternalServerError, "Try again later")
		return
	}

	ipData, _, err := data.Ins().Query(ip)
	if err != nil {
		log.Err(err).Msg("Failed to query IP")
		c.JSON(http.StatusOK, gin.H{
			"ip": ip,
		})
		return
	}

	ipData["ip"] = ip
	c.JSON(http.StatusOK, ipData)

}
