Add/Remove A records with TTL

This commit is contained in:
Tevildo 2026-01-25 14:10:17 +00:00
parent 6531333f20
commit 676466fe66
No known key found for this signature in database
GPG key ID: 66457E7003498DAB

View file

@ -6,6 +6,7 @@ import (
"log" "log"
"net/http" "net/http"
"net/url" "net/url"
"strconv"
"strings" "strings"
"github.com/MartinWilkerson/cert-manager-webhook-nearlyfreespeech/auth" "github.com/MartinWilkerson/cert-manager-webhook-nearlyfreespeech/auth"
@ -35,6 +36,30 @@ func ClearTXTRecord(domain string, dnsName string, key string, login string, api
return send(login, apiKey, urlPath, body, requestUrl) return send(login, apiKey, urlPath, body, requestUrl)
} }
func SetARecord(domain string, subdomain string, data string, ttl uint32, login string, apiKey string) error {
urlPath := fmt.Sprintf("/dns/%s/addRR", domain)
requestUrl := fmt.Sprintf("%s%s", baseUrl, urlPath)
log.Printf("Request URL: %v", requestUrl)
values := url.Values{"name": {subdomain}, "type": {"A"}, "data": {data}, "ttl": {strconv.FormatUint(uint64(ttl), 10)}}
log.Printf("Body values: %v", values)
body := values.Encode()
return send(login, apiKey, urlPath, body, requestUrl)
}
func ClearARecord(domain string, subdomain string, data string, ttl uint32, login string, apiKey string) error {
urlPath := fmt.Sprintf("/dns/%s/removeRR", domain)
requestUrl := fmt.Sprintf("%s%s", baseUrl, urlPath)
log.Printf("Request URL: %v", requestUrl)
values := url.Values{"name": {subdomain}, "type": {"A"}, "data": {data}}
log.Printf("Body values: %v", values)
body := values.Encode()
return send(login, apiKey, urlPath, body, requestUrl)
}
func send(login string, apiKey string, urlPath string, body string, requestUrl string) error { func send(login string, apiKey string, urlPath string, body string, requestUrl string) error {
authHeader, err := auth.GetAuthHeader(login, apiKey, urlPath, body) authHeader, err := auth.GetAuthHeader(login, apiKey, urlPath, body)
if err != nil { if err != nil {