61 lines
1.3 KiB
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)")
|
|
}
|