Categoriecontroller added
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -37,3 +37,4 @@ dump.rdb
|
|||||||
tmp
|
tmp
|
||||||
.env
|
.env
|
||||||
coverage.out
|
coverage.out
|
||||||
|
/postgres/
|
||||||
|
|||||||
@@ -185,6 +185,8 @@ func (server *Server) routeInit() {
|
|||||||
server.Router.HandleFunc("/products", server.Products).Methods("GET")
|
server.Router.HandleFunc("/products", server.Products).Methods("GET")
|
||||||
server.Router.HandleFunc("/products/{slug}", server.GetProductByID).Methods("GET")
|
server.Router.HandleFunc("/products/{slug}", server.GetProductByID).Methods("GET")
|
||||||
|
|
||||||
|
server.Router.HandleFunc("/section/{id}", server.SelectSection).Methods("GET")
|
||||||
|
|
||||||
staticFileDirectory := http.Dir("./assets/")
|
staticFileDirectory := http.Dir("./assets/")
|
||||||
staticFileHandler := http.StripPrefix("/public/", http.FileServer(staticFileDirectory))
|
staticFileHandler := http.StripPrefix("/public/", http.FileServer(staticFileDirectory))
|
||||||
server.Router.PathPrefix("/public/").Handler(staticFileHandler).Methods("GET")
|
server.Router.PathPrefix("/public/").Handler(staticFileHandler).Methods("GET")
|
||||||
|
|||||||
25
app/controllers/category_controller.go
Normal file
25
app/controllers/category_controller.go
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
package controllers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/gorilla/mux"
|
||||||
|
"github.com/unrolled/render"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (server *Server) Categories(w http.ResponseWriter, r *http.Request) {
|
||||||
|
renderer := render.New(render.Options{
|
||||||
|
Layout: "layout",
|
||||||
|
Extensions: []string{".html", ".tmpl"},
|
||||||
|
})
|
||||||
|
|
||||||
|
vars := mux.Vars(r)
|
||||||
|
|
||||||
|
if vars["id"] == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
_ = renderer.HTML(w, http.StatusOK, "home", map[string]interface{}{
|
||||||
|
//"user": user,
|
||||||
|
//"sectionen": sectionen,
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (server *Server) Home(w http.ResponseWriter, r *http.Request) {
|
func (server *Server) Home(w http.ResponseWriter, r *http.Request) {
|
||||||
render := render.New(render.Options{
|
renderer := render.New(render.Options{
|
||||||
Layout: "layout",
|
Layout: "layout",
|
||||||
Extensions: []string{".html", ".tmpl"},
|
Extensions: []string{".html", ".tmpl"},
|
||||||
})
|
})
|
||||||
@@ -21,7 +21,7 @@ func (server *Server) Home(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
user := server.CurrentUser(w, r)
|
user := server.CurrentUser(w, r)
|
||||||
|
|
||||||
_ = render.HTML(w, http.StatusOK, "home", map[string]interface{}{
|
_ = renderer.HTML(w, http.StatusOK, "home", map[string]interface{}{
|
||||||
"user": user,
|
"user": user,
|
||||||
"sectionen": sectionen,
|
"sectionen": sectionen,
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import "time"
|
import (
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
type Section struct {
|
type Section struct {
|
||||||
ID string
|
ID string
|
||||||
@@ -9,3 +12,12 @@ type Section struct {
|
|||||||
UpdatedAt time.Time
|
UpdatedAt time.Time
|
||||||
Categories []Category
|
Categories []Category
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetSection(db *gorm.DB) ([]Section, error) {
|
||||||
|
var sections []Section
|
||||||
|
err := db.Debug().Model(&Section{}).Order("created_at desc").Find(§ions).Error
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return sections, nil
|
||||||
|
}
|
||||||
|
|||||||
33
database/fakers/category_faker.go
Normal file
33
database/fakers/category_faker.go
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
package fakers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
"moretcgshop/app/models"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func CategoryFaker(db *gorm.DB) []*models.Category {
|
||||||
|
|
||||||
|
sections, _ := models.GetSection(db)
|
||||||
|
|
||||||
|
var res []*models.Category
|
||||||
|
for _, section := range sections {
|
||||||
|
var categories []string = []string{"Einzelkarten", "Booster", "Booster Displays"}
|
||||||
|
|
||||||
|
var temp *models.Category
|
||||||
|
|
||||||
|
for _, cat := range categories {
|
||||||
|
temp = &models.Category{
|
||||||
|
ID: uuid.New().String(),
|
||||||
|
Name: cat,
|
||||||
|
Section: section,
|
||||||
|
CreatedAt: time.Time{},
|
||||||
|
UpdatedAt: time.Time{},
|
||||||
|
}
|
||||||
|
res = append(res, temp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res
|
||||||
|
|
||||||
|
}
|
||||||
@@ -14,6 +14,7 @@ func RegisterSeeders(db *gorm.DB) []Seeder {
|
|||||||
{Seeder: fakers.UserFaker(db)},
|
{Seeder: fakers.UserFaker(db)},
|
||||||
{Seeder: fakers.ProductFaker(db)},
|
{Seeder: fakers.ProductFaker(db)},
|
||||||
{Seeder: fakers.SectionFaker(db)},
|
{Seeder: fakers.SectionFaker(db)},
|
||||||
|
{Seeder: fakers.CategoryFaker(db)},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
<h2>Spiele</h2>
|
<h2>Spiele</h2>
|
||||||
<ul class="menu-category">
|
<ul class="menu-category">
|
||||||
{{ range $i, $section := .sectionen }}
|
{{ range $i, $section := .sectionen }}
|
||||||
<li><a href="/section/{{ $i }}">{{ $section.Name }}</a></li>
|
<li><a href="/section/{{ $section.ID }}">{{ $section.Name }}</a></li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
Reference in New Issue
Block a user