Files
2026-07-14 11:14:46 -07:00

51 lines
901 B
Go

package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
"time"
)
type ResponseData struct {
SunsetTime time.Time `json:"sunset"`
}
func getSunsetData(lat string, lng string) (*ResponseData, error) {
u, _ := url.Parse("https://api.sunrise-sunset.org/v2")
q := u.Query()
q.Set("lat", lat)
q.Set("lng", lng)
q.Set("formatted", "0")
u.RawQuery = q.Encode()
URL := u.String()
r, err := http.Get(URL)
if err != nil {
return nil, err
}
defer r.Body.Close()
if r.StatusCode != http.StatusOK {
return nil, fmt.Errorf("bad status: %d", r.StatusCode)
}
var apiResponse struct {
SunsetTime string `json:"sunset"`
}
if err := json.NewDecoder(r.Body).Decode(&apiResponse); err != nil {
return nil, err
}
parsedTime, err := time.Parse(time.RFC3339, apiResponse.SunsetTime)
if err != nil {
return nil, err
}
return &ResponseData{SunsetTime: parsedTime}, nil
}