108 lines
2.3 KiB
Go
108 lines
2.3 KiB
Go
// Package webhandler provides handlers for the web app routes
|
|
package webhandler
|
|
|
|
import (
|
|
"log"
|
|
"net/http"
|
|
|
|
"git.agecem.com/agecem/bottin-ag/apiclient"
|
|
"git.agecem.com/agecem/bottin-ag/webresponse"
|
|
"github.com/labstack/echo/v4"
|
|
)
|
|
|
|
func DeclareRoutes(e *echo.Echo, h *WebHandler) {
|
|
e.GET("/", h.IndexGET)
|
|
e.POST("/scan/", h.ScanPOST)
|
|
e.GET("/decompte/", h.DecompteGET)
|
|
e.GET("/nothing/", h.NothingGET)
|
|
}
|
|
|
|
type WebHandler struct {
|
|
APIClient *apiclient.APIClient
|
|
}
|
|
|
|
func New(apiClient *apiclient.APIClient) WebHandler {
|
|
return WebHandler{
|
|
APIClient: apiClient,
|
|
}
|
|
}
|
|
|
|
func (w *WebHandler) IndexGET(c echo.Context) error {
|
|
var r webresponse.IndexGET
|
|
|
|
r.Message = "foo"
|
|
r.StatusCode = http.StatusOK
|
|
|
|
/*
|
|
decompteResponse, err := w.APIClient.GetDecompte()
|
|
if err != nil {
|
|
r.Error = err.Error()
|
|
r.Message = "Impossible d'obtenir le décompte"
|
|
r.StatusCode = http.StatusInternalServerError
|
|
|
|
return c.Render(r.StatusCode, "index-html", r)
|
|
}
|
|
|
|
r.Data.Decompte = decompteResponse.Data.Decompte
|
|
*/
|
|
|
|
return c.Render(r.StatusCode, "index-html", r)
|
|
}
|
|
|
|
func (w *WebHandler) ScanPOST(c echo.Context) error {
|
|
var r webresponse.ScanPOST
|
|
|
|
membreID := c.FormValue("membre_id")
|
|
|
|
//TODO
|
|
log.Println("membreID:", membreID)
|
|
|
|
r.StatusCode = http.StatusOK
|
|
|
|
/*
|
|
decompteResponse, err := w.APIClient.GetDecompte()
|
|
if err != nil {
|
|
r.Error = err.Error()
|
|
r.Message = "Impossible d'obtenir le décompte"
|
|
r.StatusCode = http.StatusInternalServerError
|
|
|
|
return c.Render(r.StatusCode, "index-html", r)
|
|
}
|
|
|
|
r.Data.Decompte = decompteResponse.Data.Decompte
|
|
*/
|
|
|
|
scanResponse, err := w.APIClient.Scan(membreID)
|
|
r.Error = scanResponse.Error
|
|
if err != nil {
|
|
r.Error = err.Error()
|
|
}
|
|
|
|
r.Message = scanResponse.Message
|
|
|
|
return c.Render(r.StatusCode, "scan-html", r)
|
|
}
|
|
|
|
func (w *WebHandler) DecompteGET(c echo.Context) error {
|
|
var r webresponse.DecompteGET
|
|
|
|
decompteResponse, err := w.APIClient.GetDecompte()
|
|
if err != nil {
|
|
r.Error = err.Error()
|
|
r.Message = "Impossible d'obtenir le décompte"
|
|
r.StatusCode = http.StatusInternalServerError
|
|
|
|
return c.Render(r.StatusCode, "decompte-html", r)
|
|
}
|
|
|
|
r.Data.Decompte = decompteResponse.Data.Decompte
|
|
|
|
r.StatusCode = http.StatusOK
|
|
r.Message = "ok"
|
|
|
|
return c.Render(r.StatusCode, "decompte-html", r)
|
|
}
|
|
|
|
func (w *WebHandler) NothingGET(c echo.Context) error {
|
|
return c.JSON(http.StatusOK, nil)
|
|
}
|