package locations import ( "context" "fmt" "net/http" "fr.latosa-escrima/core" "fr.latosa-escrima/core/models" "fr.latosa-escrima/utils" ) func HandleLocations(w http.ResponseWriter, r *http.Request) { var locations []*models.Location if err := core.DB. NewSelect(). Model(&locations). Scan(context.Background()); err != nil { fmt.Println("Error") core.JSONError{ Status: core.Error, Message: err.Error(), }.Respond(w, http.StatusInternalServerError) return } locations = utils.Map(locations, func(l *models.Location) *models.Location { var events []models.Event err := core.DB. NewSelect(). Model(&events). Where("location = ? || ', ' || ? || ', ' || ?", l.Street, l.City, l.PostalCode). Scan(context.Background()) if err != nil { return nil } l.Events = &events return l }) core.JSONSuccess{ Status: core.Success, Message: "Locations retrieved.", Data: locations, }.Respond(w, http.StatusOK) }