Stabilized driver API

This commit is contained in:
2025-07-19 23:03:52 +03:00
parent 4a9e8f758e
commit bdb2539eba
4 changed files with 25 additions and 25 deletions

View File

@ -8,7 +8,7 @@ import (
"net/http" "net/http"
"sync" "sync"
dns "git.uoc.run.place/OxFF/dns-manager" dns "git.jolbec.icu/OxFF/dns-manager"
) )
const API_BASE_URL = "https://api.dnsexit.com/dns/" const API_BASE_URL = "https://api.dnsexit.com/dns/"
@ -34,7 +34,7 @@ type dnsexitDTO struct {
Delete *dns.Record `json:"delete,omitempty"` Delete *dns.Record `json:"delete,omitempty"`
} }
func (c *client) AddRecord(rec *dns.Record) (error, *dns.Response) { func (c *client) AddRecord(rec *dns.Record) (*dns.Response, error) {
c.Locker.Lock() c.Locker.Lock()
defer c.Locker.Unlock() defer c.Locker.Unlock()
@ -45,7 +45,7 @@ func (c *client) AddRecord(rec *dns.Record) (error, *dns.Response) {
}) })
if err != nil { if err != nil {
return err, nil return nil, err
} }
fmt.Println(string(request_body)) fmt.Println(string(request_body))
@ -57,19 +57,19 @@ func (c *client) AddRecord(rec *dns.Record) (error, *dns.Response) {
) )
if err != nil { if err != nil {
return err, nil return nil, err
} }
defer resp.Body.Close() defer resp.Body.Close()
body, err := io.ReadAll(resp.Body) body, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
return err, nil return nil, err
} }
return nil, &dns.Response{Message: string(body)} return &dns.Response{Message: string(body)}, nil
} }
func (c *client) DeleteRecord(rec *dns.Record) (error, *dns.Response) { func (c *client) DeleteRecord(rec *dns.Record) (*dns.Response, error) {
c.Locker.Lock() c.Locker.Lock()
defer c.Locker.Unlock() defer c.Locker.Unlock()
@ -79,7 +79,7 @@ func (c *client) DeleteRecord(rec *dns.Record) (error, *dns.Response) {
Delete: rec, Delete: rec,
}) })
if err != nil { if err != nil {
return err, nil return nil, err
} }
resp, err := http.Post( resp, err := http.Post(
@ -89,19 +89,19 @@ func (c *client) DeleteRecord(rec *dns.Record) (error, *dns.Response) {
) )
if err != nil { if err != nil {
return err, nil return nil, err
} }
defer resp.Body.Close() defer resp.Body.Close()
body, err := io.ReadAll(resp.Body) body, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
return err, nil return nil, err
} }
return nil, &dns.Response{Message: string(body)} return &dns.Response{Message: string(body)}, nil
} }
func (c *client) UpdateRecord(rec *dns.Record) (error, *dns.Response) { func (c *client) UpdateRecord(rec *dns.Record) (*dns.Response, error) {
c.Locker.Lock() c.Locker.Lock()
defer c.Locker.Unlock() defer c.Locker.Unlock()
@ -112,7 +112,7 @@ func (c *client) UpdateRecord(rec *dns.Record) (error, *dns.Response) {
}) })
if err != nil { if err != nil {
return err, nil return nil, err
} }
resp, err := http.Post( resp, err := http.Post(
@ -122,19 +122,19 @@ func (c *client) UpdateRecord(rec *dns.Record) (error, *dns.Response) {
) )
if err != nil { if err != nil {
return err, nil return nil, err
} }
defer resp.Body.Close() defer resp.Body.Close()
body, err := io.ReadAll(resp.Body) body, err := io.ReadAll(resp.Body)
if err != nil { if err != nil {
return err, nil return nil, err
} }
return nil, &dns.Response{Message: string(body)} return &dns.Response{Message: string(body)}, nil
} }
func (c *client) GetRecords() (error, *[]dns.Record) { func (c *client) GetRecords() (*[]dns.Record, error) {
var subdomains = NewRecordSet() var subdomains = NewRecordSet()
var wg sync.WaitGroup var wg sync.WaitGroup
@ -143,7 +143,7 @@ func (c *client) GetRecords() (error, *[]dns.Record) {
err, nameservers := c.getNSRecods() err, nameservers := c.getNSRecods()
if err != nil { if err != nil {
return err, nil return nil, err
} }
for _, ns := range *nameservers { for _, ns := range *nameservers {
@ -172,7 +172,7 @@ func (c *client) GetRecords() (error, *[]dns.Record) {
select { select {
case records, ok := <-result_chan: case records, ok := <-result_chan:
if !ok { if !ok {
return nil, subdomains.List() return subdomains.List(), nil
} }
for _, record := range records { for _, record := range records {
@ -184,7 +184,7 @@ func (c *client) GetRecords() (error, *[]dns.Record) {
} }
func (conf Config) New() dns.Actions { func (conf Config) New() (dns.Actions, error) {
var api_url string = API_BASE_URL var api_url string = API_BASE_URL
if len(conf.API_URL) > 5 { if len(conf.API_URL) > 5 {
@ -196,5 +196,5 @@ func (conf Config) New() dns.Actions {
API_KEY: conf.API_KEY, API_KEY: conf.API_KEY,
API_URL: api_url, API_URL: api_url,
Domain: conf.DOMAIN_NAME, Domain: conf.DOMAIN_NAME,
} }, nil
} }

4
go.mod
View File

@ -1,9 +1,9 @@
module git.uoc.run.place/OxFF/dnsexit-manager module git.jolbec.icu/OxFF/dnsexit-manager
go 1.23.4 go 1.23.4
require ( require (
git.uoc.run.place/OxFF/dns-manager v0.0.2 git.jolbec.icu/OxFF/dns-manager v0.0.5
github.com/miekg/dns v1.1.62 github.com/miekg/dns v1.1.62
) )

2
set.go
View File

@ -1,6 +1,6 @@
package dnsexit_manager package dnsexit_manager
import dns "git.uoc.run.place/OxFF/dns-manager" import dns "git.jolbec.icu/OxFF/dns-manager"
type RecordSet struct { type RecordSet struct {
records map[dns.Record]struct{} records map[dns.Record]struct{}

View File

@ -6,7 +6,7 @@ import (
"strconv" "strconv"
"strings" "strings"
dns "git.uoc.run.place/OxFF/dns-manager" dns "git.jolbec.icu/OxFF/dns-manager"
dns_req "github.com/miekg/dns" dns_req "github.com/miekg/dns"
) )