Documentation
¶
Index ¶
- func GetSessionSecret(ctx context.Context, deviceName, key, baseURL string) (string, error)
- type Config
- type EndpointClient
- type EndpointConfig
- type EndpointResponse
- type EndpointResponseHandler
- type EndpointResponseHandlerFunc
- type EndpointRoute
- type FailedToPostError
- type FailedToReadResponseError
- type Proxy
- type StripeEvent
- type StripeRequest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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
// URL to which requests are sent
APIBaseURL string
// URL to which events are forwarded to
ForwardURL string
// Headers to inject when forwarding events
ForwardHeaders []string
// URL to which Connect events are forwarded to
ForwardConnectURL string
// Headers to inject when forwarding Connect events
ForwardConnectHeaders []string
// UseConfiguredWebhooks loads webhooks config from user's account
UseConfiguredWebhooks bool
// EndpointsRoutes is a mapping of local webhook endpoint urls to the events they consume
EndpointRoutes []EndpointRoute
// List of events to listen and proxy
Events []string
// WebSocketFeature is the feature specified for the websocket connection
WebSocketFeature string
// Indicates whether to print full JSON objects to stdout
PrintJSON bool
// Specifies the format to print to stdout.
Format string
// 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
// The logger used to log messages to stdin/err
Log *log.Logger
// Force use of unencrypted ws:// protocol instead of wss://
NoWSS bool
// OutCh is the channel to send logs and statuses to for processing in other packages
OutCh chan websocket.IElement
}
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(evtCtx eventContext, 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
// OutCh is the channel to send data and statuses to for processing in other packages
OutCh chan websocket.IElement
}
EndpointConfig contains the optional configuration parameters of an EndpointClient.
type EndpointResponse ¶ added in v1.6.0
type EndpointResponse struct {
Event *StripeEvent
Resp *http.Response
}
EndpointResponse describes the response to a Stripe event from an endpoint
type EndpointResponseHandler ¶ added in v0.2.6
EndpointResponseHandler handles a response from the endpoint.
type EndpointResponseHandlerFunc ¶ added in v0.2.6
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(evtCtx eventContext, forwardURL string, resp *http.Response)
ProcessResponse calls f(evtCtx, forwardURL, 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
// Status is whether or not the endpoint is enabled.
Status string
}
EndpointRoute describes a local endpoint's routing configuration.
type FailedToPostError ¶ added in v1.6.0
type FailedToPostError struct {
Err error
}
FailedToPostError describes a failure to send a POST request to an endpoint
func (FailedToPostError) Error ¶ added in v1.6.0
func (f FailedToPostError) Error() string
type FailedToReadResponseError ¶ added in v1.6.0
type FailedToReadResponseError struct {
Err error
}
FailedToReadResponseError describes a failure to read the response from an endpoint
func (FailedToReadResponseError) Error ¶ added in v1.6.0
func (f FailedToReadResponseError) Error() string
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 (*Proxy) IsConnected ¶ added in v1.7.13
func (p *Proxy) IsConnected() <-chan struct{}
IsConnected returns a channel that signals the proxy has finished connecting. can only be called after webSocketClient is initialized
type StripeEvent ¶ added in v1.6.0
type StripeEvent struct {
Account string `json:"account"`
APIVersion string `json:"api_version"`
Created int `json:"created"`
Data map[string]interface{} `json:"data"`
ID string `json:"id"`
Livemode bool `json:"livemode"`
PendingWebhooks int `json:"pending_webhooks"`
Type string `json:"type"`
RequestData interface{} `json:"request"`
Request StripeRequest
}
StripeEvent is a representation of a Stripe `event` object we define RequestData as an interface for backwards compatibility Request will hold the deserialized request data
func (*StripeEvent) IsConnect ¶ added in v1.6.0
func (e *StripeEvent) IsConnect() bool
IsConnect return true or false if *StripeEvent is connect or not.
func (*StripeEvent) URLForEventID ¶ added in v1.6.0
func (e *StripeEvent) URLForEventID() string
URLForEventID builds a full URL from a StripeEvent ID.
func (*StripeEvent) URLForEventType ¶ added in v1.6.0
func (e *StripeEvent) URLForEventType() string
URLForEventType builds a full URL from a StripeEvent Type.
type StripeRequest ¶ added in v1.7.0
StripeRequest is a representation of the Request field in a Stripe `event` object
func ExtractRequestData ¶ added in v1.7.0
func ExtractRequestData(data interface{}) (StripeRequest, error)
ExtractRequestData takes an interface with request data from a Stripe event payload and properly parses it into a StripeRequest struct before returning it