mailchimp

package module
v0.12.0 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2022 License: MPL-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package mailchimp provides a complete API to work with the MailChimp HTTP API.

Specifications leveraged:

  • Analytics

Index

Constants

View Source
const Integration string = "mailchimp"

Integration is the string representation of the MailChimp integration.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {

	// Integration represents the common config shared across all integrations.
	Integration integration.Config `json:"integration"`

	// APIKey is the Mailchimp API Key to use for loading data into Mailchimp. You
	// can create and copy-paste your Mailchimp API Key from the MailChimp dashboard,
	// located at:
	// "Account Settings" > "Extras" > "API Keys".
	//
	// Required.
	APIKey string `json:"-"`

	// DatacenterID is the datacenter identifier of your Mailchimp account. You
	// can find it in the Mailchimp URL in your browser when you are logged in. It
	// is the "us1" in "https://us1.admin.mailchimp.com/lists/".
	//
	// Required.
	DatacenterID string `json:"datacenter_id"`

	// AudienceID is the audience identifier to connect to. You can find your
	// Audience ID in your Mailchimp Settings pane under the Audiences tab from
	// the MailChimp dashboard, located at:
	// "Manage Audiences" > "Settings" > "Audience Name & Defaults".
	//
	// Required.
	AudienceID string `json:"audience_id"`

	// EnableDoubleOptIn is an optional flag to control whether a double opt-in
	// confirmation message is sent when subscribing new users. When enabled, the
	// status of a new subscriber will be set to "pending" until the subscription
	// has been confirmed by the subscriber (via email). When disabled, the
	// subscription will automatically be set to "subscribed" and no email
	// confirmation is sent to the subscriber.
	//
	// Defaults to false.
	EnableDoubleOptIn bool `json:"double_optin"`

	// RegulationType is the MailChimp's type of regulation to use for user
	// suppression and deletion.
	//
	// Defaults to RegulationArchive.
	RegulationType RegulationMode `json:"regulation_type"`
	// contains filtered or unexported fields
}

Config is the configuration an end-user should set to configure the MailChimp integration.

func (*Config) Validate

func (config *Config) Validate() error

Validate validates the config passed by the end-user. It returns an error if anything critical occured.

type Handler

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

Handler handles the MailChimp integration and gives access to related workflows and activities.

func New

func New(ctx context.Context, config Config) (*Handler, error)

New returns a new mailchimp Handler. It applies the configuration passed by the end-user.

func (*Handler) Close

func (h *Handler) Close() error

Close closes the integration and the specifications registered by the end-user. An error is returned in case the Handler has already been closed.

func (*Handler) Config added in v0.12.0

func (h *Handler) Config() integration.Config

Config returns the common integration's Config, which is the Config shared by all integrations.

func (*Handler) ConfigMap

func (h *Handler) ConfigMap() map[string]any

ConfigMap transforms the configuration to a map, including a "specifications" key with the configuration for each specification configured.

func (*Handler) Init

func (h *Handler) Init() error

Init initializes the integration and specifications the end-user wants to use. An error is returned in case the Handler has already been initialized.

func (*Handler) IsReady

func (h *Handler) IsReady() bool

IsReady returns if the integration is ready to be consumed by the end-user. The integration must be initialized and must not be closed. This also ensures the specifications leveraged are ready to be consumed. If one of them is not, the integration would not be ready.

func (*Handler) ListActivities

func (h *Handler) ListActivities() []string

ListActivities returns a sorted list of activities' name registered by the integration (and the specifications leveraged if applicable).

func (*Handler) ListWorkflows

func (h *Handler) ListWorkflows() []string

ListWorkflows returns a sorted list of workflows' name registered by the integration (and the specifications leveraged if applicable).

func (*Handler) RegisterWithAnalytics

func (h *Handler) RegisterWithAnalytics(w worker.Worker, config analytics.Config) error

RegisterWithAnalytics registers the analytics specification within the MailChimp integration. End-users will have access to workflows and activities exposed by the analytics specification.

func (*Handler) String

func (h *Handler) String() string

String returns the string representation of the integration.

type RegulationMode

type RegulationMode string

RegulationMode is a custom string type to be aware of the different regulation types that exist in the MailChimp API.

const RegulationArchive RegulationMode = "Archive"

RegulationArchive is used to archive a user from a list. The user will not be deleted and could be re-imported if desired.

const RegulationDelete RegulationMode = "Delete"

RegulationDelete is used to delete all personally identifiable information related to a user, and remove them from a list. This will make it impossible to re-import the user in the list.

Jump to

Keyboard shortcuts

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