Files
ip-info/internal/services/api/handler_json.go
thuanle eaeb32b421 etag write to file
handle query before db loaded
2024-07-14 00:48:58 +07:00

31 lines
539 B
Go

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)
}