loading diyhrt data in template

This commit is contained in:
Hazel Noack 2025-07-03 17:07:35 +02:00
parent 1892da9682
commit 51ec608e65
2 changed files with 32 additions and 7 deletions

View File

@ -1,6 +1,8 @@
package rendering package rendering
import "reflect" import (
"gitea.elara.ws/Hazel/transfem-startpage/internal/diyhrt"
)
type RenderingConfig struct { type RenderingConfig struct {
HeaderPhrases []string HeaderPhrases []string
@ -10,6 +12,9 @@ type RenderingConfig struct {
SearchPlaceholder string SearchPlaceholder string
SearchFormAction string SearchFormAction string
SearchInputName string SearchInputName string
Listings []diyhrt.Listing
Stores []diyhrt.Store
} }
func DefaultRenderingConfig() RenderingConfig { func DefaultRenderingConfig() RenderingConfig {
@ -32,11 +37,18 @@ func DefaultRenderingConfig() RenderingConfig {
} }
} }
func (rc *RenderingConfig) Set(key string, value string) { func (rc *RenderingConfig) LoadDiyHrt(listings []diyhrt.Listing) {
// https://gist.github.com/kilfu0701/77c614386483782f68bc5538b6100730 existingStores := make(map[int]struct{})
r := reflect.ValueOf(rc) stores := make([]diyhrt.Store, 0)
f := reflect.Indirect(r).FieldByName(key)
if f.Kind() != reflect.Invalid { for _, listing := range listings {
f.SetString(value) if _, ok := existingStores[listing.Store.Id]; ok {
continue
} }
stores = append(stores, listing.Store)
}
rc.Listings = listings
rc.Stores = stores
} }

13
main.go
View File

@ -5,12 +5,24 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"gitea.elara.ws/Hazel/transfem-startpage/internal/diyhrt"
"gitea.elara.ws/Hazel/transfem-startpage/internal/rendering" "gitea.elara.ws/Hazel/transfem-startpage/internal/rendering"
"github.com/labstack/echo/v4" "github.com/labstack/echo/v4"
) )
var CurrentRenderingConfig = rendering.DefaultRenderingConfig() var CurrentRenderingConfig = rendering.DefaultRenderingConfig()
func FetchDiyHrt() error {
fmt.Println("Fetch DiyHrt Marketplaces...")
l, err := diyhrt.GetListings()
if err != nil {
return err
}
CurrentRenderingConfig.LoadDiyHrt(l)
return nil
}
func setConfig(c echo.Context) error { func setConfig(c echo.Context) error {
err := c.Bind(&CurrentRenderingConfig) err := c.Bind(&CurrentRenderingConfig)
if err != nil { if err != nil {
@ -29,6 +41,7 @@ func getIndex(c echo.Context) error {
func main() { func main() {
fmt.Println("running transfem startpage") fmt.Println("running transfem startpage")
FetchDiyHrt()
e := echo.New() e := echo.New()
e.Static("/assets", "frontend/assets") e.Static("/assets", "frontend/assets")