Skip to content

AJRDRGZ/go-db

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Migrar tabla de productos

storageProduct := storage.NewPsqlProduct(storage.Pool())
serviceProduct := product.NewService(storageProduct)

if err := serviceProduct.Migrate(); err != nil {
	log.Fatalf("product.Migrate: %v", err)
}

Migrar tabla de invoiceheader

storageInvoiceHeader := storage.NewPsqlInvoiceHeader(storage.Pool())
serviceInvoiceHeader := invoiceheader.NewService(storageInvoiceHeader)

if err := serviceInvoiceHeader.Migrate(); err != nil {
	log.Fatalf("invoiceHeader.Migrate: %v", err)
}

Migrar tabla de invoiceitem

storageInvoiceItem := storage.NewPsqlInvoiceItem(storage.Pool())
serviceInvoiceItem := invoiceitem.NewService(storageInvoiceItem)

if err := serviceInvoiceItem.Migrate(); err != nil {
	log.Fatalf("invoiceItem.Migrate: %v", err)
}

Crear un producto

storageProduct := storage.NewPsqlProduct(storage.Pool())
serviceProduct := product.NewService(storageProduct)

m := &product.Model{
	Name:         "Curso de db con Go",
	Price:        70,
	Observations: "on fire",
}
if err := serviceProduct.Create(m); err != nil {
	log.Fatalf("product.Create: %v", err)
}

fmt.Printf("%+v\n", m)

Consultar Productos

storageProduct := storage.NewPsqlProduct(storage.Pool())
serviceProduct := product.NewService(storageProduct)

ms, err := serviceProduct.GetAll()
if err != nil {
	log.Fatalf("product.GetAll: %v", err)
}

fmt.Println(ms)

Consultar un solo producto

storageProduct := storage.NewPsqlProduct(storage.Pool())
serviceProduct := product.NewService(storageProduct)

m, err := serviceProduct.GetByID(3)
switch {
case errors.Is(err, sql.ErrNoRows):
	fmt.Println("no hay un producto con este id")
case err != nil:
	log.Fatalf("product.GetByID: %v", err)
default:
	fmt.Println(m)
}

Actualizar un producto

storageProduct := storage.NewPsqlProduct(storage.Pool())
serviceProduct := product.NewService(storageProduct)

m := &product.Model{
	ID:    90,
	Name:  "Curso testing",
	Price: 150,
}
err := serviceProduct.Update(m)
if err != nil {
	log.Fatalf("product.Update: %v", err)
}

Eliminar un producto

storageProduct := storage.NewPsqlProduct(storage.Pool())
serviceProduct := product.NewService(storageProduct)

err := serviceProduct.Delete(3)
if err != nil {
	log.Fatalf("product.Delete: %v", err)
}

Crear Factura (tx)

storageHeader := storage.NewPsqlInvoiceHeader(storage.Pool())
storageItems := storage.NewPsqlInvoiceItem(storage.Pool())
storageInvoice := storage.NewPsqlInvoice(
	storage.Pool(),
	storageHeader,
	storageItems,
)

m := &invoice.Model{
	Header: &invoiceheader.Model{
		Client: "Alexys",
	},
	Items: invoiceitem.Models{
		&invoiceitem.Model{ProductID: 4},
	},
}

serviceInvoice := invoice.NewService(storageInvoice)
if err := serviceInvoice.Create(m); err != nil {
	log.Fatalf("invoice.Create: %v", err)
}

About

Repositorio del curso Base de datos con GO

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages