Files
EdgeAPI/internal/db/models/dns_domain_model_ext.go

44 lines
980 B
Go
Raw Normal View History

2020-11-12 14:41:28 +08:00
package models
2020-11-14 21:28:07 +08:00
import (
"encoding/json"
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients"
"github.com/iwind/TeaGo/lists"
)
// 获取所有的线路
func (this *DNSDomain) DecodeRoutes() ([]string, error) {
if len(this.Routes) == 0 || this.Routes == "null" {
return nil, nil
}
result := []string{}
err := json.Unmarshal([]byte(this.Routes), &result)
if err != nil {
return nil, err
}
return result, nil
}
// 检查是否包含某个线路
func (this *DNSDomain) ContainsRoute(route string) (bool, error) {
routes, err := this.DecodeRoutes()
if err != nil {
return false, err
}
return lists.ContainsString(routes, route), nil
}
// 获取所有的记录
func (this *DNSDomain) DecodeRecords() ([]*dnsclients.Record, error) {
records := this.Records
if len(records) == 0 || records == "null" {
return nil, nil
}
result := []*dnsclients.Record{}
err := json.Unmarshal([]byte(records), &result)
if err != nil {
return nil, err
}
return result, nil
}