salesloft

package
v0.0.0-...-e91515d Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2026 License: MIT Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const ApiVersion = "v2"
View Source
const (
	// DefaultPageSize is number of elements per page.
	DefaultPageSize = 100
)

Variables

View Source
var (
	ErrMissingSignature = errors.New("missing webhook signature header")
	ErrInvalidSignature = errors.New("invalid webhook signature")
)

Functions

This section is empty.

Types

type CollapsedSubscriptionEvent

type CollapsedSubscriptionEvent map[string]any

CollapsedSubscriptionEvent represents the raw webhook payload from Salesloft. Unlike Salesforce or Zoho, Salesloft sends individual events (one record per webhook), so this implementation simply wraps the single event.

func (CollapsedSubscriptionEvent) RawMap

func (e CollapsedSubscriptionEvent) RawMap() (map[string]any, error)

RawMap returns a copy of the raw event data.

func (CollapsedSubscriptionEvent) SubscriptionEventList

func (e CollapsedSubscriptionEvent) SubscriptionEventList() ([]common.SubscriptionEvent, error)

SubscriptionEventList returns the event as a single-element list. Salesloft webhooks contain only one record per payload, so no fan-out is needed.

type Connector

type Connector struct {
	BaseURL string
	Module  common.Module
	Client  *common.JSONHTTPClient
}

func NewConnector

func NewConnector(opts ...Option) (conn *Connector, outErr error)

func (*Connector) Delete

func (c *Connector) Delete(ctx context.Context, config common.DeleteParams) (*common.DeleteResult, error)

func (*Connector) DeleteSubscription

func (c *Connector) DeleteSubscription(
	ctx context.Context,
	result common.SubscriptionResult,
) error

DeleteSubscription deletes webhook subscriptions.

func (*Connector) EmptySubscriptionParams

func (c *Connector) EmptySubscriptionParams() *common.SubscribeParams

func (*Connector) EmptySubscriptionResult

func (c *Connector) EmptySubscriptionResult() *common.SubscriptionResult

func (*Connector) GetRecordsByIds

func (c *Connector) GetRecordsByIds(ctx context.Context, objectName string,
	recordIds []string, fields []string, _ []string,
) ([]common.ReadResultRow, error)

Reference: https://developers.salesloft.com/docs/api/account-stages-index/

func (*Connector) HTTPClient

func (c *Connector) HTTPClient() *common.HTTPClient

func (*Connector) JSONHTTPClient

func (c *Connector) JSONHTTPClient() *common.JSONHTTPClient

JSONHTTPClient returns the underlying JSON HTTP client.

func (*Connector) ListObjectMetadata

func (c *Connector) ListObjectMetadata(
	ctx context.Context, objectNames []string,
) (*common.ListObjectMetadataResult, error)

func (*Connector) Provider

func (c *Connector) Provider() providers.Provider

func (*Connector) Read

func (c *Connector) Read(ctx context.Context, params common.ReadParams) (*common.ReadResult, error)

func (*Connector) String

func (c *Connector) String() string

func (*Connector) Subscribe

func (c *Connector) Subscribe(
	ctx context.Context,
	params common.SubscribeParams,
) (*common.SubscriptionResult, error)

nolint: funlen,cyclop,gocognit,godoclint

func (*Connector) UpdateSubscription

func (c *Connector) UpdateSubscription(
	ctx context.Context,
	params common.SubscribeParams,
	previousResult *common.SubscriptionResult,
) (*common.SubscriptionResult, error)

nolint: funlen, cyclop,gocognit,gocyclo,godoclint

func (*Connector) VerifyWebhookMessage

func (c *Connector) VerifyWebhookMessage(ctx context.Context,
	req *common.WebhookRequest, params *common.VerificationParams,
) (bool, error)

func (*Connector) Write

func (c *Connector) Write(ctx context.Context, config common.WriteParams) (*common.WriteResult, error)

type Option

type Option = func(params *parameters)

Option is a function which mutates the connector configuration.

func WithAuthenticatedClient

func WithAuthenticatedClient(client common.AuthenticatedHTTPClient) Option

func WithClient

func WithClient(ctx context.Context, client *http.Client,
	config *oauth2.Config, token *oauth2.Token, opts ...common.OAuthOption,
) Option

type ResponseListError

type ResponseListError struct {
	Errors map[string]any `json:"errors"`
}

func (ResponseListError) CombineErr

func (r ResponseListError) CombineErr(base error) error

type ResponseSingleError

type ResponseSingleError struct {
	Status int64  `json:"status"`
	Err    string `json:"error"`
}

func (ResponseSingleError) CombineErr

func (r ResponseSingleError) CombineErr(base error) error

type SalesloftVerificationParams

type SalesloftVerificationParams struct {
	Secret string `json:"secret,omitempty"`
}

type SubscriptionEvent

type SubscriptionEvent map[string]any

func (SubscriptionEvent) EventTimeStampNano

func (evt SubscriptionEvent) EventTimeStampNano() (int64, error)

nolint: godoclint Salesloft doesn't provide deliveredAt field in webhook response. So we are using updated_at field as event timestamp.

func (SubscriptionEvent) EventType

func (SubscriptionEvent) ObjectName

func (evt SubscriptionEvent) ObjectName() (string, error)

func (SubscriptionEvent) PreLoadData

PreLoadData implements common.SubscriptionEvent.

func (SubscriptionEvent) RawEventName

func (evt SubscriptionEvent) RawEventName() (string, error)

func (SubscriptionEvent) RawMap

func (evt SubscriptionEvent) RawMap() (map[string]any, error)

func (SubscriptionEvent) RecordId

func (evt SubscriptionEvent) RecordId() (string, error)

func (SubscriptionEvent) UpdatedFields

func (evt SubscriptionEvent) UpdatedFields() ([]string, error)

func (SubscriptionEvent) Workspace

func (evt SubscriptionEvent) Workspace() (string, error)

Workspace is not available in Salesloft.

type SubscriptionRequest

type SubscriptionRequest struct {
	UniqueRef       string `json:"unique_ref"        validate:"required"`
	WebhookEndPoint string `json:"webhook_end_point" validate:"required"`
	Secret          string `json:"secret,omitempty"`
}

type SubscriptionResponse

type SubscriptionResponse struct {
	UserGUID      string `json:"user_guid"`
	TenantId      string `json:"tenant_id"`
	ID            int    `json:"id"`
	EventType     string `json:"event_type"`
	Enabled       bool   `json:"enabled"`
	CallbackURL   string `json:"callback_url"`
	CallbackToken string `json:"callback_token"`
}

type SubscriptionResult

type SubscriptionResult struct {
	Subscriptions map[common.ObjectName]map[moduleEvent]SubscriptionResponse `json:"subscriptions"`
}

type SuccessfulSubscription

type SuccessfulSubscription struct {
	ID         string
	ObjectName string
	EventName  string
}

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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