42 lines
927 B
Go
42 lines
927 B
Go
package repositories
|
|
|
|
import (
|
|
"git.secnex.io/secnex/gogwapi/models"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type DomainRepository interface {
|
|
Create(domain *models.Domain) error
|
|
Get(id string) (*models.Domain, error)
|
|
Update(domain *models.Domain) error
|
|
Delete(id string) error
|
|
}
|
|
|
|
type domainRepository struct {
|
|
db *gorm.DB
|
|
}
|
|
|
|
func NewDomainRepository(db *gorm.DB) DomainRepository {
|
|
return &domainRepository{db: db}
|
|
}
|
|
|
|
func (r *domainRepository) Create(domain *models.Domain) error {
|
|
return r.db.Create(domain).Error
|
|
}
|
|
|
|
func (r *domainRepository) Get(name string) (*models.Domain, error) {
|
|
var domain models.Domain
|
|
if err := r.db.Where("name = ?", name).First(&domain).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return &domain, nil
|
|
}
|
|
|
|
func (r *domainRepository) Update(domain *models.Domain) error {
|
|
return r.db.Save(domain).Error
|
|
}
|
|
|
|
func (r *domainRepository) Delete(id string) error {
|
|
return r.db.Delete(&models.Domain{}, id).Error
|
|
}
|