Refactor URL build from config

This commit is contained in:
nemunaire 2020-07-17 21:02:13 +02:00
parent d51b79ae96
commit 2062bd92e8
2 changed files with 12 additions and 3 deletions

View File

@ -33,6 +33,7 @@ package config // import "happydns.org/config"
import (
"flag"
"fmt"
"log"
"os"
"path"
@ -49,6 +50,15 @@ type Options struct {
StorageEngine string
}
func (o *Options) BuildURL(url string) string {
return fmt.Sprintf("%s%s%s", o.ExternalURL, o.BaseURL, url)
}
func (o *Options) BuildURL_noescape(url string, args ...interface{}) string {
args = append([]interface{}{o.ExternalURL, o.BaseURL}, args...)
return fmt.Sprintf("%s%s"+url, args...)
}
func ConsolidateConfig() (opts *Options, err error) {
// Define defaults options
opts = &Options{

View File

@ -32,16 +32,15 @@
package config
import (
"fmt"
"net/url"
"git.happydns.org/happydns/model"
)
func (o *Options) GetAccountRecoveryURL(u *happydns.User) string {
return fmt.Sprintf("%s%s/forgotten-password?u=%x&k=%s", o.ExternalURL, o.BaseURL, u.Id, url.QueryEscape(u.GenAccountRecoveryHash(false)))
return o.BuildURL_noescape("/forgotten-password?u=%x&k=%s", u.Id, url.QueryEscape(u.GenAccountRecoveryHash(false)))
}
func (o *Options) GetRegistrationURL(u *happydns.User) string {
return fmt.Sprintf("%s%s/email-validation?u=%x&k=%s", o.ExternalURL, o.BaseURL, u.Id, url.QueryEscape(u.GenRegistrationHash(false)))
return o.BuildURL_noescape("/email-validation?u=%x&k=%s", u.Id, url.QueryEscape(u.GenRegistrationHash(false)))
}