mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-05 01:20:25 +08:00
48 lines
1022 B
Go
48 lines
1022 B
Go
package models
|
|
|
|
import (
|
|
"encoding/json"
|
|
"github.com/TeaOSLab/EdgeAPI/internal/dnsclients"
|
|
)
|
|
|
|
// 获取所有的线路
|
|
func (this *DNSDomain) DecodeRoutes() ([]*dnsclients.Route, error) {
|
|
if len(this.Routes) == 0 || this.Routes == "null" {
|
|
return nil, nil
|
|
}
|
|
result := []*dnsclients.Route{}
|
|
err := json.Unmarshal([]byte(this.Routes), &result)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return result, nil
|
|
}
|
|
|
|
// 检查是否包含某个线路
|
|
func (this *DNSDomain) ContainsRouteCode(route string) (bool, error) {
|
|
routes, err := this.DecodeRoutes()
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
for _, r := range routes {
|
|
if r.Code == route {
|
|
return true, nil
|
|
}
|
|
}
|
|
return false, 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
|
|
}
|