proxy

package
v0.7.3 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2019 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	// DeviceName is the name of the device sent to Stripe to help identify the device
	DeviceName string

	// Key is the API key used to authenticate with Stripe
	Key string

	// EndpointsMap is a mapping of local webhook endpoint urls to the events they consume
	EndpointRoutes []EndpointRoute

	APIBaseURL string

	// WebSocketFeature is the feature specified for the websocket connection
	WebSocketFeature string

	// Indicates whether to print full JSON objects to stdout
	PrintJSON bool

	// Indicates whether to filter events formatted with the default or latest API version
	UseLatestAPIVersion bool

	// Indicates whether to skip certificate verification when forwarding webhooks to HTTPS endpoints
	SkipVerify bool

	Log *log.Logger

	// Force use of unencrypted ws:// protocol instead of wss://
	NoWSS bool
}

Config provides the configuration of a Proxy

type EndpointClient added in v0.2.6

type EndpointClient struct {
	// URL the client sends POST requests to
	URL string
	// contains filtered or unexported fields
}

EndpointClient is the client used to POST webhook requests to the local endpoint.

func NewEndpointClient added in v0.2.6

func NewEndpointClient(url string, headers []string, connect bool, events []string, cfg *EndpointConfig) *EndpointClient

NewEndpointClient returns a new EndpointClient.

func (*EndpointClient) Post added in v0.2.6

func (c *EndpointClient) Post(webhookID, webhookConversationID, body string, headers map[string]string) error

Post sends a message to the local endpoint.

func (*EndpointClient) SupportsEventType added in v0.2.6

func (c *EndpointClient) SupportsEventType(connect bool, eventType string) bool

SupportsEventType takes an event of a webhook and compares it to the internal list of supported events

type EndpointConfig added in v0.2.6

type EndpointConfig struct {
	HTTPClient *http.Client

	Log *log.Logger

	ResponseHandler EndpointResponseHandler
}

EndpointConfig contains the optional configuration parameters of an EndpointClient.

type EndpointResponseHandler added in v0.2.6

type EndpointResponseHandler interface {
	ProcessResponse(string, string, string, *http.Response)
}

EndpointResponseHandler handles a response from the endpoint.

type EndpointResponseHandlerFunc added in v0.2.6

type EndpointResponseHandlerFunc func(string, string, string, *http.Response)

EndpointResponseHandlerFunc is an adapter to allow the use of ordinary functions as response handlers. If f is a function with the appropriate signature, ResponseHandler(f) is a ResponseHandler that calls f.

func (EndpointResponseHandlerFunc) ProcessResponse added in v0.2.6

func (f EndpointResponseHandlerFunc) ProcessResponse(webhookID, webhookConversationID, forwardURL string, resp *http.Response)

ProcessResponse calls f(webhookID, webhookConversationID, resp).

type EndpointRoute added in v0.2.6

type EndpointRoute struct {
	// URL is the endpoint's URL.
	URL string

	// Headers to forward to endpoints
	ForwardHeaders []string

	// Connect indicates whether the endpoint should receive normal (when false) or Connect (when true) events.
	Connect bool

	// EventTypes is the list of event types that should be sent to the endpoint.
	EventTypes []string
}

EndpointRoute describes a local endpoint's routing configuration.

type Proxy

type Proxy struct {
	// contains filtered or unexported fields
}

A Proxy opens a websocket connection with Stripe, listens for incoming webhook events, forwards them to the local endpoint and sends the response back to Stripe.

func New

func New(cfg *Config, events []string) *Proxy

New creates a new Proxy

func (*Proxy) Run

func (p *Proxy) Run() error

Run sets the websocket connection and starts the Goroutines to forward incoming events to the local endpoint.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳