package main import ( "fmt" "github.com/labstack/echo" "net/http" ) func getList(c echo.Context) error { //Datenbankverbindung aufbauen db := DBinit() //Config SiteConf := initConfig() if SiteConf.Mode == 0 { //Daten holen und anzeigen var kofi []Kofi asc := c.QueryParam("asc") if asc == "" { err := db.OrderBy("KCoins DESC").Find(&kofi) if err != nil { fmt.Println(err) } } else { err := db.OrderBy("Name ASC").Find(&kofi) if err != nil { fmt.Println(err) } } //Template return c.JSON(http.StatusOK, kofi) } else if SiteConf.Mode == 1 { //Daten holen und anzeigen var gemeinden []Gemeinde asc := c.QueryParam("asc") if asc == "" { err := db.Select("Gemeinde.*, (cast(KCoins AS FLOAT) / cast(KonfiCount AS FLOAT)) as CoinsQuota").OrderBy("CoinsQuota DESC").Find(&gemeinden) if err != nil { fmt.Println(err) } } else { err := db.Select("*, (cast(KCoins AS FLOAT) / cast(KonfiCount AS FLOAT)) AS CoinsQuota").OrderBy("Name ASC").Find(&gemeinden) if err != nil { fmt.Println(err) } } // Alles durchgehen und den Schnitt ausrechnen for i, gem := range gemeinden{ gemeinden[i].CoinsQuota = float64(gem.KCoins) / float64(gem.KonfiCount) } //Template return c.JSON(http.StatusOK, gemeinden) } return c.HTML(http.StatusInternalServerError, "Error. (Wrong mode)") }