mirror of
https://github.com/hanzo-go/sendgrid.git
synced 2026-10-30 15:05:38 +00:00
242 lines
6.5 KiB
Go
242 lines
6.5 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/hanzoai/sendgrid-go"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
// CreateaCampaign : Create a Campaign
|
|
// POST /campaigns
|
|
func CreateaCampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns", host)
|
|
request.Method = "POST"
|
|
request.Body = []byte(` {
|
|
"categories": [
|
|
"spring line"
|
|
],
|
|
"custom_unsubscribe_url": "",
|
|
"html_content": "<html><head><title></title></head><body><p>Check out our spring line!</p></body></html>",
|
|
"ip_pool": "marketing",
|
|
"list_ids": [
|
|
110,
|
|
124
|
|
],
|
|
"plain_content": "Check out our spring line!",
|
|
"segment_ids": [
|
|
110
|
|
],
|
|
"sender_id": 124451,
|
|
"subject": "New Products for Spring!",
|
|
"suppression_group_id": 42,
|
|
"title": "March Newsletter"
|
|
}`)
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// RetrieveallCampaigns : Retrieve all Campaigns
|
|
// GET /campaigns
|
|
func RetrieveallCampaigns() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns", host)
|
|
request.Method = "GET"
|
|
queryParams := make(map[string]string)
|
|
queryParams["limit"] = "1"
|
|
queryParams["offset"] = "1"
|
|
request.QueryParams = queryParams
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// UpdateaCampaign : Update a Campaign
|
|
// PATCH /campaigns/{campaign_id}
|
|
func UpdateaCampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns/{campaign_id}", host)
|
|
request.Method = "PATCH"
|
|
request.Body = []byte(` {
|
|
"categories": [
|
|
"summer line"
|
|
],
|
|
"html_content": "<html><head><title></title></head><body><p>Check out our summer line!</p></body></html>",
|
|
"plain_content": "Check out our summer line!",
|
|
"subject": "New Products for Summer!",
|
|
"title": "May Newsletter"
|
|
}`)
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// Retrieveasinglecampaign : Retrieve a single campaign
|
|
// GET /campaigns/{campaign_id}
|
|
func Retrieveasinglecampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns/{campaign_id}", host)
|
|
request.Method = "GET"
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// DeleteaCampaign : Delete a Campaign
|
|
// DELETE /campaigns/{campaign_id}
|
|
func DeleteaCampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns/{campaign_id}", host)
|
|
request.Method = "DELETE"
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// UpdateaScheduledCampaign : Update a Scheduled Campaign
|
|
// PATCH /campaigns/{campaign_id}/schedules
|
|
func UpdateaScheduledCampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns/{campaign_id}/schedules", host)
|
|
request.Method = "PATCH"
|
|
request.Body = []byte(` {
|
|
"send_at": 1489451436
|
|
}`)
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// ScheduleaCampaign : Schedule a Campaign
|
|
// POST /campaigns/{campaign_id}/schedules
|
|
func ScheduleaCampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns/{campaign_id}/schedules", host)
|
|
request.Method = "POST"
|
|
request.Body = []byte(` {
|
|
"send_at": 1489771528
|
|
}`)
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// ViewScheduledTimeofaCampaign : View Scheduled Time of a Campaign
|
|
// GET /campaigns/{campaign_id}/schedules
|
|
func ViewScheduledTimeofaCampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns/{campaign_id}/schedules", host)
|
|
request.Method = "GET"
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// UnscheduleaScheduledCampaign : Unschedule a Scheduled Campaign
|
|
// DELETE /campaigns/{campaign_id}/schedules
|
|
func UnscheduleaScheduledCampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns/{campaign_id}/schedules", host)
|
|
request.Method = "DELETE"
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// SendaCampaign : Send a Campaign
|
|
// POST /campaigns/{campaign_id}/schedules/now
|
|
func SendaCampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns/{campaign_id}/schedules/now", host)
|
|
request.Method = "POST"
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
// SendaTestCampaign : Send a Test Campaign
|
|
// POST /campaigns/{campaign_id}/schedules/test
|
|
func SendaTestCampaign() {
|
|
apiKey := os.Getenv("YOUR_SENDGRID_APIKEY")
|
|
host := "https://api.sendgrid.com"
|
|
request := sendgrid.GetRequest(apiKey, "/v3/campaigns/{campaign_id}/schedules/test", host)
|
|
request.Method = "POST"
|
|
request.Body = []byte(` {
|
|
"to": "[email protected]"
|
|
}`)
|
|
response, err := sendgrid.API(request)
|
|
if err != nil {
|
|
log.Println(err)
|
|
} else {
|
|
fmt.Println(response.StatusCode)
|
|
fmt.Println(response.Body)
|
|
fmt.Println(response.Headers)
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
// add your function calls here
|
|
}
|