mirror of
https://github.com/KevinMidboe/planetposen-mail.git
synced 2025-10-29 17:50:32 +00:00
Preview command for serving preview of order confirmation template
This commit is contained in:
57
cmd/preview/main.go
Normal file
57
cmd/preview/main.go
Normal file
@@ -0,0 +1,57 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type Product struct {
|
||||
Name string
|
||||
Image string
|
||||
Description string
|
||||
Quantity int
|
||||
Price float32
|
||||
Currency string
|
||||
}
|
||||
|
||||
type ReceiptPageData struct {
|
||||
PageTitle string
|
||||
OrderId string
|
||||
Products []Product
|
||||
}
|
||||
|
||||
func serveTemplate(response http.ResponseWriter, request *http.Request) {
|
||||
tmpl := template.Must(template.ParseFiles("mail/mail-template_order-confirmation.html"))
|
||||
// tmpl := template.Must(w)
|
||||
data := ReceiptPageData{
|
||||
PageTitle: "Planetposen purchase",
|
||||
OrderId: "fb9a5910-0dcf-4c65-9c25-3fb3eb883ce5",
|
||||
Products: []Product{
|
||||
{Name: "Forrest", Image: "https://planet.schleppe.cloud/email/items/item-1.jpg", Description: "Sneaker Maker", Quantity: 4, Price: 49.99, Currency: "NOK"},
|
||||
{Name: "Cookie-Man Forrest", Image: "https://planet.schleppe.cloud/email/items/item-2.jpg", Description: "Boots Brothers", Quantity: 3, Price: 99, Currency: "NOK"},
|
||||
{Name: "Floral", Image: "https://planet.schleppe.cloud/email/items/item-3.jpg", Description: "Swiss Made", Quantity: 1, Price: 129, Currency: "NOK"},
|
||||
},
|
||||
}
|
||||
|
||||
var b bytes.Buffer
|
||||
template := bufio.NewWriter(&b)
|
||||
err := tmpl.Execute(template, data)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
response.Header().Set("Content-Type", "text/html")
|
||||
response.WriteHeader(http.StatusOK)
|
||||
response.Write([]byte(b.String()))
|
||||
}
|
||||
|
||||
func main() {
|
||||
ADDRESS := ":5006"
|
||||
fmt.Printf("Serving preview of template at %s\n", ADDRESS)
|
||||
http.HandleFunc("/", serveTemplate)
|
||||
log.Fatal(http.ListenAndServe(ADDRESS, nil))
|
||||
}
|
||||
Reference in New Issue
Block a user