Documentation ¶
Index ¶
- func DecodeAndValidateForm(form interface{}, r *http.Request) error
- func DecodeAndValidateJSON(envelope interface{}, r *http.Request) error
- func DecodeAndValidateXML(envelope interface{}, r *http.Request) error
- func DecodePossibleBase64(original string) string
- func GetTextAndAttachments(m courier.Msg) string
- func NameFromFirstLastUsername(first string, last string, username string) string
- func NewExternalIDStatusHandler(h BaseHandler, statuses map[string]courier.MsgStatusValue, ...) courier.ChannelHandleFunc
- func NewTelReceiveHandler(h BaseHandler, fromField string, bodyField string) courier.ChannelHandleFunc
- func RunChannelBenchmarks(b *testing.B, channels []courier.Channel, handler courier.ChannelHandler, ...)
- func RunChannelSendTestCases(t *testing.T, channel courier.Channel, handler courier.ChannelHandler, ...)
- func RunChannelTestCases(t *testing.T, channels []courier.Channel, handler courier.ChannelHandler, ...)
- func Sp(str interface{}) *string
- func SplitAttachment(attachment string) (string, string)
- func SplitMsg(text string, max int) []string
- func Tp(tm time.Time) *time.Time
- func Validate(form interface{}) error
- type BaseHandler
- type ChannelHandleTestCase
- type ChannelSendTestCase
- type RequestPrepFunc
- type SendPrepFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeAndValidateForm ¶
DecodeAndValidateForm takes the passed in form and attempts to parse and validate it from the URL query parameters as well as any POST parameters of the passed in request
func DecodeAndValidateJSON ¶
DecodeAndValidateJSON takes the passed in envelope and tries to unmarshal it from the body of the passed in request, then validating it
func DecodeAndValidateXML ¶ added in v1.1.12
DecodeAndValidateXML takes the passed in envelope and tries to unmarshal it from the body of the passed in request, then validating it
func DecodePossibleBase64 ¶
DecodePossibleBase64 detects and decodes a possibly base64 encoded messages by doing:
- check it's at least 60 characters
- check its length is divisible by 4
- check that there's no whitespace
- check the decoded string contains at least 50% ascii
func GetTextAndAttachments ¶ added in v1.2.24
GetTextAndAttachments returns both the text of our message as well as any attachments, newline delimited
func NameFromFirstLastUsername ¶
NameFromFirstLastUsername is a utility function to build a contact's name from the passed in values, all of which can be empty
func NewExternalIDStatusHandler ¶ added in v1.2.29
func NewExternalIDStatusHandler(h BaseHandler, statuses map[string]courier.MsgStatusValue, externalIDField string, statusField string) courier.ChannelHandleFunc
NewExternalIDStatusHandler creates a new status handler given the passed in status map and fields
func NewTelReceiveHandler ¶ added in v1.2.29
func NewTelReceiveHandler(h BaseHandler, fromField string, bodyField string) courier.ChannelHandleFunc
NewTelReceiveHandler creates a new receive handler given the passed in text and from fields
func RunChannelBenchmarks ¶
func RunChannelBenchmarks(b *testing.B, channels []courier.Channel, handler courier.ChannelHandler, testCases []ChannelHandleTestCase)
RunChannelBenchmarks runs all the passed in test cases for the passed in channels
func RunChannelSendTestCases ¶ added in v0.2.0
func RunChannelSendTestCases(t *testing.T, channel courier.Channel, handler courier.ChannelHandler, testCases []ChannelSendTestCase, setupBackend func(*courier.MockBackend))
RunChannelSendTestCases runs all the passed in test cases against the channel
func RunChannelTestCases ¶
func RunChannelTestCases(t *testing.T, channels []courier.Channel, handler courier.ChannelHandler, testCases []ChannelHandleTestCase)
RunChannelTestCases runs all the passed in tests cases for the passed in channel configurations
func Sp ¶
func Sp(str interface{}) *string
Sp is a utility method to get the pointer to the passed in string
func SplitAttachment ¶ added in v1.2.24
SplitAttachment takes an attachment string and returns the media type and URL for the attachment
func SplitMsg ¶ added in v1.0.1
SplitMsg splits the passed in string into segments that are at most max length
Types ¶
type BaseHandler ¶
type BaseHandler struct {
// contains filtered or unexported fields
}
BaseHandler is the base class for most handlers, it just stored the server, name and channel type for the handler
func NewBaseHandler ¶
func NewBaseHandler(channelType courier.ChannelType, name string) BaseHandler
NewBaseHandler returns a newly constructed BaseHandler with the passed in parameters
func (*BaseHandler) Backend ¶ added in v0.2.0
func (h *BaseHandler) Backend() courier.Backend
Backend returns the backend instance on the BaseHandler
func (*BaseHandler) ChannelName ¶
func (h *BaseHandler) ChannelName() string
ChannelName returns the name of the channel this handler deals with
func (*BaseHandler) ChannelType ¶
func (h *BaseHandler) ChannelType() courier.ChannelType
ChannelType returns the channel type that this handler deals with
func (*BaseHandler) Server ¶
func (h *BaseHandler) Server() courier.Server
Server returns the server instance on the BaseHandler
func (*BaseHandler) SetServer ¶
func (h *BaseHandler) SetServer(server courier.Server)
SetServer can be used to change the server on a BaseHandler
type ChannelHandleTestCase ¶ added in v0.2.0
type ChannelHandleTestCase struct { Label string URL string Data string Status int Response string Name *string Text *string URN *string URNAuth *string Attachment *string Attachments []string Date *time.Time MsgStatus *string ChannelEvent *string ChannelEventExtra map[string]interface{} ExternalID *string ID int64 PrepRequest RequestPrepFunc }
ChannelHandleTestCase defines the test values for a particular test case
type ChannelSendTestCase ¶ added in v0.2.0
type ChannelSendTestCase struct { Label string Text string URN string URNAuth string Attachments []string QuickReplies []string HighPriority bool ResponseStatus int ResponseBody string Path string URLParams map[string]string PostParams map[string]string RequestBody string Headers map[string]string Error string Status string ExternalID string Stopped bool SendPrep SendPrepFunc }
ChannelSendTestCase defines the test values for a particular test case
type RequestPrepFunc ¶
RequestPrepFunc is our type for a hook for tests to use before a request is fired in a test
type SendPrepFunc ¶ added in v0.2.0
SendPrepFunc allows test cases to modify the channel, msg or server before a message is sent