diff --git a/.gitignore b/.gitignore index 42eca2e..091b832 100644 --- a/.gitignore +++ b/.gitignore @@ -36,4 +36,5 @@ CHANGELOG dump.rdb tmp .env -coverage.out \ No newline at end of file +coverage.out +/postgres/ diff --git a/app/controllers/base_controller.go b/app/controllers/base_controller.go index b64ded5..58613c3 100644 --- a/app/controllers/base_controller.go +++ b/app/controllers/base_controller.go @@ -185,6 +185,8 @@ func (server *Server) routeInit() { server.Router.HandleFunc("/products", server.Products).Methods("GET") server.Router.HandleFunc("/products/{slug}", server.GetProductByID).Methods("GET") + server.Router.HandleFunc("/section/{id}", server.SelectSection).Methods("GET") + staticFileDirectory := http.Dir("./assets/") staticFileHandler := http.StripPrefix("/public/", http.FileServer(staticFileDirectory)) server.Router.PathPrefix("/public/").Handler(staticFileHandler).Methods("GET") diff --git a/app/controllers/category_controller.go b/app/controllers/category_controller.go new file mode 100644 index 0000000..c1ed439 --- /dev/null +++ b/app/controllers/category_controller.go @@ -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, + }) +} diff --git a/app/controllers/home_controller.go b/app/controllers/home_controller.go index 7c43415..f9e9e98 100644 --- a/app/controllers/home_controller.go +++ b/app/controllers/home_controller.go @@ -8,7 +8,7 @@ import ( ) func (server *Server) Home(w http.ResponseWriter, r *http.Request) { - render := render.New(render.Options{ + renderer := render.New(render.Options{ Layout: "layout", Extensions: []string{".html", ".tmpl"}, }) @@ -21,7 +21,7 @@ func (server *Server) Home(w http.ResponseWriter, r *http.Request) { 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, "sectionen": sectionen, }) diff --git a/app/models/Section.go b/app/models/Section.go index f8f37a8..632ae33 100644 --- a/app/models/Section.go +++ b/app/models/Section.go @@ -1,6 +1,9 @@ package models -import "time" +import ( + "gorm.io/gorm" + "time" +) type Section struct { ID string @@ -9,3 +12,12 @@ type Section struct { UpdatedAt time.Time 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 +} diff --git a/database/fakers/category_faker.go b/database/fakers/category_faker.go new file mode 100644 index 0000000..3feefbc --- /dev/null +++ b/database/fakers/category_faker.go @@ -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 + +} diff --git a/database/seeders/seeder.go b/database/seeders/seeder.go index 7c26cfc..bbf1c78 100644 --- a/database/seeders/seeder.go +++ b/database/seeders/seeder.go @@ -14,6 +14,7 @@ func RegisterSeeders(db *gorm.DB) []Seeder { {Seeder: fakers.UserFaker(db)}, {Seeder: fakers.ProductFaker(db)}, {Seeder: fakers.SectionFaker(db)}, + {Seeder: fakers.CategoryFaker(db)}, } } diff --git a/templates/pages/home.html b/templates/pages/home.html index 8654933..a17fbff 100644 --- a/templates/pages/home.html +++ b/templates/pages/home.html @@ -8,7 +8,7 @@