Files
trikotwaschliste/database/admin.go
2020-10-12 00:16:23 +02:00

68 lines
1.5 KiB
Go

package database
import (
"context"
"github.com/gin-gonic/gin"
"github.com/jackc/pgx/v4/pgxpool"
"log"
"strconv"
"trikotwaschliste/logbuffer"
"trikotwaschliste/models"
)
func DbAdminMainpage(pool *pgxpool.Pool) gin.H {
var items []models.WashlistAdmin
var persons []models.Person
witems, err := pool.Query(context.Background(), "SELECT wa.id, wa.personid, ga.created_at\nFROM washlist wa\nINNER JOIN gamedata ga ON wa.gamedataid = ga.id ORDER BY ga.created_at ASC")
if err != nil {
log.Println(err.Error())
}
var item models.WashlistAdmin
for witems.Next() {
err = witems.Scan(&item.Id, &item.PersonId, &item.Date)
if err != nil {
log.Println(err.Error())
}
item.DateString = item.Date.Format(layoutDE)
items = append(items, item)
}
// get persons
wperson, err := pool.Query(context.Background(), "SELECT id, name FROM persons ORDER BY name ASC")
if err != nil {
log.Println(err.Error())
}
persons = append(persons, models.Person{
Id: -1,
Name: "-- Auswählen --",
})
var person models.Person
for wperson.Next() {
err = wperson.Scan(&person.Id, &person.Name)
if err != nil {
log.Println(err.Error())
}
persons = append(persons, person)
}
return gin.H{"items": items, "persons": persons}
}
func ChangeName(pool *pgxpool.Pool, id, personID string) bool {
sID, _ := strconv.Atoi(id)
if sID <= 0 {
return false
}
pool.Exec(context.Background(), "UPDATE washlist SET personid = $1 WHERE id = $2", id, personID)
return true
}
func Logs(queue *logbuffer.Queue) gin.H {
return gin.H{"items": queue.ToSlice()}
}