Files
pokemongotemplates/internal/infrastructure/app/SiteHandlers.go
T

56 lines
1.4 KiB
Go

package app
import (
"fmt"
"net/http"
"net/url"
"github.com/dadobos/pokemongotemplates/internal/domain/pokemongotemplates"
"github.com/gin-gonic/gin"
)
func (s *ApplicationServer) pageHandler() func(*gin.Context) {
data, err := pokemongotemplates.GetPokemons(pokemongotemplates.AllPokemonsURL)
if err != nil {
fmt.Println(err.Error())
}
return func(c *gin.Context) {
c.HTML(http.StatusOK, "views/Pokemons.gohtml", pokemongotemplates.PageData{
NavigationLinks: pokemongotemplates.NavigationLinks,
Data: data,
})
}
}
func (s *ApplicationServer) paginationPageHandler() func(*gin.Context) {
return func(c *gin.Context) {
requestURL := pokemongotemplates.PaginationURL
if newURL := c.Request.URL.Query(); newURL.Has("slug") {
requestURL = newURL["slug"][0]
}
data, err := pokemongotemplates.GetPokemons(requestURL)
if err != nil {
fmt.Println(err.Error())
}
c.HTML(http.StatusOK, "views/PaginationPokemons.gohtml", pokemongotemplates.PageData{
NavigationLinks: pokemongotemplates.NavigationLinks,
Data: data,
})
}
}
func (s *ApplicationServer) slugSendPaginationRequestHandler() func(*gin.Context) {
return func(c *gin.Context) {
var requestData pokemongotemplates.NextURL
if err := c.Bind(&requestData); err != nil {
c.Redirect(http.StatusFound, "/")
return
}
c.Redirect(http.StatusFound, fmt.Sprintf("/pagination/?slug=%s", url.QueryEscape(requestData.URL)))
}
}