package db func (d *DB) GetAllAliases() ([]AliasWithDomain, error) { var aliases []Alias if err := d.Preload("Domain").Find(&aliases).Error; err != nil { return nil, err } result := make([]AliasWithDomain, len(aliases)) for i, a := range aliases { result[i] = AliasWithDomain{ Alias: a, DomainName: "", } if a.Domain != nil { result[i].DomainName = a.Domain.Name } } if result == nil { result = []AliasWithDomain{} } return result, nil } func (d *DB) GetAliasesByDomain(domainID uint) ([]Alias, error) { var aliases []Alias if err := d.Where("domain_id = ?", domainID).Find(&aliases).Error; err != nil { return nil, err } if aliases == nil { aliases = []Alias{} } return aliases, nil } func (d *DB) GetAliasByID(id uint) (*Alias, error) { var alias Alias if err := d.Preload("Domain").First(&alias, id).Error; err != nil { return nil, err } return &alias, nil } func (d *DB) GetAliasBySource(source string) (*Alias, error) { var alias Alias if err := d.Where("source = ?", source).First(&alias).Error; err != nil { return nil, err } return &alias, nil } func (d *DB) CreateAlias(source, destination string) (*Alias, error) { alias := Alias{ Source: source, Destination: destination, } if err := d.Create(&alias).Error; err != nil { return nil, err } return &alias, nil } func (d *DB) CreateAliasInDomain(source, destination string, domainID uint) (*Alias, error) { alias := Alias{ DomainID: domainID, Source: source, Destination: destination, } if err := d.Create(&alias).Error; err != nil { return nil, err } return &alias, nil } func (d *DB) DeleteAlias(id uint) error { return d.Delete(&Alias{}, id).Error }