实现完整的集群、域名同步

This commit is contained in:
刘祥超
2020-11-14 21:28:07 +08:00
parent 9f67a584b4
commit 2da1ab384c
12 changed files with 507 additions and 172 deletions

View File

@@ -1 +1,43 @@
package models
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
}