Rename db files to match model names
- users.go -> virtual_users.go - domains.go -> virtual_domains.go - aliases.go -> virtual_aliases.go
This commit is contained in:
parent
d5880d5096
commit
0e6fad65e2
3 changed files with 0 additions and 0 deletions
68
backend/internal/db/virtual_domains.go
Normal file
68
backend/internal/db/virtual_domains.go
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
package db
|
||||
|
||||
func (d *DB) GetAllDomains() ([]DomainStats, error) {
|
||||
var domains []VirtualDomain
|
||||
if err := d.Order("name ASC").Find(&domains).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
stats := make([]DomainStats, len(domains))
|
||||
for i, dom := range domains {
|
||||
var userCount, aliasCount int64
|
||||
d.Model(&VirtualUser{}).Where("domain_id = ?", dom.ID).Count(&userCount)
|
||||
d.Model(&VirtualAlias{}).Where("domain_id = ?", dom.ID).Count(&aliasCount)
|
||||
|
||||
stats[i] = DomainStats{
|
||||
ID: dom.ID,
|
||||
Name: dom.Name,
|
||||
UserCount: userCount,
|
||||
AliasCount: aliasCount,
|
||||
}
|
||||
}
|
||||
|
||||
if stats == nil {
|
||||
stats = []DomainStats{}
|
||||
}
|
||||
return stats, nil
|
||||
}
|
||||
|
||||
func (d *DB) GetDomainByID(id uint) (*VirtualDomain, error) {
|
||||
var domain VirtualDomain
|
||||
if err := d.Where("id = ?", id).First(&domain).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &domain, nil
|
||||
}
|
||||
|
||||
func (d *DB) GetDomainByName(name string) (*VirtualDomain, error) {
|
||||
var domain VirtualDomain
|
||||
if err := d.Where("name = ?", name).First(&domain).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &domain, nil
|
||||
}
|
||||
|
||||
func (d *DB) CreateDomain(name string) (*VirtualDomain, error) {
|
||||
domain := VirtualDomain{Name: name}
|
||||
if err := d.Create(&domain).Error; err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &domain, nil
|
||||
}
|
||||
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
if err := tx.Where("domain_id = ?", id).Delete(&VirtualAlias{}).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
if err := tx.Delete(&VirtualDomain{}, id).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return tx.Commit().Error
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue