debug and make mail work

This commit is contained in:
2024-09-02 21:32:59 +02:00
parent 50142e16be
commit a51282eeec
5 changed files with 73 additions and 10 deletions

View File

@ -1,7 +1,6 @@
package main
import (
"encoding/json"
"errors"
"fmt"
"log"
@ -13,37 +12,41 @@ import (
)
type MailData struct {
From string
To string
Subject string
Content string
From string `json:"from"`
To string `json:"to"`
Subject string `json:"subject"`
Content string `json:"content"`
}
func (app *Config) SendMail(w http.ResponseWriter, r *http.Request) {
var mailData MailData
err := json.NewDecoder(r.Body).Decode(&mailData)
err := app.Tools.ReadJSON(w, r, &mailData)
if err != nil {
log.Println(err)
app.Tools.ErrorJSON(w, err)
return
}
log.Println("Sending mail")
if mailData.From == "" || mailData.To == "" ||
(mailData.Subject == "" && mailData.Content == "") {
log.Println("Invalid mail")
app.Tools.ErrorJSON(w, errors.New("invalid mail"), http.StatusBadRequest)
return
}
err = app.SendMsg(mailData)
if err != nil {
log.Println(err)
app.Tools.ErrorJSON(w, err)
return
}
var payload toolbox.JSONResponse
payload.Error = false
payload.Message = fmt.Sprintf("mail sent to %s", mailData.To)
app.Tools.WriteJSON(w, http.StatusOK, payload)
app.Tools.WriteJSON(w, http.StatusAccepted, payload)
}
func (app *Config) SendMsg(m MailData) error {

View File

@ -21,7 +21,7 @@ type Config struct {
func main() {
app := Config{
Host: "localhost",
Host: "mailhog",
Port: 1025,
}

View File

@ -23,5 +23,5 @@ func (app *Config) routes() http.Handler {
mux.Use(middleware.Heartbeat("/ping"))
mux.Post("/send-mail", app.SendMail)
return nil
return mux
}