handlers

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 18, 2017 License: AGPL-3.0 Imports: 18 Imported by: 78

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeAndValidateForm

func DecodeAndValidateForm(form interface{}, r *http.Request) error

DecodeAndValidateForm takes the passed in form and attempts to parse and validate it from the POST parameters of the passed in request

func DecodeAndValidateJSON

func DecodeAndValidateJSON(envelope interface{}, r *http.Request) error

DecodeAndValidateJSON takes the passed in envelope and tries to unmarshal it from the body of the passed in request, then validating it

func DecodeAndValidateQueryParams

func DecodeAndValidateQueryParams(form interface{}, r *http.Request) error

DecodeAndValidateQueryParams takes the passed in form and attempts to parse and validate it from the GET parameters of the passed in request

func DecodePossibleBase64

func DecodePossibleBase64(original string) string

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 NameFromFirstLastUsername

func NameFromFirstLastUsername(first string, last string, username string) string

NameFromFirstLastUsername is a utility function to build a contact's name from the passed in values, all of which can be empty

func RunChannelBenchmarks

func RunChannelBenchmarks(b *testing.B, channels []courier.Channel, handler courier.ChannelHandler, testCases []ChannelTestCase)

RunChannelBenchmarks runs all the passed in test cases for the passed in channels

func RunChannelTestCases

func RunChannelTestCases(t *testing.T, channels []courier.Channel, handler courier.ChannelHandler, testCases []ChannelTestCase)

RunChannelTestCases runs all the passed in tests cases for the passed in channel configurations

func Sp

func Sp(str string) *string

Sp is a utility method to get the pointer to the passed in string

func Tp

func Tp(tm time.Time) *time.Time

Tp is utility method to get the pointer to the passed in time

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) 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 ChannelTestCase

type ChannelTestCase struct {
	Label string

	URL      string
	Data     string
	Status   int
	Response string

	Name        *string
	Text        *string
	URN         *string
	External    *string
	Attachment  *string
	Attachments []string
	Date        *time.Time

	PrepRequest RequestPrepFunc
}

ChannelTestCase defines the test values for a particular test case

type RequestPrepFunc

type RequestPrepFunc func(*http.Request)

RequestPrepFunc is our type for a hook for tests to use before a request is fired in a test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL