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