69 lines
1.5 KiB
Go
69 lines
1.5 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) 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.Owner_id = store.Owner_id
|
|
temp.Address = store.Address
|
|
temp.PhoneNumber = store.PhoneNumber
|
|
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
|
|
temp.StorageApiKey = store.StorageApiKey
|
|
temp.StorageSecret = store.StorageSecret
|
|
temp.StorageName = store.StorageName
|
|
|
|
|
|
|
|
if err := r.DB.Save(&temp).Error; err != nil {
|
|
return nil , err
|
|
}
|
|
|
|
return &temp , nil
|
|
|
|
}
|
|
|
|
|
|
func (r *StoreCommandRepository) RemoveStore(id uint)error{
|
|
var store models.Store
|
|
if err := r.DB.Where("store_id = ?" , id).Model(&store).Update("is_removed" , true).Error;err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
} |