Example maingo » History » Version 1
karnake ruengchaicharnkij, 04/09/2026 02:30 AM
| 1 | 1 | karnake ruengchaicharnkij | # Example maingo |
|---|---|---|---|
| 2 | |||
| 3 | ``` go |
||
| 4 | package main |
||
| 5 | |||
| 6 | import ( |
||
| 7 | "fmt" |
||
| 8 | "html/template" |
||
| 9 | "os" |
||
| 10 | "path/filepath" |
||
| 11 | |||
| 12 | notification "github.com/finansiaportal/ico-api/test/services/notification" |
||
| 13 | ) |
||
| 14 | |||
| 15 | func main() { |
||
| 16 | data := notification.NotificationTemplateData{ |
||
| 17 | Lang: "th", |
||
| 18 | Subject: "ยืนยันการจองซื้อ - Finansia Portal", |
||
| 19 | HeaderTitle: "FINANSIA PORTAL", |
||
| 20 | GreetingPrefix: "เรียน", |
||
| 21 | CustomerName: "คุณสมมติ ทดสอบ", |
||
| 22 | Contents: []template.HTML{ |
||
| 23 | "บริษัท Finansia Portal จำกัด มีความยินดีที่ได้รับคำสั่งจองซื้อจากท่าน", |
||
| 24 | "โปรดตรวจสอบรายละเอียดการจองซื้อด้านล่าง และกดปุ่ม <strong>\"ยืนยัน\"</strong> เพื่อดำเนินการให้เสร็จสมบูรณ์", |
||
| 25 | "หากท่านมีคำถามหรือข้อสงสัยใด ๆ กรุณาติดต่อฝ่ายบริการลูกค้าของเราได้ตลอดเวลา", |
||
| 26 | }, |
||
| 27 | TableRows: []notification.NotificationTableRow{ |
||
| 28 | {Label: "ชื่อโครงการ:", Value: "TEST"}, |
||
| 29 | {Label: "จำนวนที่จองซื้อ:", Value: "1,000,000 หน่วย"}, |
||
| 30 | {Label: "ราคาต่อหน่วย:", Value: "1 THB"}, |
||
| 31 | {Label: "ยอดชำระสุทธิ:", Value: "1,000,000 THB"}, |
||
| 32 | }, |
||
| 33 | WarningTitle: "คำเตือน:", |
||
| 34 | WarningMessage: "รายการจองซื้อนี้จะหมดอายุโดยอัตโนมัติภายใน 24 ชั่วโมง", |
||
| 35 | ButtonText: "ยืนยันการจองซื้อ", |
||
| 36 | ActionURL: "#", |
||
| 37 | Note: "*หากท่านไม่ได้เป็นผู้ทำรายการ หรือพบข้อมูลไม่ถูกต้อง โปรดติดต่อเจ้าหน้าที่โดยด่วน", |
||
| 38 | FooterCompany: "บริษัท Finansia Portal จำกัด", |
||
| 39 | FooterAddress: "48/48 Tisco Tower, 20th Floor, North Sathorn Road, Silom Sub-district, Bang Rak District, Bangkok 10500", |
||
| 40 | FooterContact: "อีเมล: support@finansiaportal.com | โทร: 02 118 0346", |
||
| 41 | } |
||
| 42 | templatePath := filepath.Join("test", "templates", "enNotification.html") |
||
| 43 | outputPath := filepath.Join("test", "test.html") |
||
| 44 | |||
| 45 | html, err := data.RenderHTML(templatePath) |
||
| 46 | if err != nil { |
||
| 47 | fmt.Printf("render failed: %v\n", err) |
||
| 48 | return |
||
| 49 | } |
||
| 50 | |||
| 51 | if err := os.WriteFile(outputPath, []byte(html), 0644); err != nil { |
||
| 52 | fmt.Printf("write failed: %v\n", err) |
||
| 53 | return |
||
| 54 | } |
||
| 55 | |||
| 56 | fmt.Printf("saved rendered html to %s\n", outputPath) |
||
| 57 | } |
||
| 58 | ``` |