Migrate GORM to generics API, simplify user-domain relationship, refactor models
This commit is contained in:
parent
19ce2224b8
commit
560b40503a
9 changed files with 192 additions and 117 deletions
|
|
@ -12,7 +12,8 @@ package db
|
|||
// Returns a slice of DomainStats (includes counts) or an error.
|
||||
func (d *DB) GetAllDomains() ([]DomainStats, error) {
|
||||
var domains []VirtualDomain
|
||||
if err := d.Order("name ASC").Find(&domains).Error; err != nil {
|
||||
err := d.Order("name ASC").Find(&domains).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
|
@ -41,7 +42,8 @@ func (d *DB) GetAllDomains() ([]DomainStats, error) {
|
|||
// Returns the VirtualDomain or an error (including "record not found").
|
||||
func (d *DB) GetDomainByID(id uint) (*VirtualDomain, error) {
|
||||
var domain VirtualDomain
|
||||
if err := d.Where("id = ?", id).First(&domain).Error; err != nil {
|
||||
err := d.Where("id = ?", id).First(&domain).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &domain, nil
|
||||
|
|
@ -52,7 +54,8 @@ func (d *DB) GetDomainByID(id uint) (*VirtualDomain, error) {
|
|||
// Returns the VirtualDomain or an error (including "record not found").
|
||||
func (d *DB) GetDomainByName(name string) (*VirtualDomain, error) {
|
||||
var domain VirtualDomain
|
||||
if err := d.Where("name = ?", name).First(&domain).Error; err != nil {
|
||||
err := d.Where("name = ?", name).First(&domain).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &domain, nil
|
||||
|
|
@ -63,7 +66,8 @@ func (d *DB) GetDomainByName(name string) (*VirtualDomain, error) {
|
|||
// Returns the created VirtualDomain or an error.
|
||||
func (d *DB) CreateDomain(name string) (*VirtualDomain, error) {
|
||||
domain := VirtualDomain{Name: name}
|
||||
if err := d.Create(&domain).Error; err != nil {
|
||||
err := d.Create(&domain).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &domain, nil
|
||||
|
|
@ -77,13 +81,16 @@ func (d *DB) DeleteDomain(id uint) error {
|
|||
tx := d.Begin()
|
||||
defer func() { tx.Rollback() }()
|
||||
|
||||
if err := tx.Where("domain_id = ?", id).Delete(&VirtualUser{}).Error; err != nil {
|
||||
err := tx.Where("domain_id = ?", id).Delete(&VirtualUser{}).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := tx.Where("domain_id = ?", id).Delete(&VirtualAlias{}).Error; err != nil {
|
||||
err = tx.Where("domain_id = ?", id).Delete(&VirtualAlias{}).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := tx.Delete(&VirtualDomain{}, id).Error; err != nil {
|
||||
err = tx.Delete(&VirtualDomain{}, id).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue