mirror of
https://github.com/joohoi/acme-dns.git
synced 2024-12-22 17:33:44 +07:00
Refactor: Use more specific type in argument of DB.Update (#162)
The DB.Update function takes a type of ACMETxt. However, the function only requires the Value and Subdomain fields. Refactor the function such that it takes ACMETxtPost instead of the full ACMETxt record. This will simplify extraction of txt-record related logic from the db code.
This commit is contained in:
parent
af5d2561d2
commit
c13035a344
2
api.go
2
api.go
@ -91,7 +91,7 @@ func webUpdatePost(w http.ResponseWriter, r *http.Request, _ httprouter.Params)
|
|||||||
updStatus = http.StatusBadRequest
|
updStatus = http.StatusBadRequest
|
||||||
upd = jsonError("bad_txt")
|
upd = jsonError("bad_txt")
|
||||||
} else if validSubdomain(a.Subdomain) && validTXT(a.Value) {
|
} else if validSubdomain(a.Subdomain) && validTXT(a.Value) {
|
||||||
err := DB.Update(a)
|
err := DB.Update(a.ACMETxtPost)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.WithFields(log.Fields{"error": err.Error()}).Debug("Error while trying to update record")
|
log.WithFields(log.Fields{"error": err.Error()}).Debug("Error while trying to update record")
|
||||||
updStatus = http.StatusInternalServerError
|
updStatus = http.StatusInternalServerError
|
||||||
|
2
db.go
2
db.go
@ -281,7 +281,7 @@ func (d *acmedb) GetTXTForDomain(domain string) ([]string, error) {
|
|||||||
return txts, nil
|
return txts, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *acmedb) Update(a ACMETxt) error {
|
func (d *acmedb) Update(a ACMETxtPost) error {
|
||||||
d.Lock()
|
d.Lock()
|
||||||
defer d.Unlock()
|
defer d.Unlock()
|
||||||
var err error
|
var err error
|
||||||
|
@ -161,7 +161,7 @@ func TestQueryExecErrors(t *testing.T) {
|
|||||||
t.Errorf("Expected error from exec in Register, but got none")
|
t.Errorf("Expected error from exec in Register, but got none")
|
||||||
}
|
}
|
||||||
reg.Value = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
reg.Value = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
||||||
err = DB.Update(reg)
|
err = DB.Update(reg.ACMETxtPost)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Errorf("Expected error from exec in Update, but got none")
|
t.Errorf("Expected error from exec in Update, but got none")
|
||||||
}
|
}
|
||||||
@ -238,10 +238,10 @@ func TestGetTXTForDomain(t *testing.T) {
|
|||||||
txtval2 := "___validation_token_received_YEAH_the_ca___"
|
txtval2 := "___validation_token_received_YEAH_the_ca___"
|
||||||
|
|
||||||
reg.Value = txtval1
|
reg.Value = txtval1
|
||||||
_ = DB.Update(reg)
|
_ = DB.Update(reg.ACMETxtPost)
|
||||||
|
|
||||||
reg.Value = txtval2
|
reg.Value = txtval2
|
||||||
_ = DB.Update(reg)
|
_ = DB.Update(reg.ACMETxtPost)
|
||||||
|
|
||||||
regDomainSlice, err := DB.GetTXTForDomain(reg.Subdomain)
|
regDomainSlice, err := DB.GetTXTForDomain(reg.Subdomain)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -294,7 +294,7 @@ func TestUpdate(t *testing.T) {
|
|||||||
regUser.Password = "nevergonnagiveyouup"
|
regUser.Password = "nevergonnagiveyouup"
|
||||||
regUser.Value = validTXT
|
regUser.Value = validTXT
|
||||||
|
|
||||||
err = DB.Update(regUser)
|
err = DB.Update(regUser.ACMETxtPost)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("DB Update failed, got error: [%v]", err)
|
t.Errorf("DB Update failed, got error: [%v]", err)
|
||||||
}
|
}
|
||||||
|
@ -168,7 +168,7 @@ func TestResolveTXT(t *testing.T) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
atxt.Value = validTXT
|
atxt.Value = validTXT
|
||||||
err = DB.Update(atxt)
|
err = DB.Update(atxt.ACMETxtPost)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("Could not update db record: [%v]", err)
|
t.Errorf("Could not update db record: [%v]", err)
|
||||||
return
|
return
|
||||||
|
2
types.go
2
types.go
@ -74,7 +74,7 @@ type database interface {
|
|||||||
Register(cidrslice) (ACMETxt, error)
|
Register(cidrslice) (ACMETxt, error)
|
||||||
GetByUsername(uuid.UUID) (ACMETxt, error)
|
GetByUsername(uuid.UUID) (ACMETxt, error)
|
||||||
GetTXTForDomain(string) ([]string, error)
|
GetTXTForDomain(string) ([]string, error)
|
||||||
Update(ACMETxt) error
|
Update(ACMETxtPost) error
|
||||||
GetBackend() *sql.DB
|
GetBackend() *sql.DB
|
||||||
SetBackend(*sql.DB)
|
SetBackend(*sql.DB)
|
||||||
Close()
|
Close()
|
||||||
|
Loading…
Reference in New Issue
Block a user