Hub-Api/repositories/store/command_repository.go

78 lines
1.7 KiB
Go

package store_repository
import (
"netina/models"
"gorm.io/gorm"
)
type StoreCommand interface{
CreateStore(o *models.Store) error
UpdateStore(id uint , o *models.Store)(*models.Store , error)
RemoveStore(id uint)error
}
type StoreCommandRepository struct{
DB *gorm.DB
}
func (r *StoreCommandRepository) CreateStore(store *models.Store)error{
if err := r.DB.Create(&store).Error ; err != nil {
return err
}
return nil
}
func (r *StoreCommandRepository) GetStore(id uint)(*models.Store , error){
var store models.Store
if err := r.DB.Where("is_removed = ?" , false).Where("store_id = ?" , id).First(&store).Error; err != nil {
return nil , err
}
return &store , nil
}
func (r *StoreCommandRepository) GetStores(id uint)([]models.Store , error){
var store []models.Store
if err := r.DB.Where("is_removed = ?" , false).Where("owner_id = ?" , id).Find(&store).Error; err != nil {
return nil , err
}
return store , nil
}
func (r *StoreCommandRepository) UpdateStore(id uint , store *models.Store)(*models.Store , error){
var temp models.Store
if err := r.DB.Where("is_removed = ?" , false).Where("store_id = ?" , id).First(&temp).Error ; err != nil {
return nil , err
}
temp.Address = store.Address
temp.AdminPanelAddress = store.AdminPanelAddress
temp.ApiAddress = store.ApiAddress
temp.Modified_at = store.Modified_at
temp.Modified_by = store.Modified_by
temp.StorageAddress = store.StorageAddress
temp.Name = store.Name
temp.WebAddress = store.WebAddress
if err := r.DB.Save(&temp).Error; err != nil {
return nil , err
}
return &temp , nil
}
func (r *StoreCommandRepository) RemoveStore(id uint)error{
if err := r.DB.Where("store_id = ?" , id).Error;err != nil {
return err
}
return nil
}