summaryrefslogtreecommitdiff
path: root/database/dns.go
diff options
context:
space:
mode:
authorsimponic <simponic@hatecomputers.club>2024-03-28 12:57:35 -0400
committersimponic <simponic@hatecomputers.club>2024-03-28 12:57:35 -0400
commitb2fc689bdcff28bf75c0128db19ba4730d726b4f (patch)
tree37c16d95183242516ba667aa5f441539d152c279 /database/dns.go
parent75ba836d6072235fc7a71659f8630ab3c1b210ad (diff)
downloadhatecomputers.club-b2fc689bdcff28bf75c0128db19ba4730d726b4f.tar.gz
hatecomputers.club-b2fc689bdcff28bf75c0128db19ba4730d726b4f.zip
dns api (#1)
Co-authored-by: Elizabeth Hunt <elizabeth.hunt@simponic.xyz> Reviewed-on: https://git.hatecomputers.club/hatecomputers/hatecomputers.club/pulls/1
Diffstat (limited to 'database/dns.go')
-rw-r--r--database/dns.go48
1 files changed, 41 insertions, 7 deletions
diff --git a/database/dns.go b/database/dns.go
index 17487b7..bb5c1ef 100644
--- a/database/dns.go
+++ b/database/dns.go
@@ -8,13 +8,13 @@ import (
)
type DNSRecord struct {
- ID string
- UserID string
- Name string
- Type string
- Content string
- TTL int
- CreatedAt time.Time
+ ID string `json:"id"`
+ UserID string `json:"user_id"`
+ Name string `json:"name"`
+ Type string `json:"type"`
+ Content string `json:"content"`
+ TTL int `json:"ttl"`
+ CreatedAt time.Time `json:"created_at"`
}
func GetUserDNSRecords(db *sql.DB, userID string) ([]DNSRecord, error) {
@@ -38,3 +38,37 @@ func GetUserDNSRecords(db *sql.DB, userID string) ([]DNSRecord, error) {
return records, nil
}
+
+func SaveDNSRecord(db *sql.DB, record *DNSRecord) (*DNSRecord, error) {
+ log.Println("saving dns record", record)
+
+ record.CreatedAt = time.Now()
+ _, err := db.Exec("INSERT OR REPLACE INTO dns_records (id, user_id, name, type, content, ttl, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)", record.ID, record.UserID, record.Name, record.Type, record.Content, record.TTL, record.CreatedAt)
+
+ if err != nil {
+ return nil, err
+ }
+ return record, nil
+}
+
+func GetDNSRecord(db *sql.DB, recordID string) (*DNSRecord, error) {
+ log.Println("getting dns record", recordID)
+
+ row := db.QueryRow("SELECT * FROM dns_records WHERE id = ?", recordID)
+ var record DNSRecord
+ err := row.Scan(&record.ID, &record.UserID, &record.Name, &record.Type, &record.Content, &record.TTL, &record.CreatedAt)
+ if err != nil {
+ return nil, err
+ }
+ return &record, nil
+}
+
+func DeleteDNSRecord(db *sql.DB, recordID string) error {
+ log.Println("deleting dns record", recordID)
+
+ _, err := db.Exec("DELETE FROM dns_records WHERE id = ?", recordID)
+ if err != nil {
+ return err
+ }
+ return nil
+}