thomas-shop/menu.go

51 lines
821 B
Go
Raw Normal View History

2022-05-02 16:26:06 +02:00
package main
import (
"encoding/json"
"log"
"net/http"
)
var menuURL = "http://www.thomaspol.com/wp-json/wp/v2/menu"
type MenuItem struct {
Title string `json:"title"`
URL string `json:"url"`
}
func _getMenuItems() func() []MenuItem {
var items []MenuItem
return func() []MenuItem {
if items == nil {
res, err := http.DefaultClient.Get(menuURL)
if err != nil {
log.Printf("[Err] Error getting menu: %v", err)
return items
}
dec := json.NewDecoder(res.Body)
tmpItems := []MenuItem{}
if err := dec.Decode(&tmpItems); err != nil {
return items
}
items_ := []MenuItem{}
for _, item := range tmpItems {
if item.URL == "#" {
continue
}
items_ = append(items_, item)
}
items = items_
}
return items
}
}
var getMenuItems = _getMenuItems()