63 lines
1.2 KiB
Go
63 lines
1.2 KiB
Go
package router
|
|
|
|
import (
|
|
"encoding/json"
|
|
"github.com/bakyazi/gotemplresume/dto"
|
|
"github.com/bakyazi/gotemplresume/pages"
|
|
"github.com/labstack/echo/v4"
|
|
"os"
|
|
)
|
|
|
|
type Router struct {
|
|
}
|
|
|
|
func Init(e *echo.Echo) {
|
|
router := &Router{}
|
|
e.Static("/resources", "resources")
|
|
e.GET("/", router.Home)
|
|
e.GET("/skills", router.Skills)
|
|
e.GET("/resume", router.Resume)
|
|
}
|
|
|
|
func (r *Router) Home(c echo.Context) error {
|
|
return pages.Home().Render(c.Request().Context(), c.Response().Writer)
|
|
}
|
|
|
|
func (r *Router) Skills(c echo.Context) error {
|
|
|
|
resumeFile, err := os.Open("resources/resume.json")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer resumeFile.Close()
|
|
|
|
resumeDecoder := json.NewDecoder(resumeFile)
|
|
|
|
var resume dto.Resume
|
|
|
|
err = resumeDecoder.Decode(&resume)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return pages.Skills(resume).Render(c.Request().Context(), c.Response().Writer)
|
|
}
|
|
|
|
func (r *Router) Resume(c echo.Context) error {
|
|
|
|
resumeFile, err := os.Open("resources/resume.json")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer resumeFile.Close()
|
|
|
|
resumeDecoder := json.NewDecoder(resumeFile)
|
|
|
|
var resume dto.Resume
|
|
|
|
err = resumeDecoder.Decode(&resume)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return pages.Resume(resume).Render(c.Request().Context(), c.Response().Writer)
|
|
}
|