github.com/miguelgrubin/gin-boilerplate@v0.0.0-20231208120009-f8f00c6d4138/pkg/petshop/main.go (about) 1 // Package petshop provides a module of petshop. 2 package petshop 3 4 import ( 5 "log" 6 7 "github.com/gin-gonic/gin" 8 "github.com/miguelgrubin/gin-boilerplate/pkg/petshop/application" 9 "github.com/miguelgrubin/gin-boilerplate/pkg/petshop/infrastructure/server" 10 "github.com/miguelgrubin/gin-boilerplate/pkg/petshop/infrastructure/storage" 11 "gorm.io/gorm" 12 ) 13 14 func NewPetShopServer(db *gorm.DB, r *gin.RouterGroup) { 15 petRepository := storage.NewPetRepository(db) 16 petUseCases := application.NewPetUseCases(petRepository) 17 server.NewPetRouterGroup(r, &petUseCases) 18 } 19 20 func NewPetShopMigrator(db *gorm.DB) { 21 err := storage.Automigrate(db) 22 23 if err != nil { 24 log.Print(err) 25 } 26 } 27 28 func NewPetShopSeeder(db *gorm.DB) { 29 _, err := storage.SeedPets(db) 30 31 if err != nil { 32 log.Print(err) 33 } 34 }