package httpapi import ( "errors" "github.com/gin-gonic/gin" "github.com/sundynix/pets-be/internal/environment" "net/http" "strconv" ) func (a *API) environment(c *gin.Context) { lat, latErr := strconv.ParseFloat(c.Query("latitude"), 64) lon, lonErr := strconv.ParseFloat(c.Query("longitude"), 64) if latErr != nil || lonErr != nil { fail(c, http.StatusBadRequest, "请提供有效的定位坐标") return } result, err := a.env.Lookup(c.Request.Context(), lat, lon) if err != nil { status := http.StatusBadGateway if errors.Is(err, environment.ErrCoordinates) { status = http.StatusBadRequest } if errors.Is(err, environment.ErrNotConfigured) { status = http.StatusServiceUnavailable } fail(c, status, err.Error()) return } ok(c, result) }