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