update or create order

This commit is contained in:
2025-03-24 01:04:01 +01:00
parent 2fce17d528
commit 22bf9d4390
7 changed files with 124 additions and 345 deletions

View File

@@ -1,19 +1,19 @@
package repositories
import(
"strconv"
import (
"gorm.io/gorm"
"strconv"
"example.com/gin/test/models"
)
)
type OrderRepository interface {
Create(models.Order) (models.Order, error)
Create(models.Order) (models.Order, error)
GetAll() ([]models.Order, error)
GetById(string) (models.Order, error)
GetAllBySession(string) ([]models.Order, error)
GetBySession(string) (models.Order, error)
Update(models.Order) (models.Order, error)
DeleteById(string) (error)
DeleteById(string) error
}
type GORMOrderRepository struct {
@@ -30,7 +30,7 @@ func (r *GORMOrderRepository) Create(order models.Order) (models.Order, error) {
//Omit the shopitem so it is not created again in db leading to unique constain fails
result := r.DB.Omit("CartItems").Create(&order)
if result.Error != nil {
return models.Order{}, result.Error
return models.Order{}, result.Error
}
return order, nil
@@ -60,10 +60,9 @@ func (t *GORMOrderRepository) GetById(id string) (models.Order, error) {
return order, nil
}
func (r *GORMOrderRepository) GetAllBySession(sessionId string) ([]models.Order, error) {
var orders []models.Order
result := r.DB.Preload("CartItems").Where("session_id = ?", sessionId).Find(&orders)
func (r *GORMOrderRepository) GetBySession(sessionId string) (models.Order, error) {
var orders models.Order
result := r.DB.Preload("CartItems").Where("session_id = ?", sessionId).First(&orders)
return orders, result.Error

View File

@@ -1,19 +1,19 @@
package repositories
import(
"os"
"gorm.io/gorm"
import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
"os"
"example.com/gin/test/models"
)
)
var(
var (
ShopItems ShopItemRepository
Users UserRepository
Tags TagRepository
Users UserRepository
Tags TagRepository
CartItems CartItemRepository
Orders OrderRepository
Orders OrderRepository
)
func InitRepositories() {
@@ -22,12 +22,12 @@ func InitRepositories() {
panic("failed to connect to database")
}
err = db.AutoMigrate(&models.ShopItem{},
&models.ItemVariant{},
&models.User{},
&models.Tag{},
&models.CartItem{},
&models.Order{})
err = db.AutoMigrate(&models.ShopItem{},
&models.ItemVariant{},
&models.User{},
&models.Tag{},
&models.CartItem{},
&models.Order{})
if err != nil {
panic("failed to migrate database")