Hub-Api/repositories/license/command_repository.go

61 lines
1.2 KiB
Go

package license_repository
import (
"netina/models"
"gorm.io/gorm"
)
type LicenseCommand interface{
CreateLicense(o *models.License) error
UpdateLicense(id uint , o *models.License)(*models.License , error)
RemoveLicense(id uint)error
}
type LicenseCommandRepository struct{
DB *gorm.DB
}
func (r *LicenseCommandRepository) CreateLicense(License *models.License)error{
if err := r.DB.Create(&License).Error ; err != nil {
return err
}
return nil
}
func (r *LicenseCommandRepository) UpdateLicense(id uint , license *models.License)(*models.License , error){
var temp models.License
if err := r.DB.Where("is_removed = ?" , false).Where("license_id = ?" , id).First(&temp).Error ; err != nil {
return nil , err
}
temp.Modified_at = license.Modified_at
temp.Modified_by = license.Modified_by
temp.ExpireDate = license.ExpireDate
temp.Plan_id = license.Plan_id
temp.NumberOfRenewals = license.NumberOfRenewals
if err := r.DB.Save(&temp).Error; err != nil {
return nil , err
}
return &temp , nil
}
func (r *LicenseCommandRepository) RemoveLicense(id uint)error{
var license models.License
if err := r.DB.Where("license_id = ?" , id).Model(&license).Update("is_removed" , true).Error;err != nil {
return err
}
return nil
}