generate pie chart templ

This commit is contained in:
sindhu
2024-04-30 13:51:19 +07:00
parent 976753fc8e
commit ae59d63940
12 changed files with 723 additions and 8 deletions

View File

@@ -0,0 +1,68 @@
package handlers
import (
"crypto/md5"
"encoding/hex"
"encoding/json"
"fmt"
"strings"
"time"
"github.com/a-h/templ"
"github.com/emarifer/go-templ-project-structure/services"
"github.com/emarifer/go-templ-project-structure/views/piechart"
"github.com/emarifer/go-templ-project-structure/views/xsample"
"github.com/labstack/echo/v4"
)
type PiechartService interface {
GetPieChart(string, int) (string, services.Piechart, error)
}
func NewPiechartHandler(us PiechartService) *PiechartHandler {
return &PiechartHandler{
PiechartService: us,
}
}
type PiechartHandler struct {
PiechartService PiechartService
}
func (uh *PiechartHandler) Hello(c echo.Context) error {
helo := xsample.ShowHelo("Hello World", xsample.HelloWorld("Hello World"), xsample.CssHelo(), xsample.JsHelo())
return uh.View(c, helo)
}
func (uh *PiechartHandler) ShowPieChart(c echo.Context) error {
// helo := piechart.MainPieChart("main_001")
var code = "mcu006"
title, udata, err := uh.PiechartService.GetPieChart(code, 1)
if err != nil {
// fmt.Println(err)
return err
}
jsonData, err := json.MarshalIndent(udata, "", " ")
if err != nil {
fmt.Println("Error:", err)
return err
}
// randomID := md5.Sum([]byte(title + time.Now().String()))
seed := title + time.Now().String()
hash := md5.Sum([]byte(seed))
randomID := hex.EncodeToString(hash[:])
randomID = strings.ReplaceAll(randomID, "-", "")
// randomID := hex.EncodeToString(md5.Sum([]byte(title + time.Now().String())))
helo := piechart.ShowPieChart("Chart", piechart.MainPieChart(randomID, string(jsonData)), piechart.CssPieChart(), piechart.JsPieChart())
return uh.View(c, helo)
}
func (uh *PiechartHandler) View(c echo.Context, cmp templ.Component) error {
c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML)
return cmp.Render(c.Request().Context(), c.Response().Writer)
}

View File

@@ -5,7 +5,7 @@ import (
"github.com/a-h/templ"
"github.com/emarifer/go-templ-project-structure/services"
landingpage "github.com/emarifer/go-templ-project-structure/views/LandingPage"
landingpage "github.com/emarifer/go-templ-project-structure/views/landingpage"
"github.com/labstack/echo/v4"
)

View File

@@ -19,6 +19,10 @@ func SetupRoutesLandingPage(app *echo.Echo, h *LandingPageHandler) {
Lp := app.Group("/landing_page")
Lp.GET("/", h.ShowLandingPage)
}
func SetupRoutesPieChart(app *echo.Echo, h *PiechartHandler) {
Lp := app.Group("/pie_chart")
Lp.GET("/", h.ShowPieChart)
}
func SetupRoutesProject(app *echo.Echo) {
}