You've already forked openaccounting-server
forked from cybercinch/openaccounting-server
mailgun dep
This commit is contained in:
242
vendor/github.com/mailgun/mailgun-go/v4/mock_events.go
generated
vendored
Normal file
242
vendor/github.com/mailgun/mailgun-go/v4/mock_events.go
generated
vendored
Normal file
@@ -0,0 +1,242 @@
|
||||
package mailgun
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"net/url"
|
||||
"time"
|
||||
|
||||
"github.com/go-chi/chi"
|
||||
"github.com/mailgun/mailgun-go/v4/events"
|
||||
)
|
||||
|
||||
func (ms *MockServer) addEventRoutes(r chi.Router) {
|
||||
r.Get("/{domain}/events", ms.listEvents)
|
||||
|
||||
var (
|
||||
tags = []string{"tag1", "tag2"}
|
||||
recipients = []string{"one@mailgun.test", "two@mailgun.test"}
|
||||
recipientDomain = "mailgun.test"
|
||||
timeStamp = TimeToFloat(time.Now().UTC())
|
||||
ipAddress = "192.168.1.1"
|
||||
message = events.Message{Headers: events.MessageHeaders{MessageID: "1234"}}
|
||||
clientInfo = events.ClientInfo{
|
||||
AcceptLanguage: "EN",
|
||||
ClientName: "Firefox",
|
||||
ClientOS: "OS X",
|
||||
ClientType: "browser",
|
||||
DeviceType: "desktop",
|
||||
IP: "8.8.8.8",
|
||||
UserAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:54.0) Gecko/20100101 Firefox/54.0",
|
||||
}
|
||||
geoLocation = events.GeoLocation{
|
||||
City: "San Antonio",
|
||||
Country: "US",
|
||||
Region: "TX",
|
||||
}
|
||||
)
|
||||
|
||||
// AcceptedNoAuth
|
||||
accepted := new(events.Accepted)
|
||||
accepted.ID = randomString(16, "ID-")
|
||||
accepted.Message.Headers.MessageID = accepted.ID
|
||||
accepted.Name = events.EventAccepted
|
||||
accepted.Tags = tags
|
||||
accepted.Timestamp = timeStamp
|
||||
accepted.Recipient = recipients[0]
|
||||
accepted.RecipientDomain = recipientDomain
|
||||
accepted.Flags = events.Flags{
|
||||
IsAuthenticated: false,
|
||||
}
|
||||
ms.events = append(ms.events, accepted)
|
||||
|
||||
// AcceptedAuth
|
||||
accepted = new(events.Accepted)
|
||||
accepted.ID = randomString(16, "ID-")
|
||||
accepted.Message.Headers.MessageID = accepted.ID
|
||||
accepted.Name = events.EventAccepted
|
||||
accepted.Tags = tags
|
||||
accepted.Timestamp = timeStamp
|
||||
accepted.Recipient = recipients[0]
|
||||
accepted.RecipientDomain = recipientDomain
|
||||
accepted.Campaigns = []events.Campaign{
|
||||
{ID: "test-id", Name: "test"},
|
||||
}
|
||||
accepted.Flags = events.Flags{
|
||||
IsAuthenticated: true,
|
||||
}
|
||||
ms.events = append(ms.events, accepted)
|
||||
|
||||
// DeliveredSMTP
|
||||
delivered := new(events.Delivered)
|
||||
delivered.ID = randomString(16, "ID-")
|
||||
delivered.Message.Headers.MessageID = delivered.ID
|
||||
delivered.Name = events.EventDelivered
|
||||
delivered.Tags = tags
|
||||
delivered.Timestamp = timeStamp
|
||||
delivered.Recipient = recipients[0]
|
||||
delivered.RecipientDomain = recipientDomain
|
||||
delivered.DeliveryStatus.Message = "We sent an email Yo"
|
||||
delivered.Envelope = events.Envelope{
|
||||
Transport: "smtp",
|
||||
SendingIP: ipAddress,
|
||||
}
|
||||
delivered.Flags = events.Flags{
|
||||
IsAuthenticated: true,
|
||||
}
|
||||
ms.events = append(ms.events, delivered)
|
||||
|
||||
// DeliveredHTTP
|
||||
delivered = new(events.Delivered)
|
||||
delivered.ID = randomString(16, "ID-")
|
||||
delivered.Message.Headers.MessageID = delivered.ID
|
||||
delivered.Name = events.EventDelivered
|
||||
delivered.Tags = tags
|
||||
delivered.Timestamp = timeStamp
|
||||
delivered.Recipient = recipients[0]
|
||||
delivered.RecipientDomain = recipientDomain
|
||||
delivered.DeliveryStatus.Message = "We sent an email Yo"
|
||||
delivered.Envelope = events.Envelope{
|
||||
Transport: "http",
|
||||
SendingIP: ipAddress,
|
||||
}
|
||||
delivered.Flags = events.Flags{
|
||||
IsAuthenticated: true,
|
||||
}
|
||||
ms.events = append(ms.events, delivered)
|
||||
|
||||
// Stored
|
||||
stored := new(events.Stored)
|
||||
stored.ID = randomString(16, "ID-")
|
||||
stored.Name = events.EventStored
|
||||
stored.Tags = tags
|
||||
stored.Timestamp = timeStamp
|
||||
stored.Storage.URL = "http://mailgun.text/some/url"
|
||||
ms.events = append(ms.events, stored)
|
||||
|
||||
// Clicked
|
||||
for _, recipient := range recipients {
|
||||
clicked := new(events.Clicked)
|
||||
clicked.ID = randomString(16, "ID-")
|
||||
clicked.Name = events.EventClicked
|
||||
clicked.Message = message
|
||||
clicked.Tags = tags
|
||||
clicked.Recipient = recipient
|
||||
clicked.ClientInfo = clientInfo
|
||||
clicked.GeoLocation = geoLocation
|
||||
clicked.Timestamp = timeStamp
|
||||
ms.events = append(ms.events, clicked)
|
||||
}
|
||||
|
||||
clicked := new(events.Clicked)
|
||||
clicked.ID = randomString(16, "ID-")
|
||||
clicked.Name = events.EventClicked
|
||||
clicked.Message = message
|
||||
clicked.Tags = tags
|
||||
clicked.Recipient = recipients[0]
|
||||
clicked.ClientInfo = clientInfo
|
||||
clicked.GeoLocation = geoLocation
|
||||
clicked.Timestamp = timeStamp
|
||||
ms.events = append(ms.events, clicked)
|
||||
|
||||
// Opened
|
||||
for _, recipient := range recipients {
|
||||
opened := new(events.Opened)
|
||||
opened.ID = randomString(16, "ID-")
|
||||
opened.Name = events.EventOpened
|
||||
opened.Message = message
|
||||
opened.Tags = tags
|
||||
opened.Recipient = recipient
|
||||
opened.ClientInfo = clientInfo
|
||||
opened.GeoLocation = geoLocation
|
||||
opened.Timestamp = timeStamp
|
||||
ms.events = append(ms.events, opened)
|
||||
}
|
||||
|
||||
opened := new(events.Opened)
|
||||
opened.ID = randomString(16, "ID-")
|
||||
opened.Name = events.EventOpened
|
||||
opened.Message = message
|
||||
opened.Tags = tags
|
||||
opened.Recipient = recipients[0]
|
||||
opened.ClientInfo = clientInfo
|
||||
opened.GeoLocation = geoLocation
|
||||
opened.Timestamp = timeStamp
|
||||
ms.events = append(ms.events, opened)
|
||||
|
||||
// Unsubscribed
|
||||
for _, recipient := range recipients {
|
||||
unsub := new(events.Unsubscribed)
|
||||
unsub.ID = randomString(16, "ID-")
|
||||
unsub.Name = events.EventUnsubscribed
|
||||
unsub.Tags = tags
|
||||
unsub.Recipient = recipient
|
||||
unsub.ClientInfo = clientInfo
|
||||
unsub.GeoLocation = geoLocation
|
||||
unsub.Timestamp = timeStamp
|
||||
ms.events = append(ms.events, unsub)
|
||||
}
|
||||
|
||||
// Complained
|
||||
for _, recipient := range recipients {
|
||||
complained := new(events.Complained)
|
||||
complained.ID = randomString(16, "ID-")
|
||||
complained.Name = events.EventComplained
|
||||
complained.Tags = tags
|
||||
complained.Recipient = recipient
|
||||
complained.Timestamp = timeStamp
|
||||
ms.events = append(ms.events, complained)
|
||||
}
|
||||
}
|
||||
|
||||
type eventsResponse struct {
|
||||
Items []Event `json:"items"`
|
||||
Paging Paging `json:"paging"`
|
||||
}
|
||||
|
||||
func (ms *MockServer) listEvents(w http.ResponseWriter, r *http.Request) {
|
||||
var idx []string
|
||||
|
||||
for _, e := range ms.events {
|
||||
idx = append(idx, e.GetID())
|
||||
}
|
||||
|
||||
limit := stringToInt(r.FormValue("limit"))
|
||||
if limit == 0 {
|
||||
limit = 100
|
||||
}
|
||||
start, end := pageOffsets(idx, r.FormValue("page"), r.FormValue("address"), limit)
|
||||
|
||||
var nextAddress, prevAddress string
|
||||
var results []Event
|
||||
|
||||
if start != end {
|
||||
results = ms.events[start:end]
|
||||
nextAddress = results[len(results)-1].GetID()
|
||||
prevAddress = results[0].GetID()
|
||||
} else {
|
||||
results = []Event{}
|
||||
nextAddress = r.FormValue("address")
|
||||
prevAddress = r.FormValue("address")
|
||||
}
|
||||
|
||||
resp := eventsResponse{
|
||||
Paging: Paging{
|
||||
First: getPageURL(r, url.Values{
|
||||
"page": []string{"first"},
|
||||
}),
|
||||
Last: getPageURL(r, url.Values{
|
||||
"page": []string{"last"},
|
||||
}),
|
||||
Next: getPageURL(r, url.Values{
|
||||
"page": []string{"next"},
|
||||
"address": []string{nextAddress},
|
||||
}),
|
||||
Previous: getPageURL(r, url.Values{
|
||||
"page": []string{"prev"},
|
||||
"address": []string{prevAddress},
|
||||
}),
|
||||
},
|
||||
Items: results,
|
||||
}
|
||||
toJSON(w, resp)
|
||||
}
|
||||
Reference in New Issue
Block a user