bottin-ag/webhandler/webhandler.go
2023-09-17 16:32:40 -04:00

56 lines
1.1 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)
}
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
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
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)
}