Konfi-Castle-Kasino/getList.go

61 lines
1.3 KiB
Go

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)")
}