This commit is contained in:
teddy
2025-04-21 11:58:12 +07:00
parent 4bfb6b4861
commit a69b44625e
7 changed files with 185 additions and 10 deletions

View File

@@ -3,12 +3,17 @@ package helper
import (
"bytes"
"email-notification/config"
"encoding/json"
"errors"
"fmt"
"html/template"
"log"
"net/http"
"net/smtp"
"reflect"
"time"
"github.com/go-playground/validator/v10"
"github.com/google/uuid"
)
@@ -69,7 +74,7 @@ func FormatSince(t time.Time) string {
}
func SendEmail(to []string, cc []string, name, subject, message, htmlString string) error {
sender := "From: " + config.Mail().SMTPSenderName + "\n"
sender := "From: HIS <hats.nutech@gmail.com>\n"
subjectt := "Subject: " + subject + "\n"
mime := "MIME-version: 1.0;\nContent-Type: text/html; charset=\"UTF-8\";\n\n"
body := htmlString
@@ -85,3 +90,29 @@ func SendEmail(to []string, cc []string, name, subject, message, htmlString stri
return nil
}
func ParseRequest(r *http.Request, v any) error {
err := json.NewDecoder(r.Body).Decode(&v)
if err != nil {
return err
}
return nil
}
func ValidateRequest(request any) error {
c := config.NewValidator()
if err := c.Struct(request); err != nil {
var errMessage string
for _, err := range err.(validator.ValidationErrors) {
fmt.Println(err)
fieldName := err.Field()
field, _ := reflect.TypeOf(request).Elem().FieldByName(fieldName)
jsonField, _ := field.Tag.Lookup("json")
errMessage = jsonField + " is " + err.ActualTag()
}
fmt.Println(errMessage)
return errors.New(errMessage)
}
return nil
}