Documentation ¶
Index ¶
- Constants
- Variables
- type APIError
- type Activity
- type ActivityGroup
- type AddActivitiesResponse
- type AddActivityResponse
- type AddObjectOption
- type AddReactionRequestObject
- type AddToManyRequest
- type AggregatedFeed
- func (f *AggregatedFeed) AddActivities(ctx context.Context, activities ...Activity) (*AddActivitiesResponse, error)
- func (f *AggregatedFeed) AddActivity(ctx context.Context, activity Activity) (*AddActivityResponse, error)
- func (f *AggregatedFeed) Follow(ctx context.Context, feed *FlatFeed, opts ...FollowFeedOption) (*BaseResponse, error)
- func (f *AggregatedFeed) GetActivities(ctx context.Context, opts ...GetActivitiesOption) (*AggregatedFeedResponse, error)
- func (f *AggregatedFeed) GetActivitiesWithRanking(ctx context.Context, ranking string, opts ...GetActivitiesOption) (*AggregatedFeedResponse, error)
- func (f *AggregatedFeed) GetEnrichedActivities(ctx context.Context, opts ...GetActivitiesOption) (*EnrichedAggregatedFeedResponse, error)
- func (f *AggregatedFeed) GetEnrichedActivitiesWithRanking(ctx context.Context, ranking string, opts ...GetActivitiesOption) (*EnrichedAggregatedFeedResponse, error)
- func (f *AggregatedFeed) GetFollowing(ctx context.Context, opts ...FollowingOption) (*FollowingResponse, error)
- func (f *AggregatedFeed) GetNextPageActivities(ctx context.Context, resp *AggregatedFeedResponse) (*AggregatedFeedResponse, error)
- func (f *AggregatedFeed) GetNextPageEnrichedActivities(ctx context.Context, resp *EnrichedAggregatedFeedResponse) (*EnrichedAggregatedFeedResponse, error)
- func (f *AggregatedFeed) ID() string
- func (f *AggregatedFeed) RealtimeToken(readonly bool) string
- func (f *AggregatedFeed) RemoveActivityByForeignID(ctx context.Context, foreignID string) (*RemoveActivityResponse, error)
- func (f *AggregatedFeed) RemoveActivityByID(ctx context.Context, id string) (*RemoveActivityResponse, error)
- func (f *AggregatedFeed) Slug() string
- func (f *AggregatedFeed) Unfollow(ctx context.Context, target Feed, opts ...UnfollowOption) (*BaseResponse, error)
- func (f *AggregatedFeed) UpdateToTargets(ctx context.Context, activity Activity, opts ...UpdateToTargetsOption) (*UpdateToTargetsResponse, error)
- func (f *AggregatedFeed) UserID() string
- type AggregatedFeedResponse
- type AnalyticsClient
- func (c *AnalyticsClient) RedirectAndTrack(url string, events ...map[string]interface{}) (string, error)
- func (c *AnalyticsClient) TrackEngagement(ctx context.Context, events ...EngagementEvent) (*BaseResponse, error)
- func (c *AnalyticsClient) TrackImpression(ctx context.Context, eventsData ImpressionEventsData) (*BaseResponse, error)
- type BaseResponse
- type Client
- func (c *Client) AddToMany(ctx context.Context, activity Activity, feeds ...Feed) error
- func (c *Client) AggregatedFeed(slug, userID string) (*AggregatedFeed, error)
- func (c *Client) Analytics() *AnalyticsClient
- func (c *Client) Collections() *CollectionsClient
- func (c *Client) CreateUserToken(userID string) (string, error)
- func (c *Client) CreateUserTokenWithClaims(userID string, claims map[string]interface{}) (string, error)
- func (c *Client) FlatFeed(slug, userID string) (*FlatFeed, error)
- func (c *Client) FollowMany(ctx context.Context, relationships []FollowRelationship, ...) error
- func (c *Client) GenericFeed(targetID string) (Feed, error)
- func (c *Client) GetActivitiesByForeignID(ctx context.Context, values ...ForeignIDTimePair) (*GetActivitiesResponse, error)
- func (c *Client) GetActivitiesByID(ctx context.Context, ids ...string) (*GetActivitiesResponse, error)
- func (c *Client) GetEnrichedActivitiesByForeignID(ctx context.Context, values []ForeignIDTimePair, opts ...GetActivitiesOption) (*GetEnrichedActivitiesResponse, error)
- func (c *Client) GetEnrichedActivitiesByID(ctx context.Context, ids []string, opts ...GetActivitiesOption) (*GetEnrichedActivitiesResponse, error)
- func (c *Client) NotificationFeed(slug, userID string) (*NotificationFeed, error)
- func (c *Client) PartialUpdateActivities(ctx context.Context, changesets ...UpdateActivityRequest) (*UpdateActivitiesResponse, error)
- func (c *Client) Personalization() *PersonalizationClient
- func (c *Client) Reactions() *ReactionsClient
- func (c *Client) UnfollowMany(ctx context.Context, relationships []UnfollowRelationship) error
- func (c *Client) UpdateActivities(ctx context.Context, activities ...Activity) (*BaseResponse, error)
- func (c *Client) UpdateActivityByForeignID(ctx context.Context, foreignID string, timestamp Time, ...) (*UpdateActivityResponse, error)
- func (c *Client) UpdateActivityByID(ctx context.Context, id string, set map[string]interface{}, unset []string) (*UpdateActivityResponse, error)
- func (c *Client) Users() *UsersClient
- func (c *Client) WithTimeout(timeout time.Duration) *Client
- type ClientOption
- type CollectionObject
- type CollectionObjectResponse
- type CollectionsClient
- func (c *CollectionsClient) Add(ctx context.Context, collection string, object CollectionObject, ...) (*CollectionObjectResponse, error)
- func (c *CollectionsClient) CreateReference(collection, id string) string
- func (c *CollectionsClient) Delete(ctx context.Context, collection, id string) (*BaseResponse, error)
- func (c *CollectionsClient) DeleteMany(ctx context.Context, collection string, ids ...string) (*BaseResponse, error)
- func (c *CollectionsClient) Get(ctx context.Context, collection, id string) (*CollectionObjectResponse, error)
- func (c *CollectionsClient) Select(ctx context.Context, collection string, ids ...string) (*GetCollectionResponse, error)
- func (c *CollectionsClient) Update(ctx context.Context, collection, id string, data map[string]interface{}) (*CollectionObjectResponse, error)
- func (c *CollectionsClient) Upsert(ctx context.Context, collection string, objects ...CollectionObject) (*BaseResponse, error)
- type Data
- type Duration
- type EngagementEvent
- func (e EngagementEvent) WithBoost(boost int) EngagementEvent
- func (e EngagementEvent) WithContent(foreignID string, content map[string]interface{}) EngagementEvent
- func (e EngagementEvent) WithFeatures(features ...EventFeature) EngagementEvent
- func (e EngagementEvent) WithFeedID(feedID string) EngagementEvent
- func (e EngagementEvent) WithForeignID(foreignID string) EngagementEvent
- func (e EngagementEvent) WithLabel(label string) EngagementEvent
- func (e EngagementEvent) WithLocation(location string) EngagementEvent
- func (e EngagementEvent) WithPosition(position int) EngagementEvent
- func (e EngagementEvent) WithTrackedAt(trackedAt time.Time) EngagementEvent
- func (e EngagementEvent) WithUserData(userData *UserData) EngagementEvent
- type EnrichedActivity
- type EnrichedActivityGroup
- type EnrichedAggregatedFeedResponse
- type EnrichedFlatFeedResponse
- type EnrichedNotificationFeedResponse
- type EnrichedNotificationFeedResult
- type EnrichedReaction
- type EventFeature
- type Feed
- type FilterReactionResponse
- type FilterReactionsAttribute
- type FilterReactionsOption
- func WithActivityData() FilterReactionsOption
- func WithChildrenUserID(userID string) FilterReactionsOption
- func WithIDGT(id string) FilterReactionsOption
- func WithIDGTE(id string) FilterReactionsOption
- func WithIDLT(id string) FilterReactionsOption
- func WithIDLTE(id string) FilterReactionsOption
- func WithLimit(limit int) FilterReactionsOption
- func WithOwnChildren() FilterReactionsOption
- func WithOwnUserID(userID string) FilterReactionsOption
- type FlatFeed
- func (f *FlatFeed) AddActivities(ctx context.Context, activities ...Activity) (*AddActivitiesResponse, error)
- func (f *FlatFeed) AddActivity(ctx context.Context, activity Activity) (*AddActivityResponse, error)
- func (f *FlatFeed) Follow(ctx context.Context, feed *FlatFeed, opts ...FollowFeedOption) (*BaseResponse, error)
- func (f *FlatFeed) FollowStats(ctx context.Context, opts ...FollowStatOption) (*FollowStatResponse, error)
- func (f *FlatFeed) GetActivities(ctx context.Context, opts ...GetActivitiesOption) (*FlatFeedResponse, error)
- func (f *FlatFeed) GetActivitiesWithRanking(ctx context.Context, ranking string, opts ...GetActivitiesOption) (*FlatFeedResponse, error)
- func (f *FlatFeed) GetEnrichedActivities(ctx context.Context, opts ...GetActivitiesOption) (*EnrichedFlatFeedResponse, error)
- func (f *FlatFeed) GetEnrichedActivitiesWithRanking(ctx context.Context, ranking string, opts ...GetActivitiesOption) (*EnrichedFlatFeedResponse, error)
- func (f *FlatFeed) GetFollowers(ctx context.Context, opts ...FollowersOption) (*FollowersResponse, error)
- func (f *FlatFeed) GetFollowing(ctx context.Context, opts ...FollowingOption) (*FollowingResponse, error)
- func (f *FlatFeed) GetNextPageActivities(ctx context.Context, resp *FlatFeedResponse) (*FlatFeedResponse, error)
- func (f *FlatFeed) GetNextPageEnrichedActivities(ctx context.Context, resp *EnrichedFlatFeedResponse) (*EnrichedFlatFeedResponse, error)
- func (f *FlatFeed) ID() string
- func (f *FlatFeed) RealtimeToken(readonly bool) string
- func (f *FlatFeed) RemoveActivityByForeignID(ctx context.Context, foreignID string) (*RemoveActivityResponse, error)
- func (f *FlatFeed) RemoveActivityByID(ctx context.Context, id string) (*RemoveActivityResponse, error)
- func (f *FlatFeed) Slug() string
- func (f *FlatFeed) Unfollow(ctx context.Context, target Feed, opts ...UnfollowOption) (*BaseResponse, error)
- func (f *FlatFeed) UpdateToTargets(ctx context.Context, activity Activity, opts ...UpdateToTargetsOption) (*UpdateToTargetsResponse, error)
- func (f *FlatFeed) UserID() string
- type FlatFeedResponse
- type FollowFeedOption
- type FollowManyOption
- type FollowRelationship
- type FollowRelationshipOption
- type FollowStatOption
- type FollowStatResponse
- type Follower
- type FollowersOption
- type FollowersResponse
- type FollowingOption
- type FollowingResponse
- type ForeignIDTimePair
- type GetActivitiesOption
- func WithActivitiesIDGT(id string) GetActivitiesOption
- func WithActivitiesIDGTE(id string) GetActivitiesOption
- func WithActivitiesIDLT(id string) GetActivitiesOption
- func WithActivitiesIDLTE(id string) GetActivitiesOption
- func WithActivitiesLimit(limit int) GetActivitiesOption
- func WithActivitiesOffset(offset int) GetActivitiesOption
- func WithCustomParam(name, value string) GetActivitiesOption
- func WithEnrichFirstReactions() GetActivitiesOption
- func WithEnrichOwnChildren() GetActivitiesOption
- func WithEnrichOwnChildrenKindsFilter(kinds ...string) GetActivitiesOption
- func WithEnrichOwnReactions() GetActivitiesOption
- func WithEnrichReactionCounts() GetActivitiesOption
- func WithEnrichReactionKindsFilter(kinds ...string) GetActivitiesOption
- func WithEnrichReactionsLimit(limit int) GetActivitiesOption
- func WithEnrichRecentReactions() GetActivitiesOption
- func WithEnrichRecentReactionsLimit(limit int) GetActivitiesOption
- func WithNotificationsMarkRead(all bool, activityIDs ...string) GetActivitiesOption
- func WithNotificationsMarkSeen(all bool, activityIDs ...string) GetActivitiesOption
- type GetActivitiesResponse
- type GetCollectionResponse
- type GetCollectionResponseObject
- type GetEnrichedActivitiesResponse
- type ImpressionEventsData
- func (d ImpressionEventsData) AddForeignIDs(foreignIDs ...string) ImpressionEventsData
- func (d ImpressionEventsData) WithFeatures(features ...EventFeature) ImpressionEventsData
- func (d ImpressionEventsData) WithFeedID(feedID string) ImpressionEventsData
- func (d ImpressionEventsData) WithForeignIDs(foreignIDs ...string) ImpressionEventsData
- func (d ImpressionEventsData) WithLocation(location string) ImpressionEventsData
- func (d ImpressionEventsData) WithPosition(position int) ImpressionEventsData
- func (d ImpressionEventsData) WithTrackedAt(trackedAt time.Time) ImpressionEventsData
- func (d ImpressionEventsData) WithUserData(userData *UserData) ImpressionEventsData
- type NotificationFeed
- func (f *NotificationFeed) AddActivities(ctx context.Context, activities ...Activity) (*AddActivitiesResponse, error)
- func (f *NotificationFeed) AddActivity(ctx context.Context, activity Activity) (*AddActivityResponse, error)
- func (f *NotificationFeed) Follow(ctx context.Context, feed *FlatFeed, opts ...FollowFeedOption) (*BaseResponse, error)
- func (f *NotificationFeed) GetActivities(ctx context.Context, opts ...GetActivitiesOption) (*NotificationFeedResponse, error)
- func (f *NotificationFeed) GetEnrichedActivities(ctx context.Context, opts ...GetActivitiesOption) (*EnrichedNotificationFeedResponse, error)
- func (f *NotificationFeed) GetFollowing(ctx context.Context, opts ...FollowingOption) (*FollowingResponse, error)
- func (f *NotificationFeed) GetNextPageActivities(ctx context.Context, resp *NotificationFeedResponse) (*NotificationFeedResponse, error)
- func (f *NotificationFeed) GetNextPageEnrichedActivities(ctx context.Context, resp *EnrichedNotificationFeedResponse) (*EnrichedNotificationFeedResponse, error)
- func (f *NotificationFeed) ID() string
- func (f *NotificationFeed) RealtimeToken(readonly bool) string
- func (f *NotificationFeed) RemoveActivityByForeignID(ctx context.Context, foreignID string) (*RemoveActivityResponse, error)
- func (f *NotificationFeed) RemoveActivityByID(ctx context.Context, id string) (*RemoveActivityResponse, error)
- func (f *NotificationFeed) Slug() string
- func (f *NotificationFeed) Unfollow(ctx context.Context, target Feed, opts ...UnfollowOption) (*BaseResponse, error)
- func (f *NotificationFeed) UpdateToTargets(ctx context.Context, activity Activity, opts ...UpdateToTargetsOption) (*UpdateToTargetsResponse, error)
- func (f *NotificationFeed) UserID() string
- type NotificationFeedResponse
- type NotificationFeedResult
- type PersonalizationClient
- func (c *PersonalizationClient) Delete(ctx context.Context, resource string, params map[string]interface{}) (*PersonalizationResponse, error)
- func (c *PersonalizationClient) Get(ctx context.Context, resource string, params map[string]interface{}) (*PersonalizationResponse, error)
- func (c *PersonalizationClient) Post(ctx context.Context, resource string, params, data map[string]interface{}) (*PersonalizationResponse, error)
- type PersonalizationResponse
- type Rate
- type Reaction
- type ReactionResponse
- type ReactionsClient
- func (c *ReactionsClient) Add(ctx context.Context, r AddReactionRequestObject) (*ReactionResponse, error)
- func (c *ReactionsClient) AddChild(ctx context.Context, parentID string, r AddReactionRequestObject) (*ReactionResponse, error)
- func (c *ReactionsClient) Delete(ctx context.Context, id string) (*ReactionResponse, error)
- func (c *ReactionsClient) Filter(ctx context.Context, attr FilterReactionsAttribute, ...) (*FilterReactionResponse, error)
- func (c *ReactionsClient) Get(ctx context.Context, id string) (*ReactionResponse, error)
- func (c *ReactionsClient) GetNextPageFilteredReactions(ctx context.Context, resp *FilterReactionResponse) (*FilterReactionResponse, error)
- func (c *ReactionsClient) Update(ctx context.Context, id string, data map[string]interface{}, ...) (*ReactionResponse, error)
- type RemoveActivityResponse
- type Requester
- type Time
- type UnfollowOption
- type UnfollowRelationship
- type UnfollowRelationshipOption
- type UpdateActivitiesResponse
- type UpdateActivityRequest
- type UpdateActivityResponse
- type UpdateToTargetsOption
- type UpdateToTargetsResponse
- type User
- type UserData
- type UserResponse
- type UsersClient
- func (c *UsersClient) Add(ctx context.Context, user User, getOrCreate bool) (*UserResponse, error)
- func (c *UsersClient) CreateReference(id string) string
- func (c *UsersClient) Delete(ctx context.Context, id string) (*BaseResponse, error)
- func (c *UsersClient) Get(ctx context.Context, id string) (*UserResponse, error)
- func (c *UsersClient) Update(ctx context.Context, id string, data map[string]interface{}) (*UserResponse, error)
Constants ¶
const ( HeaderRateLimit = "X-Ratelimit-Limit" HeaderRateRemaining = "X-Ratelimit-Remaining" HeaderRateReset = "X-Ratelimit-Reset" )
Rate limit headers
const ( // TimeLayout is the default time parse layout for Stream API JSON time fields TimeLayout = "2006-01-02T15:04:05.999999" // ReactionTimeLayout is the time parse layout for Stream Reaction API JSON time fields ReactionTimeLayout = "2006-01-02T15:04:05.999999Z07:00" )
Variables ¶
var ( // ErrMissingNextPage is returned when trying to read the next page of a response // which has an empty "next" field. ErrMissingNextPage = errors.New("request missing next page") // ErrInvalidNextPage is returned when trying to read the next page of a response // which has an invalid "next" field. ErrInvalidNextPage = errors.New("invalid format for Next field") )
var CreateCollectionReference = (&CollectionsClient{}).CreateReference
CreateCollectionReference is a convenience helper not to require a client.
var CreateUserReference = (&UsersClient{}).CreateReference
CreateUserReference is a convenience helper not to require a client.
var Version = "v7.1.0"
Version is the current release version for this client
Functions ¶
This section is empty.
Types ¶
type APIError ¶
type APIError struct { Code int `json:"code,omitempty"` Detail string `json:"detail,omitempty"` Duration Duration `json:"duration,omitempty"` Exception string `json:"exception,omitempty"` ExceptionFields map[string][]interface{} `json:"exception_fields,omitempty"` StatusCode int `json:"status_code,omitempty"` Rate *Rate `json:"-"` }
APIError is an error returned by Stream API when the request cannot be performed or errored server side.
func ToAPIError ¶
ToAPIError tries to cast the provided error to APIError type, returning the obtained APIError and whether the operation was successful.
type Activity ¶
type Activity struct { ID string `json:"id,omitempty"` Actor string `json:"actor,omitempty"` Verb string `json:"verb,omitempty"` Object string `json:"object,omitempty"` ForeignID string `json:"foreign_id,omitempty"` Target string `json:"target,omitempty"` Time Time `json:"time,omitempty"` Origin string `json:"origin,omitempty"` To []string `json:"to,omitempty"` Score float64 `json:"score,omitempty"` Extra map[string]interface{} `json:"-"` }
Activity is a Stream activity entity.
func (Activity) MarshalJSON ¶
MarshalJSON encodes the Activity to a valid JSON bytes slice. It's required because of the custom JSON fields and time formats.
func (*Activity) UnmarshalJSON ¶
UnmarshalJSON decodes the provided JSON payload into the Activity. It's required because of the custom JSON fields and time formats.
type ActivityGroup ¶
type ActivityGroup struct { Activities []Activity `json:"activities,omitempty"` // contains filtered or unexported fields }
ActivityGroup is a group of Activity obtained from aggregated feeds.
type AddActivitiesResponse ¶
type AddActivitiesResponse struct { Activities []Activity `json:"activities,omitempty"` // contains filtered or unexported fields }
AddActivitiesResponse is the API response obtained when adding activities to a feed.
type AddActivityResponse ¶
type AddActivityResponse struct {
// contains filtered or unexported fields
}
AddActivityResponse is the API response obtained when adding a single activity to a feed.
func (*AddActivityResponse) UnmarshalJSON ¶
UnmarshalJSON is the custom unmarshaler since activity custom unmarshaler can take extra values.
type AddObjectOption ¶
type AddObjectOption func(*addCollectionRequest)
AddObjectOption is an option usable by the Collections.Add method.
func WithUserID ¶
func WithUserID(userID string) AddObjectOption
WithUserID adds the user id to the Collections.Add request object.
type AddReactionRequestObject ¶
type AddReactionRequestObject struct { ID string `json:"id,omitempty"` Kind string `json:"kind"` ActivityID string `json:"activity_id"` UserID string `json:"user_id"` Data map[string]interface{} `json:"data,omitempty"` TargetFeeds []string `json:"target_feeds,omitempty"` TargetFeedsExtraData map[string]interface{} `json:"target_feeds_extra_data,omitempty"` ParentID string `json:"parent,omitempty"` }
AddReactionRequestObject is an object used only when calling the Add* reaction endpoints
type AddToManyRequest ¶
type AddToManyRequest struct { Activity Activity `json:"activity,omitempty"` FeedIDs []string `json:"feeds,omitempty"` }
AddToManyRequest is the API request body for adding an activity to multiple feeds at once.
type AggregatedFeed ¶
type AggregatedFeed struct {
// contains filtered or unexported fields
}
AggregatedFeed is a Stream aggregated feed, which contains activities grouped based on the grouping function defined on the dashboard.
func (*AggregatedFeed) AddActivities ¶
func (f *AggregatedFeed) AddActivities(ctx context.Context, activities ...Activity) (*AddActivitiesResponse, error)
AddActivities adds multiple activities to the feed.
func (*AggregatedFeed) AddActivity ¶
func (f *AggregatedFeed) AddActivity(ctx context.Context, activity Activity) (*AddActivityResponse, error)
AddActivity adds a new Activity to the feed.
func (*AggregatedFeed) Follow ¶
func (f *AggregatedFeed) Follow(ctx context.Context, feed *FlatFeed, opts ...FollowFeedOption) (*BaseResponse, error)
Follow follows the provided feed (which must be a FlatFeed), applying the provided FollowFeedOptions, if any.
func (*AggregatedFeed) GetActivities ¶
func (f *AggregatedFeed) GetActivities(ctx context.Context, opts ...GetActivitiesOption) (*AggregatedFeedResponse, error)
GetActivities requests and retrieves the activities and groups for the aggregated feed.
func (*AggregatedFeed) GetActivitiesWithRanking ¶
func (f *AggregatedFeed) GetActivitiesWithRanking(ctx context.Context, ranking string, opts ...GetActivitiesOption) (*AggregatedFeedResponse, error)
GetActivitiesWithRanking returns the activities and groups for the given AggregatedFeed, using the provided ranking method.
func (*AggregatedFeed) GetEnrichedActivities ¶
func (f *AggregatedFeed) GetEnrichedActivities(ctx context.Context, opts ...GetActivitiesOption) (*EnrichedAggregatedFeedResponse, error)
GetEnrichedActivities requests and retrieves the enriched activities and groups for the aggregated feed.
func (*AggregatedFeed) GetEnrichedActivitiesWithRanking ¶
func (f *AggregatedFeed) GetEnrichedActivitiesWithRanking(ctx context.Context, ranking string, opts ...GetActivitiesOption) (*EnrichedAggregatedFeedResponse, error)
GetEnrichedActivitiesWithRanking returns the enriched activities and groups for the given AggregatedFeed, using the provided ranking method.
func (*AggregatedFeed) GetFollowing ¶
func (f *AggregatedFeed) GetFollowing(ctx context.Context, opts ...FollowingOption) (*FollowingResponse, error)
GetFollowing returns the list of the feeds following the feed, applying the provided FollowingOptions, if any.
func (*AggregatedFeed) GetNextPageActivities ¶
func (f *AggregatedFeed) GetNextPageActivities(ctx context.Context, resp *AggregatedFeedResponse) (*AggregatedFeedResponse, error)
GetNextPageActivities returns the activities for the given AggregatedFeed at the "next" page of a previous *AggregatedFeedResponse response, if any.
func (*AggregatedFeed) GetNextPageEnrichedActivities ¶
func (f *AggregatedFeed) GetNextPageEnrichedActivities(ctx context.Context, resp *EnrichedAggregatedFeedResponse) (*EnrichedAggregatedFeedResponse, error)
GetNextPageEnrichedActivities returns the enriched activities for the given AggregatedFeed at the "next" page of a previous *EnrichedAggregatedFeedResponse response, if any.
func (*AggregatedFeed) ID ¶
func (f *AggregatedFeed) ID() string
ID returns the feed ID, as slug:user_id.
func (*AggregatedFeed) RealtimeToken ¶
RealtimeToken returns a token that can be used client-side to listen in real-time to feed changes.
func (*AggregatedFeed) RemoveActivityByForeignID ¶
func (f *AggregatedFeed) RemoveActivityByForeignID(ctx context.Context, foreignID string) (*RemoveActivityResponse, error)
RemoveActivityByForeignID removes an activity from the feed (if present), using the provided foreignID string argument as the foreign_id field of the activity.
func (*AggregatedFeed) RemoveActivityByID ¶
func (f *AggregatedFeed) RemoveActivityByID(ctx context.Context, id string) (*RemoveActivityResponse, error)
RemoveActivityByID removes an activity from the feed (if present), using the provided id string argument as the ID field of the activity.
func (*AggregatedFeed) Unfollow ¶
func (f *AggregatedFeed) Unfollow(ctx context.Context, target Feed, opts ...UnfollowOption) (*BaseResponse, error)
Unfollow unfollows the provided feed, applying the provided UnfollowOptions, if any.
func (*AggregatedFeed) UpdateToTargets ¶
func (f *AggregatedFeed) UpdateToTargets(ctx context.Context, activity Activity, opts ...UpdateToTargetsOption) (*UpdateToTargetsResponse, error)
UpdateToTargets updates the "to" targets for the provided activity, with the options passed as argument for replacing, adding, or removing to targets.
type AggregatedFeedResponse ¶
type AggregatedFeedResponse struct { Results []ActivityGroup `json:"results,omitempty"` // contains filtered or unexported fields }
AggregatedFeedResponse is the API response obtained when retrieving activities from an aggregated feed.
type AnalyticsClient ¶
type AnalyticsClient struct {
// contains filtered or unexported fields
}
AnalyticsClient is a specialized client used to send and track analytics events for enabled apps.
func (*AnalyticsClient) RedirectAndTrack ¶
func (c *AnalyticsClient) RedirectAndTrack(url string, events ...map[string]interface{}) (string, error)
RedirectAndTrack is used to send and track analytics ImpressionEvents. It tracks the events data (either EngagementEvents or ImpressionEvents) and redirects to the provided URL string.
func (*AnalyticsClient) TrackEngagement ¶
func (c *AnalyticsClient) TrackEngagement(ctx context.Context, events ...EngagementEvent) (*BaseResponse, error)
TrackEngagement is used to send and track analytics EngagementEvents.
func (*AnalyticsClient) TrackImpression ¶
func (c *AnalyticsClient) TrackImpression(ctx context.Context, eventsData ImpressionEventsData) (*BaseResponse, error)
TrackImpression is used to send and track analytics ImpressionEvents.
type BaseResponse ¶
type BaseResponse struct {
// contains filtered or unexported fields
}
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a Stream API client used for retrieving feeds and performing API calls.
func New ¶
func New(key, secret string, opts ...ClientOption) (*Client, error)
New builds a new Client with the provided API key and secret. It can be configured further by passing any number of ClientOption parameters.
func NewFromEnv ¶
func NewFromEnv(extraOptions ...ClientOption) (*Client, error)
NewFromEnv build a new Client using environment variables values, with possible values being STREAM_API_KEY, STREAM_API_SECRET, STREAM_API_REGION, and STREAM_API_VERSION. Additional options can still be provided as parameters.
func (*Client) AggregatedFeed ¶
func (c *Client) AggregatedFeed(slug, userID string) (*AggregatedFeed, error)
AggregatedFeed returns a new Aggregated Feed with the provided slug and userID.
func (*Client) Analytics ¶
func (c *Client) Analytics() *AnalyticsClient
Analytics returns a new AnalyticsClient sharing the base configuration of the original Client.
func (*Client) Collections ¶
func (c *Client) Collections() *CollectionsClient
Collections returns a new CollectionsClient.
func (*Client) CreateUserToken ¶ added in v7.0.1
func (*Client) CreateUserTokenWithClaims ¶ added in v7.0.1
func (*Client) FollowMany ¶
func (c *Client) FollowMany(ctx context.Context, relationships []FollowRelationship, opts ...FollowManyOption) error
FollowMany creates multiple follows at once.
func (*Client) GenericFeed ¶
GenericFeed returns a standard Feed implementation using the provided target id.
func (*Client) GetActivitiesByForeignID ¶
func (c *Client) GetActivitiesByForeignID(ctx context.Context, values ...ForeignIDTimePair) (*GetActivitiesResponse, error)
GetActivitiesByForeignID returns activities for the current app having the given foreign IDs and timestamps.
func (*Client) GetActivitiesByID ¶
func (c *Client) GetActivitiesByID(ctx context.Context, ids ...string) (*GetActivitiesResponse, error)
GetActivitiesByID returns activities for the current app having the given IDs.
func (*Client) GetEnrichedActivitiesByForeignID ¶
func (c *Client) GetEnrichedActivitiesByForeignID(ctx context.Context, values []ForeignIDTimePair, opts ...GetActivitiesOption) (*GetEnrichedActivitiesResponse, error)
GetEnrichedActivitiesByForeignID returns enriched activities for the current app having the given foreign IDs and timestamps.
func (*Client) GetEnrichedActivitiesByID ¶
func (c *Client) GetEnrichedActivitiesByID(ctx context.Context, ids []string, opts ...GetActivitiesOption) (*GetEnrichedActivitiesResponse, error)
GetEnrichedActivitiesByID returns enriched activities for the current app having the given IDs.
func (*Client) NotificationFeed ¶
func (c *Client) NotificationFeed(slug, userID string) (*NotificationFeed, error)
NotificationFeed returns a new Notification Feed with the provided slug and userID.
func (*Client) PartialUpdateActivities ¶
func (c *Client) PartialUpdateActivities(ctx context.Context, changesets ...UpdateActivityRequest) (*UpdateActivitiesResponse, error)
PartialUpdateActivities performs a partial update on multiple activities with the given set and unset operations specified by each changeset. This returns the affected activities.
func (*Client) Personalization ¶
func (c *Client) Personalization() *PersonalizationClient
Personalization returns a new PersonalizationClient.
func (*Client) Reactions ¶
func (c *Client) Reactions() *ReactionsClient
Reactions returns a new ReactionsClient.
func (*Client) UnfollowMany ¶
func (c *Client) UnfollowMany(ctx context.Context, relationships []UnfollowRelationship) error
UnfollowMany removes multiple follow relationships at once.
func (*Client) UpdateActivities ¶
func (c *Client) UpdateActivities(ctx context.Context, activities ...Activity) (*BaseResponse, error)
UpdateActivities updates existing activities.
func (*Client) UpdateActivityByForeignID ¶
func (c *Client) UpdateActivityByForeignID(ctx context.Context, foreignID string, timestamp Time, set map[string]interface{}, unset []string) (*UpdateActivityResponse, error)
UpdateActivityByForeignID performs a partial activity update with the given set and unset operations, returning the affected activity, on the activity with the given foreign ID and timestamp.
func (*Client) UpdateActivityByID ¶
func (c *Client) UpdateActivityByID(ctx context.Context, id string, set map[string]interface{}, unset []string) (*UpdateActivityResponse, error)
UpdateActivityByID performs a partial activity update with the given set and unset operations, returning the affected activity, on the activity with the given ID.
type ClientOption ¶
type ClientOption func(*Client)
ClientOption is a function used for adding specific configuration options to a Stream client.
func WithAPIRegion ¶
func WithAPIRegion(region string) ClientOption
WithAPIRegion sets the region for a given Client.
func WithAPIVersion ¶
func WithAPIVersion(version string) ClientOption
WithAPIVersion sets the version for a given Client.
func WithHTTPRequester ¶
func WithHTTPRequester(requester Requester) ClientOption
WithHTTPRequester sets the HTTP requester for a given client, used mostly for testing.
func WithTimeout ¶
func WithTimeout(dur time.Duration) ClientOption
WithTimeout sets the HTTP request timeout
type CollectionObject ¶
type CollectionObject struct { ID string `json:"id,omitempty"` Data map[string]interface{} `json:"data"` }
CollectionObject is a collection's object.
func (CollectionObject) MarshalJSON ¶
func (o CollectionObject) MarshalJSON() ([]byte, error)
MarshalJSON marshals the CollectionObject to a flat JSON object.
type CollectionObjectResponse ¶
type CollectionObjectResponse struct { CollectionObject `json:",inline"` // contains filtered or unexported fields }
type CollectionsClient ¶
type CollectionsClient struct {
// contains filtered or unexported fields
}
CollectionsClient is a specialized client used to interact with the Collection endpoints.
func (*CollectionsClient) Add ¶
func (c *CollectionsClient) Add(ctx context.Context, collection string, object CollectionObject, opts ...AddObjectOption) (*CollectionObjectResponse, error)
Add adds a single object to a collection.
func (*CollectionsClient) CreateReference ¶
func (c *CollectionsClient) CreateReference(collection, id string) string
CreateReference returns a new reference string in the form SO:<collection>:<id>.
func (*CollectionsClient) Delete ¶
func (c *CollectionsClient) Delete(ctx context.Context, collection, id string) (*BaseResponse, error)
Delete removes from a collection the object having the given ID.
func (*CollectionsClient) DeleteMany ¶
func (c *CollectionsClient) DeleteMany(ctx context.Context, collection string, ids ...string) (*BaseResponse, error)
DeleteMany removes from a collection the objects having the given IDs.
func (*CollectionsClient) Get ¶
func (c *CollectionsClient) Get(ctx context.Context, collection, id string) (*CollectionObjectResponse, error)
Get retrieves a collection object having the given ID.
func (*CollectionsClient) Select ¶
func (c *CollectionsClient) Select(ctx context.Context, collection string, ids ...string) (*GetCollectionResponse, error)
Select returns a list of CollectionObjects for the given collection name having the given IDs.
func (*CollectionsClient) Update ¶
func (c *CollectionsClient) Update(ctx context.Context, collection, id string, data map[string]interface{}) (*CollectionObjectResponse, error)
Update updates the given collection object's data.
func (*CollectionsClient) Upsert ¶
func (c *CollectionsClient) Upsert(ctx context.Context, collection string, objects ...CollectionObject) (*BaseResponse, error)
Upsert creates new or updates existing objects for the given collection's name.
type Data ¶
Data is a representation of an enriched activities enriched object, such as the the user or the object
func (Data) MarshalJSON ¶
MarshalJSON encodes data into json.
type Duration ¶
Duration wraps time.Duration, used because of JSON marshaling and unmarshaling.
func (Duration) MarshalJSON ¶
MarshalJSON marshals the Duration to a string like "30s".
func (*Duration) UnmarshalJSON ¶
UnmarshalJSON for Duration is required because of the incoming duration string.
type EngagementEvent ¶
type EngagementEvent map[string]interface{}
EngagementEvent represents an analytics engagement event. It must be populated with the available methods, or custom data can be arbitrarily added to it manually as key(string),value(interface{}) pairs.
func (EngagementEvent) WithBoost ¶
func (e EngagementEvent) WithBoost(boost int) EngagementEvent
WithBoost sets the event's boost field to the given int.
func (EngagementEvent) WithContent ¶
func (e EngagementEvent) WithContent(foreignID string, content map[string]interface{}) EngagementEvent
WithContent sets the event's content field to the given content map, and also sets the foreign_id field of such object to the given foreign ID string. If just the foreign ID is required to be sent, use the WithForeignID method.
func (EngagementEvent) WithFeatures ¶
func (e EngagementEvent) WithFeatures(features ...EventFeature) EngagementEvent
WithFeatures sets the event's features field to the given list of EventFeatures.
func (EngagementEvent) WithFeedID ¶
func (e EngagementEvent) WithFeedID(feedID string) EngagementEvent
WithFeedID sets the event's feed_id field to the given string.
func (EngagementEvent) WithForeignID ¶
func (e EngagementEvent) WithForeignID(foreignID string) EngagementEvent
WithForeignID sets the event's content field to the given foreign ID. If the content payload must be an object, use the WithContent method.
func (EngagementEvent) WithLabel ¶
func (e EngagementEvent) WithLabel(label string) EngagementEvent
WithLabel sets the event's label field to the given string.
func (EngagementEvent) WithLocation ¶
func (e EngagementEvent) WithLocation(location string) EngagementEvent
WithLocation sets the event's location field to the given string.
func (EngagementEvent) WithPosition ¶
func (e EngagementEvent) WithPosition(position int) EngagementEvent
WithPosition sets the event's position field to the given int.
func (EngagementEvent) WithTrackedAt ¶
func (e EngagementEvent) WithTrackedAt(trackedAt time.Time) EngagementEvent
WithTrackedAt sets the event's tracked_at field to the given time.Time.
func (EngagementEvent) WithUserData ¶
func (e EngagementEvent) WithUserData(userData *UserData) EngagementEvent
WithUserData sets the event's user_data field to the given UserData's value.
type EnrichedActivity ¶
type EnrichedActivity struct { ID string `json:"id,omitempty"` Actor Data `json:"actor,omitempty"` Verb string `json:"verb,omitempty"` Object Data `json:"object,omitempty"` ForeignID string `json:"foreign_id,omitempty"` Target Data `json:"target,omitempty"` Time Time `json:"time,omitempty"` Origin Data `json:"origin,omitempty"` To []string `json:"to,omitempty"` Score float64 `json:"score,omitempty"` ReactionCounts map[string]int `json:"reaction_counts,omitempty"` OwnReactions map[string][]*EnrichedReaction `json:"own_reactions,omitempty"` LatestReactions map[string][]*EnrichedReaction `json:"latest_reactions,omitempty"` Extra map[string]interface{} `json:"-"` }
EnrichedActivity is an enriched Stream activity entity.
func (EnrichedActivity) MarshalJSON ¶
func (a EnrichedActivity) MarshalJSON() ([]byte, error)
MarshalJSON encodes the EnrichedActivity to a valid JSON bytes slice. It's required because of the custom JSON fields and time formats.
func (*EnrichedActivity) UnmarshalJSON ¶
func (a *EnrichedActivity) UnmarshalJSON(b []byte) error
UnmarshalJSON decodes the provided JSON payload into the EnrichedActivity. It's required because of the custom JSON fields and time formats.
type EnrichedActivityGroup ¶
type EnrichedActivityGroup struct { Activities []EnrichedActivity `json:"activities,omitempty"` Score float64 `json:"score,omitempty"` // contains filtered or unexported fields }
EnrichedActivityGroup is a group of enriched Activities obtained from aggregated feeds.
type EnrichedAggregatedFeedResponse ¶
type EnrichedAggregatedFeedResponse struct { Results []EnrichedActivityGroup `json:"results,omitempty"` // contains filtered or unexported fields }
EnrichedAggregatedFeedResponse is the API response obtained when retrieving enriched activities from an aggregated feed.
type EnrichedFlatFeedResponse ¶
type EnrichedFlatFeedResponse struct { Results []EnrichedActivity `json:"results,omitempty"` // contains filtered or unexported fields }
EnrichedFlatFeedResponse is the API response obtained when retrieving enriched activities from a flat feed.
type EnrichedNotificationFeedResponse ¶
type EnrichedNotificationFeedResponse struct { Results []EnrichedNotificationFeedResult `json:"results"` // contains filtered or unexported fields }
EnrichedNotificationFeedResponse is the API response obtained when retrieving enriched activities from a notification feed.
type EnrichedNotificationFeedResult ¶
type EnrichedNotificationFeedResult struct { Activities []EnrichedActivity `json:"activities"` // contains filtered or unexported fields }
EnrichedNotificationFeedResult is a notification-feed specific response, containing the list of enriched activities in the group, plus the extra fields about the group read+seen status.
type EnrichedReaction ¶
type EnrichedReaction struct { ID string `json:"id,omitempty"` Kind string `json:"kind"` ActivityID string `json:"activity_id"` UserID string `json:"user_id"` Data map[string]interface{} `json:"data,omitempty"` TargetFeeds []string `json:"target_feeds,omitempty"` ParentID string `json:"parent,omitempty"` ChildrenReactions map[string][]*EnrichedReaction `json:"latest_children,omitempty"` OwnChildren map[string][]*EnrichedReaction `json:"own_children,omitempty"` ChildrenCounters map[string]int `json:"children_counts,omitempty"` User Data `json:"user,omitempty"` CreatedAt Time `json:"created_at,omitempty"` UpdatedAt Time `json:"updated_at,omitempty"` }
EnrichedReaction is an enriched Stream reaction entity.
type EventFeature ¶
EventFeature is a single analytics event feature, a pair of group and value strings.
func NewEventFeature ¶
func NewEventFeature(group, value string) EventFeature
NewEventFeature returns a new EventFeature from the given group and value params.
type Feed ¶
type Feed interface { ID() string Slug() string UserID() string AddActivity(context.Context, Activity) (*AddActivityResponse, error) AddActivities(context.Context, ...Activity) (*AddActivitiesResponse, error) RemoveActivityByID(context.Context, string) (*RemoveActivityResponse, error) RemoveActivityByForeignID(context.Context, string) (*RemoveActivityResponse, error) Follow(context.Context, *FlatFeed, ...FollowFeedOption) (*BaseResponse, error) GetFollowing(context.Context, ...FollowingOption) (*FollowingResponse, error) Unfollow(context.Context, Feed, ...UnfollowOption) (*BaseResponse, error) UpdateToTargets(context.Context, Activity, ...UpdateToTargetsOption) (*UpdateToTargetsResponse, error) RealtimeToken(bool) string }
Feed is a generic Stream feed, exporting the generic functions common to any Stream feed.
type FilterReactionResponse ¶
type FilterReactionResponse struct { Results []Reaction `json:"results"` Activity map[string]interface{} `json:"activity"` // contains filtered or unexported fields }
FilterReactionResponse is the response received from the ReactionsClient.Filter call.
type FilterReactionsAttribute ¶
type FilterReactionsAttribute func() string
FilterReactionsAttribute specifies the filtering method of Reactions.Filter()
func ByActivityID ¶
func ByActivityID(activityID string) FilterReactionsAttribute
ByActivityID will filter reactions based on the specified activity id.
func ByReactionID ¶
func ByReactionID(reactionID string) FilterReactionsAttribute
ByReactionID will filter reactions based on the specified parent reaction id.
func ByUserID ¶
func ByUserID(userID string) FilterReactionsAttribute
ByUserID will filter reactions based on the specified user id.
func (FilterReactionsAttribute) ByKind ¶
func (a FilterReactionsAttribute) ByKind(kind string) FilterReactionsAttribute
ByKind filters reactions by kind, after the initial desired filtering method was applied.
type FilterReactionsOption ¶
type FilterReactionsOption struct {
// contains filtered or unexported fields
}
FilterReactionsOption is an option used by Reactions.Filter() to support pagination.
func WithActivityData ¶
func WithActivityData() FilterReactionsOption
WithActivityData will enable returning the activity data when filtering reactions by activity_id.
func WithChildrenUserID ¶
func WithChildrenUserID(userID string) FilterReactionsOption
WithChildrenUserID will enable further filtering own children by the given user id. It's different than FilterReactionsAttribute user id.
func WithIDGT ¶
func WithIDGT(id string) FilterReactionsOption
WithIDGT adds the id_gt parameter to API calls, used when retrieving paginated reactions.
func WithIDGTE ¶
func WithIDGTE(id string) FilterReactionsOption
WithIDGTE adds the id_gte parameter to API calls, used when retrieving paginated reactions, returning activities with ID greater or equal than the provided id.
func WithIDLT ¶
func WithIDLT(id string) FilterReactionsOption
WithIDLT adds the id_lt parameter to API calls, used when retrieving paginated reactions.
func WithIDLTE ¶
func WithIDLTE(id string) FilterReactionsOption
WithIDLTE adds the id_lte parameter to API calls, used when retrieving paginated reactions.
func WithLimit ¶
func WithLimit(limit int) FilterReactionsOption
WithLimit adds the limit parameter to the Reactions.Filter() call.
func WithOwnChildren ¶
func WithOwnChildren() FilterReactionsOption
WithOwnChildren will enable returning the children reactions when filtering reactions by parent ID.
func WithOwnUserID ¶
func WithOwnUserID(userID string) FilterReactionsOption
WithOwnUserID will enable further filtering by the given user id. It's similar to FilterReactionsAttribute user id.
type FlatFeed ¶
type FlatFeed struct {
// contains filtered or unexported fields
}
FlatFeed is a Stream flat feed.
func (*FlatFeed) AddActivities ¶
func (f *FlatFeed) AddActivities(ctx context.Context, activities ...Activity) (*AddActivitiesResponse, error)
AddActivities adds multiple activities to the feed.
func (*FlatFeed) AddActivity ¶
func (f *FlatFeed) AddActivity(ctx context.Context, activity Activity) (*AddActivityResponse, error)
AddActivity adds a new Activity to the feed.
func (*FlatFeed) Follow ¶
func (f *FlatFeed) Follow(ctx context.Context, feed *FlatFeed, opts ...FollowFeedOption) (*BaseResponse, error)
Follow follows the provided feed (which must be a FlatFeed), applying the provided FollowFeedOptions, if any.
func (*FlatFeed) FollowStats ¶
func (f *FlatFeed) FollowStats(ctx context.Context, opts ...FollowStatOption) (*FollowStatResponse, error)
FollowStats returns the follower/following counts of the feed. If options are given, counts are filtered for the given slugs. Counts will be capped at 10K, if higher counts are needed and contact to support.
func (*FlatFeed) GetActivities ¶
func (f *FlatFeed) GetActivities(ctx context.Context, opts ...GetActivitiesOption) (*FlatFeedResponse, error)
GetActivities returns the activities for the given FlatFeed, filtering results with the provided GetActivitiesOption parameters.
func (*FlatFeed) GetActivitiesWithRanking ¶
func (f *FlatFeed) GetActivitiesWithRanking(ctx context.Context, ranking string, opts ...GetActivitiesOption) (*FlatFeedResponse, error)
GetActivitiesWithRanking returns the activities (filtered) for the given FlatFeed, using the provided ranking method.
func (*FlatFeed) GetEnrichedActivities ¶
func (f *FlatFeed) GetEnrichedActivities(ctx context.Context, opts ...GetActivitiesOption) (*EnrichedFlatFeedResponse, error)
GetEnrichedActivities returns the enriched activities for the given FlatFeed, filtering results with the provided GetActivitiesOption parameters.
func (*FlatFeed) GetEnrichedActivitiesWithRanking ¶
func (f *FlatFeed) GetEnrichedActivitiesWithRanking(ctx context.Context, ranking string, opts ...GetActivitiesOption) (*EnrichedFlatFeedResponse, error)
GetEnrichedActivitiesWithRanking returns the enriched activities (filtered) for the given FlatFeed, using the provided ranking method.
func (*FlatFeed) GetFollowers ¶
func (f *FlatFeed) GetFollowers(ctx context.Context, opts ...FollowersOption) (*FollowersResponse, error)
GetFollowers returns the feeds following the given FlatFeed.
func (*FlatFeed) GetFollowing ¶
func (f *FlatFeed) GetFollowing(ctx context.Context, opts ...FollowingOption) (*FollowingResponse, error)
GetFollowing returns the list of the feeds following the feed, applying the provided FollowingOptions, if any.
func (*FlatFeed) GetNextPageActivities ¶
func (f *FlatFeed) GetNextPageActivities(ctx context.Context, resp *FlatFeedResponse) (*FlatFeedResponse, error)
GetNextPageActivities returns the activities for the given FlatFeed at the "next" page of a previous *FlatFeedResponse response, if any.
func (*FlatFeed) GetNextPageEnrichedActivities ¶
func (f *FlatFeed) GetNextPageEnrichedActivities(ctx context.Context, resp *EnrichedFlatFeedResponse) (*EnrichedFlatFeedResponse, error)
GetNextPageEnrichedActivities returns the enriched activities for the given FlatFeed at the "next" page of a previous *EnrichedFlatFeedResponse response, if any.
func (*FlatFeed) RealtimeToken ¶
RealtimeToken returns a token that can be used client-side to listen in real-time to feed changes.
func (*FlatFeed) RemoveActivityByForeignID ¶
func (f *FlatFeed) RemoveActivityByForeignID(ctx context.Context, foreignID string) (*RemoveActivityResponse, error)
RemoveActivityByForeignID removes an activity from the feed (if present), using the provided foreignID string argument as the foreign_id field of the activity.
func (*FlatFeed) RemoveActivityByID ¶
func (f *FlatFeed) RemoveActivityByID(ctx context.Context, id string) (*RemoveActivityResponse, error)
RemoveActivityByID removes an activity from the feed (if present), using the provided id string argument as the ID field of the activity.
func (*FlatFeed) Unfollow ¶
func (f *FlatFeed) Unfollow(ctx context.Context, target Feed, opts ...UnfollowOption) (*BaseResponse, error)
Unfollow unfollows the provided feed, applying the provided UnfollowOptions, if any.
func (*FlatFeed) UpdateToTargets ¶
func (f *FlatFeed) UpdateToTargets(ctx context.Context, activity Activity, opts ...UpdateToTargetsOption) (*UpdateToTargetsResponse, error)
UpdateToTargets updates the "to" targets for the provided activity, with the options passed as argument for replacing, adding, or removing to targets.
type FlatFeedResponse ¶
type FlatFeedResponse struct { Results []Activity `json:"results,omitempty"` // contains filtered or unexported fields }
FlatFeedResponse is the API response obtained when retrieving activities from a flat feed.
type FollowFeedOption ¶
type FollowFeedOption func(*followFeedOptions)
FollowFeedOption is a function used to customize FollowFeed API calls.
func WithFollowFeedActivityCopyLimit ¶
func WithFollowFeedActivityCopyLimit(activityCopyLimit int) FollowFeedOption
WithFollowFeedActivityCopyLimit sets the activity copy threshold for Follow Feed API calls.
type FollowManyOption ¶
type FollowManyOption struct {
// contains filtered or unexported fields
}
FollowManyOption is an option to customize behavior of Follow Many calls.
func WithFollowManyActivityCopyLimit ¶
func WithFollowManyActivityCopyLimit(activityCopyLimit int) FollowManyOption
WithFollowManyActivityCopyLimit sets how many activities should be copied from the target feed.
type FollowRelationship ¶
type FollowRelationship struct { Source string `json:"source,omitempty"` Target string `json:"target,omitempty"` ActivityCopyLimit *int `json:"activity_copy_limit,omitempty"` }
FollowRelationship represents a follow relationship between a source ("follower") and a target ("following"), used for FollowMany requests.
func NewFollowRelationship ¶
func NewFollowRelationship(source, target Feed, opts ...FollowRelationshipOption) FollowRelationship
NewFollowRelationship is a helper for creating a FollowRelationship from the source ("follower") and target ("following") feeds.
type FollowRelationshipOption ¶
type FollowRelationshipOption func(r *FollowRelationship)
FollowRelationshipOption customizes a FollowRelationship.
func WithFollowRelationshipActivityCopyLimit ¶
func WithFollowRelationshipActivityCopyLimit(activityCopyLimit int) FollowRelationshipOption
WithFollowRelationshipActivityCopyLimit sets the ActivityCopyLimit field for a given FollowRelationship.
type FollowStatOption ¶
type FollowStatOption struct {
// contains filtered or unexported fields
}
FollowStatOption is an option used to customize FollowStats API calls.
func WithFollowerSlugs ¶
func WithFollowerSlugs(slugs ...string) FollowStatOption
WithFollowerSlugs sets the follower feed slugs for filtering in counting.
func WithFollowingSlugs ¶
func WithFollowingSlugs(slugs ...string) FollowStatOption
WithFollowerSlugs sets the following feed slugs for filtering in counting.
type FollowStatResponse ¶
type FollowStatResponse struct {
// contains filtered or unexported fields
}
FollowStatResponse is the result of follow stats endpoint.
type Follower ¶
type Follower struct { FeedID string `json:"feed_id,omitempty"` TargetID string `json:"target_id,omitempty"` }
Follower is the representation of a feed following another feed.
type FollowersOption ¶
type FollowersOption struct {
// contains filtered or unexported fields
}
FollowersOption is an option usable by followers feed methods.
func WithFollowersLimit ¶
func WithFollowersLimit(limit int) FollowersOption
WithFollowersLimit limits the number of followers in the response to the provided limit.
func WithFollowersOffset ¶
func WithFollowersOffset(offset int) FollowersOption
WithFollowersOffset returns followers starting from the given offset.
type FollowersResponse ¶
type FollowersResponse struct {
// contains filtered or unexported fields
}
FollowersResponse is the API response obtained when retrieving followers from a feed.
type FollowingOption ¶
type FollowingOption struct {
// contains filtered or unexported fields
}
FollowingOption is an option usable by following feed methods.
func WithFollowingFilter ¶
func WithFollowingFilter(ids ...string) FollowingOption
WithFollowingFilter adds the filter parameter to API calls, used when retrieving following feeds, allowing the check whether certain feeds are being followed.
func WithFollowingLimit ¶
func WithFollowingLimit(limit int) FollowingOption
WithFollowingLimit limits the number of followings in the response to the provided limit.
func WithFollowingOffset ¶
func WithFollowingOffset(offset int) FollowingOption
WithFollowingOffset returns followings starting from the given offset.
type FollowingResponse ¶
type FollowingResponse struct {
// contains filtered or unexported fields
}
FollowingResponse is the API response obtained when retrieving following feeds from a feed.
type ForeignIDTimePair ¶
ForeignIDTimePair couples an activity's foreignID and timestamp.
func NewForeignIDTimePair ¶
func NewForeignIDTimePair(foreignID string, timestamp Time) ForeignIDTimePair
NewForeignIDTimePair creates a new ForeignIDTimePair with the given foreign ID and timestamp.
type GetActivitiesOption ¶
type GetActivitiesOption struct {
// contains filtered or unexported fields
}
GetActivitiesOption is an option usable by GetActivities methods for flat and aggregated feeds.
func WithActivitiesIDGT ¶
func WithActivitiesIDGT(id string) GetActivitiesOption
WithActivitiesIDGT adds the id_gt parameter to API calls, used when retrieving paginated activities from feeds, returning activities with ID greater than the provided id.
func WithActivitiesIDGTE ¶
func WithActivitiesIDGTE(id string) GetActivitiesOption
WithActivitiesIDGTE adds the id_gte parameter to API calls, used when retrieving paginated activities from feeds, returning activities with ID greater or equal than the provided id.
func WithActivitiesIDLT ¶
func WithActivitiesIDLT(id string) GetActivitiesOption
WithActivitiesIDLT adds the id_lt parameter to API calls, used when retrieving paginated activities from feeds, returning activities with ID lesser than the provided id.
func WithActivitiesIDLTE ¶
func WithActivitiesIDLTE(id string) GetActivitiesOption
WithActivitiesIDLTE adds the id_lte parameter to API calls, used when retrieving paginated activities from feeds, returning activities with ID lesser or equal than the provided id.
func WithActivitiesLimit ¶
func WithActivitiesLimit(limit int) GetActivitiesOption
WithActivitiesLimit adds the limit parameter to API calls which support it, limiting the number of results in the response to the provided limit threshold. Supported operations: retrieve activities, retrieve followers, retrieve following.
func WithActivitiesOffset ¶
func WithActivitiesOffset(offset int) GetActivitiesOption
WithActivitiesOffset adds the offset parameter to API calls which support it, getting results starting from the provided offset index. Supported operations: retrieve activities, retrieve followers, retrieve following.
func WithCustomParam ¶
func WithCustomParam(name, value string) GetActivitiesOption
WithCustomParam adds a custom parameter to the read request.
func WithEnrichFirstReactions ¶
func WithEnrichFirstReactions() GetActivitiesOption
WithEnrichRecentReactions enriches the activities with the first reactions to them.
func WithEnrichOwnChildren ¶
func WithEnrichOwnChildren() GetActivitiesOption
WithEnrichOwnChildren enriches the activities with the children reactions.
func WithEnrichOwnChildrenKindsFilter ¶
func WithEnrichOwnChildrenKindsFilter(kinds ...string) GetActivitiesOption
WithEnrichOwnChildrenKindsFilter filters the reactions by the specified kinds for own children
func WithEnrichOwnReactions ¶
func WithEnrichOwnReactions() GetActivitiesOption
WithEnrichOwnReactions enriches the activities with the reactions to them.
func WithEnrichReactionCounts ¶
func WithEnrichReactionCounts() GetActivitiesOption
WithEnrichReactionCounts enriches the activities with the reaction counts.
func WithEnrichReactionKindsFilter ¶
func WithEnrichReactionKindsFilter(kinds ...string) GetActivitiesOption
WithEnrichReactionKindsFilter filters the reactions by the specified kinds
func WithEnrichReactionsLimit ¶
func WithEnrichReactionsLimit(limit int) GetActivitiesOption
WithEnrichReactionsLimit specifies how many reactions to include in the enrichment.
func WithEnrichRecentReactions ¶
func WithEnrichRecentReactions() GetActivitiesOption
WithEnrichRecentReactions enriches the activities with the recent reactions to them.
func WithEnrichRecentReactionsLimit ¶
func WithEnrichRecentReactionsLimit(limit int) GetActivitiesOption
WithEnrichRecentReactionsLimit specifies how many recent reactions to include in the enrichment.
func WithNotificationsMarkRead ¶
func WithNotificationsMarkRead(all bool, activityIDs ...string) GetActivitiesOption
WithNotificationsMarkRead marks as read the given activity ids in a notification feed. If the all parameter is true, every activity in the feed is marked as read.
func WithNotificationsMarkSeen ¶
func WithNotificationsMarkSeen(all bool, activityIDs ...string) GetActivitiesOption
WithNotificationsMarkSeen marks as seen the given activity ids in a notification feed. If the all parameter is true, every activity in the feed is marked as seen.
type GetActivitiesResponse ¶
type GetActivitiesResponse struct { Results []Activity `json:"results"` // contains filtered or unexported fields }
GetActivitiesResponse contains a slice of Activity returned by GetActivitiesByID and GetActivitiesByForeignID requests.
type GetCollectionResponse ¶
type GetCollectionResponse struct { Objects []GetCollectionResponseObject // contains filtered or unexported fields }
GetCollectionResponse represents a single response coming from a Collection Select request after a CollectionsClient.Select call.
type GetCollectionResponseObject ¶
type GetCollectionResponseObject struct { ForeignID string `json:"foreign_id"` Data map[string]interface{} `json:"data"` }
GetCollectionResponseObject represents a single response coming from a Collection Get request after a CollectionsClient.Get call.
type GetEnrichedActivitiesResponse ¶
type GetEnrichedActivitiesResponse struct { Results []EnrichedActivity `json:"results"` // contains filtered or unexported fields }
GetEnrichedActivitiesResponse contains a slice of enriched Activity returned by GetEnrichedActivitiesByID and GetEnrichedActivitiesByForeignID requests.
type ImpressionEventsData ¶
type ImpressionEventsData map[string]interface{}
ImpressionEventsData represents the payload of an arbitrary number of impression events. It must be populated with the available methods, or custom data can be arbitrarily added to it manually as key(string),value(interface{}) pairs.
func (ImpressionEventsData) AddForeignIDs ¶
func (d ImpressionEventsData) AddForeignIDs(foreignIDs ...string) ImpressionEventsData
AddForeignIDs adds the given foreign ID strings to the content_list field, creating it if it doesn't exist.
func (ImpressionEventsData) WithFeatures ¶
func (d ImpressionEventsData) WithFeatures(features ...EventFeature) ImpressionEventsData
WithFeatures sets the features field to the given list of EventFeatures.
func (ImpressionEventsData) WithFeedID ¶
func (d ImpressionEventsData) WithFeedID(feedID string) ImpressionEventsData
WithFeedID sets the feed_id field to the given string.
func (ImpressionEventsData) WithForeignIDs ¶
func (d ImpressionEventsData) WithForeignIDs(foreignIDs ...string) ImpressionEventsData
WithForeignIDs sets the content_list field to the given list of strings.
func (ImpressionEventsData) WithLocation ¶
func (d ImpressionEventsData) WithLocation(location string) ImpressionEventsData
WithLocation sets the location field to the given string.
func (ImpressionEventsData) WithPosition ¶
func (d ImpressionEventsData) WithPosition(position int) ImpressionEventsData
WithPosition sets the position field to the given int.
func (ImpressionEventsData) WithTrackedAt ¶
func (d ImpressionEventsData) WithTrackedAt(trackedAt time.Time) ImpressionEventsData
WithTrackedAt sets the tracked_at field to the given time.Time.
func (ImpressionEventsData) WithUserData ¶
func (d ImpressionEventsData) WithUserData(userData *UserData) ImpressionEventsData
WithUserData sets the user_data field to the given UserData value.
type NotificationFeed ¶
type NotificationFeed struct {
// contains filtered or unexported fields
}
NotificationFeed is a Stream notification feed.
func (*NotificationFeed) AddActivities ¶
func (f *NotificationFeed) AddActivities(ctx context.Context, activities ...Activity) (*AddActivitiesResponse, error)
AddActivities adds multiple activities to the feed.
func (*NotificationFeed) AddActivity ¶
func (f *NotificationFeed) AddActivity(ctx context.Context, activity Activity) (*AddActivityResponse, error)
AddActivity adds a new Activity to the feed.
func (*NotificationFeed) Follow ¶
func (f *NotificationFeed) Follow(ctx context.Context, feed *FlatFeed, opts ...FollowFeedOption) (*BaseResponse, error)
Follow follows the provided feed (which must be a FlatFeed), applying the provided FollowFeedOptions, if any.
func (*NotificationFeed) GetActivities ¶
func (f *NotificationFeed) GetActivities(ctx context.Context, opts ...GetActivitiesOption) (*NotificationFeedResponse, error)
GetActivities returns the activities for the given NotificationFeed, filtering results with the provided GetActivitiesOption parameters.
func (*NotificationFeed) GetEnrichedActivities ¶
func (f *NotificationFeed) GetEnrichedActivities(ctx context.Context, opts ...GetActivitiesOption) (*EnrichedNotificationFeedResponse, error)
GetEnrichedActivities returns the enriched activities for the given NotificationFeed, filtering results with the provided GetActivitiesOption parameters.
func (*NotificationFeed) GetFollowing ¶
func (f *NotificationFeed) GetFollowing(ctx context.Context, opts ...FollowingOption) (*FollowingResponse, error)
GetFollowing returns the list of the feeds following the feed, applying the provided FollowingOptions, if any.
func (*NotificationFeed) GetNextPageActivities ¶
func (f *NotificationFeed) GetNextPageActivities(ctx context.Context, resp *NotificationFeedResponse) (*NotificationFeedResponse, error)
GetNextPageActivities returns the activities for the given NotificationFeed at the "next" page of a previous *NotificationFeedResponse response, if any.
func (*NotificationFeed) GetNextPageEnrichedActivities ¶
func (f *NotificationFeed) GetNextPageEnrichedActivities(ctx context.Context, resp *EnrichedNotificationFeedResponse) (*EnrichedNotificationFeedResponse, error)
GetNextPageEnrichedActivities returns the enriched activities for the given NotificationFeed at the "next" page of a previous *EnrichedNotificationFeedResponse response, if any.
func (*NotificationFeed) ID ¶
func (f *NotificationFeed) ID() string
ID returns the feed ID, as slug:user_id.
func (*NotificationFeed) RealtimeToken ¶
RealtimeToken returns a token that can be used client-side to listen in real-time to feed changes.
func (*NotificationFeed) RemoveActivityByForeignID ¶
func (f *NotificationFeed) RemoveActivityByForeignID(ctx context.Context, foreignID string) (*RemoveActivityResponse, error)
RemoveActivityByForeignID removes an activity from the feed (if present), using the provided foreignID string argument as the foreign_id field of the activity.
func (*NotificationFeed) RemoveActivityByID ¶
func (f *NotificationFeed) RemoveActivityByID(ctx context.Context, id string) (*RemoveActivityResponse, error)
RemoveActivityByID removes an activity from the feed (if present), using the provided id string argument as the ID field of the activity.
func (*NotificationFeed) Slug ¶
func (f *NotificationFeed) Slug() string
Slug returns the feed's slug.
func (*NotificationFeed) Unfollow ¶
func (f *NotificationFeed) Unfollow(ctx context.Context, target Feed, opts ...UnfollowOption) (*BaseResponse, error)
Unfollow unfollows the provided feed, applying the provided UnfollowOptions, if any.
func (*NotificationFeed) UpdateToTargets ¶
func (f *NotificationFeed) UpdateToTargets(ctx context.Context, activity Activity, opts ...UpdateToTargetsOption) (*UpdateToTargetsResponse, error)
UpdateToTargets updates the "to" targets for the provided activity, with the options passed as argument for replacing, adding, or removing to targets.
type NotificationFeedResponse ¶
type NotificationFeedResponse struct { Results []NotificationFeedResult `json:"results"` // contains filtered or unexported fields }
NotificationFeedResponse is the API response obtained when retrieving activities from a notification feed.
type NotificationFeedResult ¶
type NotificationFeedResult struct { Activities []Activity `json:"activities"` // contains filtered or unexported fields }
NotificationFeedResult is a notification-feed specific response, containing the list of activities in the group, plus the extra fields about the group read+seen status.
type PersonalizationClient ¶
type PersonalizationClient struct {
// contains filtered or unexported fields
}
PersonalizationClient is a specialized client for personalization features.
func (*PersonalizationClient) Delete ¶
func (c *PersonalizationClient) Delete(ctx context.Context, resource string, params map[string]interface{}) (*PersonalizationResponse, error)
Delete removes data from the given resource, adding the given params to the request.
func (*PersonalizationClient) Get ¶
func (c *PersonalizationClient) Get(ctx context.Context, resource string, params map[string]interface{}) (*PersonalizationResponse, error)
Get obtains a PersonalizationResponse for the given resource and params.
func (*PersonalizationClient) Post ¶
func (c *PersonalizationClient) Post(ctx context.Context, resource string, params, data map[string]interface{}) (*PersonalizationResponse, error)
Post sends data to the given resource, adding the given params to the request.
type PersonalizationResponse ¶
type PersonalizationResponse struct { AppID int `json:"app_id"` Duration Duration `json:"duration"` Rate Rate `json:"ratelimit"` Limit int `json:"limit"` Offset int `json:"offset"` Version string `json:"version"` Next string `json:"next"` Results []map[string]interface{} `json:"results"` // contains filtered or unexported fields }
PersonalizationResponse is a generic response from the personalization endpoints obtained after a PersonalizationClient.Get call. Common JSON fields are directly available as struct fields, while non-standard JSON fields can be retrieved using the Extra() method.
func (*PersonalizationResponse) Extra ¶
func (r *PersonalizationResponse) Extra() map[string]interface{}
Extra returns the non-common response fields as a map[string]interface{}.
func (*PersonalizationResponse) UnmarshalJSON ¶
func (r *PersonalizationResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON for PersonalizationResponse is required because of the incoming duration string, and for storing non-standard fields without losing their values, so they can be retrieved later on with the Extra() function.
type Rate ¶
type Rate struct { // Reset is the time for limit to reset Reset Time // Limit is the existing limit for the resource Limit int // Remaining is the remaining possible calls Remaining int }
Rate is the information to be filled if a rate limited response
type Reaction ¶
type Reaction struct { AddReactionRequestObject ChildrenReactions map[string][]*Reaction `json:"latest_children,omitempty"` OwnChildren map[string][]*Reaction `json:"own_children,omitempty"` ChildrenCounters map[string]interface{} `json:"children_counts,omitempty"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` }
Reaction is a reaction retrieved from the API.
type ReactionResponse ¶
type ReactionResponse struct { Reaction `json:",inline"` // contains filtered or unexported fields }
type ReactionsClient ¶
type ReactionsClient struct {
// contains filtered or unexported fields
}
ReactionsClient is a specialized client used to interact with the Reactions endpoints.
func (*ReactionsClient) Add ¶
func (c *ReactionsClient) Add(ctx context.Context, r AddReactionRequestObject) (*ReactionResponse, error)
Add adds a reaction.
func (*ReactionsClient) AddChild ¶
func (c *ReactionsClient) AddChild(ctx context.Context, parentID string, r AddReactionRequestObject) (*ReactionResponse, error)
AddChild adds a child reaction to the provided parent.
func (*ReactionsClient) Delete ¶
func (c *ReactionsClient) Delete(ctx context.Context, id string) (*ReactionResponse, error)
Delete deletes a reaction having the given id.
func (*ReactionsClient) Filter ¶
func (c *ReactionsClient) Filter(ctx context.Context, attr FilterReactionsAttribute, opts ...FilterReactionsOption) (*FilterReactionResponse, error)
Filter lists reactions based on the provided criteria and with the specified pagination.
func (*ReactionsClient) Get ¶
func (c *ReactionsClient) Get(ctx context.Context, id string) (*ReactionResponse, error)
Get retrieves a reaction having the given id.
func (*ReactionsClient) GetNextPageFilteredReactions ¶
func (c *ReactionsClient) GetNextPageFilteredReactions(ctx context.Context, resp *FilterReactionResponse) (*FilterReactionResponse, error)
GetNextPageFilteredReactions returns the reactions at the "next" page of a previous *FilterReactionResponse response, if any.
func (*ReactionsClient) Update ¶
func (c *ReactionsClient) Update(ctx context.Context, id string, data map[string]interface{}, targetFeeds []string) (*ReactionResponse, error)
Update updates the reaction's data and/or target feeds.
type RemoveActivityResponse ¶
type RemoveActivityResponse struct { Removed string `json:"removed"` // contains filtered or unexported fields }
RemoveActivityResponse is the API response obtained when removing an activity from a feed.
type Time ¶
Time wraps time.Time, used because of custom API time format in JSON marshaling and unmarshaling.
func (Time) MarshalJSON ¶
MarshalJSON marshals Time into a string formatted with the TimeLayout format.
func (*Time) UnmarshalJSON ¶
UnmarshalJSON for Time is required because of the incoming time string format.
type UnfollowOption ¶
type UnfollowOption struct {
// contains filtered or unexported fields
}
UnfollowOption is an option usable with the Unfollow feed method.
func WithUnfollowKeepHistory ¶
func WithUnfollowKeepHistory(keepHistory bool) UnfollowOption
WithUnfollowKeepHistory adds the keep_history parameter to API calls, used to keep history when unfollowing feeds, rather than purging it (default behavior). If the keepHistory parameter is false, nothing happens.
type UnfollowRelationship ¶
type UnfollowRelationship struct { Source string `json:"source"` Target string `json:"target"` KeepHistory bool `json:"keep_history"` }
UnfollowRelationship represents a single follow relationship to remove, used for UnfollowMany requests.
func NewUnfollowRelationship ¶
func NewUnfollowRelationship(source, target Feed, opts ...UnfollowRelationshipOption) UnfollowRelationship
NewUnfollowRelationship is a helper for creating an UnfollowRelationship from the source ("follower") and target ("following") feeds.
type UnfollowRelationshipOption ¶
type UnfollowRelationshipOption func(r *UnfollowRelationship)
UnfollowRelationshipOption customizes an UnfollowRelationship.
func WithUnfollowRelationshipKeepHistory ¶
func WithUnfollowRelationshipKeepHistory() UnfollowRelationshipOption
WithUnfollowRelationshipKeepHistory sets the KeepHistory field for a given UnfollowRelationship.
type UpdateActivitiesResponse ¶
type UpdateActivitiesResponse struct { Activities []*Activity `json:"activities"` // contains filtered or unexported fields }
type UpdateActivityRequest ¶
type UpdateActivityRequest struct { ID *string `json:"id,omitempty"` ForeignID *string `json:"foreign_id,omitempty"` Time *Time `json:"time,omitempty"` Set map[string]interface{} `json:"set,omitempty"` Unset []string `json:"unset,omitempty"` }
UpdateActivityRequest is the API request body for partially updating an activity.
func NewUpdateActivityRequestByForeignID ¶
func NewUpdateActivityRequestByForeignID(foreignID string, timestamp Time, set map[string]interface{}, unset []string) UpdateActivityRequest
NewUpdateActivityRequestByForeignID creates a new UpdateActivityRequest to be used by PartialUpdateActivities
func NewUpdateActivityRequestByID ¶
func NewUpdateActivityRequestByID(id string, set map[string]interface{}, unset []string) UpdateActivityRequest
NewUpdateActivityRequestByID creates a new UpdateActivityRequest to be used by PartialUpdateActivities
type UpdateActivityResponse ¶
type UpdateActivityResponse struct {
// contains filtered or unexported fields
}
UpdateActivityResponse is the response returned by the UpdateActivityByID and UpdateActivityByForeignID methods.
func (*UpdateActivityResponse) UnmarshalJSON ¶
UnmarshalJSON is the custom unmarshaler since activity custom unmarshaler can take extra values.
type UpdateToTargetsOption ¶
type UpdateToTargetsOption func(*updateToTargetsRequest)
UpdateToTargetsOption determines what operations perform during an UpdateToTargets API call.
func WithToTargetsAdd ¶
func WithToTargetsAdd(targets ...string) UpdateToTargetsOption
WithToTargetsAdd sets the add to targets, adding them to the activity's existing ones.
func WithToTargetsNew ¶
func WithToTargetsNew(targets ...string) UpdateToTargetsOption
WithToTargetsNew sets the new to targets, replacing all the existing ones. It cannot be used in combination with any other UpdateToTargetsOption.
func WithToTargetsRemove ¶
func WithToTargetsRemove(targets ...string) UpdateToTargetsOption
WithToTargetsRemove sets the remove to targets, removing them from activity's the existing ones.
type UpdateToTargetsResponse ¶
type UpdateToTargetsResponse struct { Activity map[string]interface{} `json:"activity"` Added []string `json:"added"` Removed []string `json:"removed"` // contains filtered or unexported fields }
UpdateToTargetsResponse is the response for updating to targets of an activity.
type UserData ¶
type UserData struct {
// contains filtered or unexported fields
}
UserData represents an analytics event user data field, which can either be a single string/integer representing the user's ID, or a dictionary made of an ID (string or integer) and a string alias. For example NewUserData().Int(123).Alias("john") will result in a dictionary like {"user_data":{"id": 123, "alias": "john"}}, while NewUserData().String("bob") will result in {"user_data": "bob"}.
func NewUserData ¶
func NewUserData() *UserData
NewUserData initializes an empty UserData type, which must be populated using the String, Int, and/or Alias methods.
type UserResponse ¶
type UserResponse struct { User `json:",inline"` // contains filtered or unexported fields }
type UsersClient ¶
type UsersClient struct {
// contains filtered or unexported fields
}
UsersClient is a specialized client used to interact with the Users endpoints.
func (*UsersClient) Add ¶
func (c *UsersClient) Add(ctx context.Context, user User, getOrCreate bool) (*UserResponse, error)
Add adds a new user with the specified id and optional extra data.
func (*UsersClient) CreateReference ¶
func (c *UsersClient) CreateReference(id string) string
CreateReference returns a new reference string in the form SU:<id>.
func (*UsersClient) Delete ¶
func (c *UsersClient) Delete(ctx context.Context, id string) (*BaseResponse, error)
Delete deletes a user having the given id.
func (*UsersClient) Get ¶
func (c *UsersClient) Get(ctx context.Context, id string) (*UserResponse, error)
Get retrieves a user having the given id.
func (*UsersClient) Update ¶
func (c *UsersClient) Update(ctx context.Context, id string, data map[string]interface{}) (*UserResponse, error)
Update updates the user's data.