summaryrefslogtreecommitdiff
path: root/database
diff options
context:
space:
mode:
Diffstat (limited to 'database')
-rw-r--r--database/dns.go23
-rw-r--r--database/users.go12
2 files changed, 34 insertions, 1 deletions
diff --git a/database/dns.go b/database/dns.go
index fc01347..7851ab4 100644
--- a/database/dns.go
+++ b/database/dns.go
@@ -9,6 +9,12 @@ import (
"time"
)
+type DomainOwner struct {
+ UserID string `json:"user_id"`
+ Domain string `json:"domain"`
+ CreatedAt time.Time `json:"created_at"`
+}
+
type DNSRecord struct {
ID string `json:"id"`
UserID string `json:"user_id"`
@@ -57,7 +63,10 @@ func GetUserDNSRecords(db *sql.DB, userID string) ([]DNSRecord, error) {
func SaveDNSRecord(db *sql.DB, record *DNSRecord) (*DNSRecord, error) {
log.Println("saving dns record", record.ID)
- record.CreatedAt = time.Now()
+ if (record.CreatedAt == time.Time{}) {
+ record.CreatedAt = time.Now()
+ }
+
_, err := db.Exec("INSERT OR REPLACE INTO dns_records (id, user_id, name, type, content, ttl, internal, created_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", record.ID, record.UserID, record.Name, record.Type, record.Content, record.TTL, record.Internal, record.CreatedAt)
if err != nil {
@@ -137,3 +146,15 @@ func FindDNSRecords(dbConn *sql.DB, name string, qtype string) ([]DNSRecord, err
return records, nil
}
+
+func SaveDomainOwner(db *sql.DB, domainOwner *DomainOwner) (*DomainOwner, error) {
+ log.Println("saving domain owner", domainOwner.Domain)
+
+ domainOwner.CreatedAt = time.Now()
+ _, err := db.Exec("INSERT OR REPLACE INTO domain_owners (user_id, domain, created_at) VALUES (?, ?, ?)", domainOwner.UserID, domainOwner.Domain, domainOwner.CreatedAt)
+
+ if err != nil {
+ return nil, err
+ }
+ return domainOwner, nil
+}
diff --git a/database/users.go b/database/users.go
index 5cebb8f..6f9456e 100644
--- a/database/users.go
+++ b/database/users.go
@@ -111,6 +111,18 @@ func DeleteSession(dbConn *sql.DB, sessionId string) error {
return nil
}
+func SaveSession(dbConn *sql.DB, session *UserSession) (*UserSession, error) {
+ log.Println("saving session", session.ID)
+
+ _, err := dbConn.Exec(`INSERT OR REPLACE INTO user_sessions (id, user_id, expire_at) VALUES (?, ?, ?);`, session.ID, session.UserID, session.ExpireAt)
+ if err != nil {
+ log.Println(err)
+ return nil, err
+ }
+
+ return session, nil
+}
+
func RefreshSession(dbConn *sql.DB, sessionId string) (*UserSession, error) {
newExpireAt := time.Now().Add(ExpiryDuration)