debug and make mail work
This commit is contained in:
@ -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 {
|
||||
|
@ -21,7 +21,7 @@ type Config struct {
|
||||
|
||||
func main() {
|
||||
app := Config{
|
||||
Host: "localhost",
|
||||
Host: "mailhog",
|
||||
Port: 1025,
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user