storageProduct := storage.NewPsqlProduct(storage.Pool())
serviceProduct := product.NewService(storageProduct)
if err := serviceProduct.Migrate(); err != nil {
log.Fatalf("product.Migrate: %v", err)
}
storageInvoiceHeader := storage.NewPsqlInvoiceHeader(storage.Pool())
serviceInvoiceHeader := invoiceheader.NewService(storageInvoiceHeader)
if err := serviceInvoiceHeader.Migrate(); err != nil {
log.Fatalf("invoiceHeader.Migrate: %v", err)
}
storageInvoiceItem := storage.NewPsqlInvoiceItem(storage.Pool())
serviceInvoiceItem := invoiceitem.NewService(storageInvoiceItem)
if err := serviceInvoiceItem.Migrate(); err != nil {
log.Fatalf("invoiceItem.Migrate: %v", err)
}
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)
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)
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)
}
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)
}
storageProduct := storage.NewPsqlProduct(storage.Pool())
serviceProduct := product.NewService(storageProduct)
err := serviceProduct.Delete(3)
if err != nil {
log.Fatalf("product.Delete: %v", err)
}
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)
}