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  }