diff --git a/cmd/membership/main.go b/cmd/membership/main.go index 64da1ba..569ba4f 100644 --- a/cmd/membership/main.go +++ b/cmd/membership/main.go @@ -18,7 +18,7 @@ func main() { config.LoadConfig() - err := database.Open(config.DB.Path) + err := database.Open(config.DB.Path, config.Recipients.AdminEmail) if err != nil { logger.Error.Fatalf("Couldn't init database: %v", err) } diff --git a/configs/config.template.json b/configs/config.template.json index 0c04ebb..6a9fa59 100644 --- a/configs/config.template.json +++ b/configs/config.template.json @@ -1,6 +1,9 @@ { - "WebsiteTitle": "My Carsharing Site", - "BaseURL": "https://domain.de", + "site": { + "WebsiteTitle": "My Carsharing Site", + "BaseUrl": "https://domain.de", + "AllowOrigins": "https://domain.de" + }, "Environment": "dev", "db": { "Path": "data/db.sqlite3" diff --git a/internal/config/config.go b/internal/config/config.go index 6e56464..d8be5de 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -23,6 +23,11 @@ type DatabaseConfig struct { Path string `json:"Path" default:"data/db.sqlite3" envconfig:"DB_PATH"` } +type SiteConfig struct { + AllowOrigins string `json:"AllowOrigins" envconfig:"ALLOW_ORIGINS"` + WebsiteTitle string `json:"WebsiteTitle" envconfig:"WEBSITE_TITLE"` + BaseURL string `json:"BaseUrl" envconfig:"BASE_URL"` +} type AuthenticationConfig struct { JWTSecret string CSRFSecret string @@ -57,11 +62,10 @@ type SecurityConfig struct { } type Config struct { Auth AuthenticationConfig `json:"auth"` + Site SiteConfig `json:"site"` Templates TemplateConfig `json:"templates"` Recipients RecipientsConfig `json:"recipients"` ConfigFilePath string `json:"config_file_path" envconfig:"CONFIG_FILE_PATH"` - WebsiteTitle string `json:"WebsiteTitle" envconfig:"WEBSITE_TITLE"` - BaseURL string `json:"BaseUrl" envconfig:"BASE_URL"` Env string `json:"Environment" default:"development" envconfig:"ENV"` DB DatabaseConfig `json:"db"` SMTP SMTPConfig `json:"smtp"` @@ -69,17 +73,16 @@ type Config struct { } var ( - BaseURL string - WebsiteTitle string - CFGPath string - CFG Config - Auth AuthenticationConfig - DB DatabaseConfig - Templates TemplateConfig - SMTP SMTPConfig - Recipients RecipientsConfig - Env string - Security SecurityConfig + Site SiteConfig + CFGPath string + CFG Config + Auth AuthenticationConfig + DB DatabaseConfig + Templates TemplateConfig + SMTP SMTPConfig + Recipients RecipientsConfig + Env string + Security SecurityConfig ) var environmentOptions map[string]bool = map[string]bool{ "development": true, @@ -115,11 +118,10 @@ func LoadConfig() { DB = CFG.DB Templates = CFG.Templates SMTP = CFG.SMTP - BaseURL = CFG.BaseURL Recipients = CFG.Recipients Security = CFG.Security Env = CFG.Env - WebsiteTitle = CFG.WebsiteTitle + Site = CFG.Site logger.Info.Printf("Config loaded: %#v", CFG) } diff --git a/internal/services/email_service.go b/internal/services/email_service.go index f78b0ee..3f589e3 100644 --- a/internal/services/email_service.go +++ b/internal/services/email_service.go @@ -70,7 +70,7 @@ func (s *EmailService) SendVerificationEmail(user *models.User, token *string) e FirstName: user.FirstName, LastName: user.LastName, Token: *token, - BASEURL: config.BaseURL, + BASEURL: config.Site.BaseURL, } subject := constants.MailVerificationSubject @@ -102,8 +102,8 @@ func (s *EmailService) SendWelcomeEmail(user *models.User) error { MembershipID: user.Membership.ID, MembershipFee: float32(user.Membership.SubscriptionModel.MonthlyFee), RentalFee: float32(user.Membership.SubscriptionModel.HourlyRate), - BASEURL: config.BaseURL, - WebsiteTitle: config.WebsiteTitle, + BASEURL: config.Site.BaseURL, + WebsiteTitle: config.Site.WebsiteTitle, Logo: config.Templates.LogoURI, } @@ -151,9 +151,9 @@ func (s *EmailService) SendRegistrationNotification(user *models.User) error { Email: user.Email, Phone: user.Phone, IBAN: user.BankAccount.IBAN, - BASEURL: config.BaseURL, + BASEURL: config.Site.BaseURL, Logo: config.Templates.LogoURI, - WebsiteTitle: config.WebsiteTitle, + WebsiteTitle: config.Site.WebsiteTitle, } subject := constants.MailRegistrationSubject @@ -175,9 +175,9 @@ func (s *EmailService) RelayContactFormMessage(sender string, name string, messa }{ Message: message, Name: name, - BASEURL: config.BaseURL, + BASEURL: config.Site.BaseURL, Logo: config.Templates.LogoURI, - WebsiteTitle: config.WebsiteTitle, + WebsiteTitle: config.Site.WebsiteTitle, } subject := constants.MailContactSubject body, err := ParseTemplate("mail_contact_form.tmpl", data)