MCPcopy Create free account
hub / github.com/pace/bricks / fetchSunsetandSunrise

Function fetchSunsetandSunrise

tools/testserver/main.go:243–286  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

241}
242
243func fetchSunsetandSunrise(ctx context.Context) string {
244 span := sentry.StartSpan(ctx, "fetchSunsetandSunrise")
245 defer span.Finish()
246
247 ctx = span.Context()
248
249 span.SetData("lat", lat)
250 span.SetData("lon", lon)
251
252 url := fmt.Sprintf("https://api.sunrise-sunset.org/json?lat=%f&lng=%f&date=today", lat, lon)
253 req, err := http.NewRequestWithContext(ctx, "GET", url, nil)
254 if err != nil {
255 log.Fatal(err)
256 }
257
258 c := &http.Client{
259 Transport: transport.NewDefaultTransportChain(),
260 }
261 resp, err := c.Do(req)
262 if err != nil {
263 log.Fatal(err)
264 }
265 defer resp.Body.Close()
266
267 var r struct {
268 Results struct {
269 Sunset string `json:"sunset"`
270 } `json:"results"`
271 }
272
273 err = json.NewDecoder(resp.Body).Decode(&r)
274 if err != nil {
275 log.Fatal(err)
276 }
277
278 sunset, err := time.Parse("3:04:05 PM", r.Results.Sunset)
279 if err != nil {
280 log.Fatal(err)
281 }
282 sunset = sunset.Local()
283
284 log.Ctx(ctx).Debug().Time("sunset", sunset).Str("str", r.Results.Sunset).Msg("Parsed sunset time")
285 return sunset.String()
286}

Callers 1

mainFunction · 0.85

Calls 8

FatalFunction · 0.92
NewDefaultTransportChainFunction · 0.92
CtxFunction · 0.92
FinishMethod · 0.80
ContextMethod · 0.80
CloseMethod · 0.80
ParseMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…