Class: Courier::Resources::Lists::Subscriptions

Inherits:
Object
  • Object
show all
Defined in:
lib/courier/resources/lists/subscriptions.rb,
sig/courier/resources/lists/subscriptions.rbs

Overview

Manage static groups of users that you subscribe explicitly, and send to them by list id or list pattern.

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Subscriptions

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Subscriptions.

Parameters:



160
161
162
# File 'lib/courier/resources/lists/subscriptions.rb', line 160

def initialize(client:)
  @client = client
end

Instance Method Details

#add(list_id, recipients:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {}) ⇒ nil

Some parameter documentations has been truncated, see Models::Lists::SubscriptionAddParams for more details.

Subscribes additional users to the list, without modifying existing subscriptions. If the list does not exist, it will be automatically created.

Parameters:

  • list_id (String)

    Path param: A unique identifier representing the list you wish to retrieve.

  • recipients (Array<Courier::Models::PutSubscriptionsRecipient>)

    Body param

  • idempotency_key (String)

    Header param: A unique key that makes this request idempotent. If Courier receiv

  • x_idempotency_expiration (String)

    Header param: How long the idempotency key remains valid, as a Unix epoch timest

  • request_options (Courier::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

  • (nil)

See Also:



56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/courier/resources/lists/subscriptions.rb', line 56

def add(list_id, params)
  parsed, options = Courier::Lists::SubscriptionAddParams.dump_request(params)
  header_params =
    {idempotency_key: "idempotency-key", x_idempotency_expiration: "x-idempotency-expiration"}
  @client.request(
    method: :post,
    path: ["lists/%1$s/subscriptions", list_id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: NilClass,
    options: options
  )
end

#list(list_id, cursor: nil, request_options: {}) ⇒ Courier::Models::Lists::SubscriptionListResponse

Returns the users subscribed to a list with paging, each with the preferences recorded for that subscription.

Parameters:

  • list_id (String)

    A unique identifier representing the list you wish to retrieve.

  • cursor (String, nil)

    A unique identifier that allows for fetching the next set of list subscriptions

  • request_options (Courier::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/courier/resources/lists/subscriptions.rb', line 23

def list(list_id, params = {})
  parsed, options = Courier::Lists::SubscriptionListParams.dump_request(params)
  query = Courier::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: ["lists/%1$s/subscriptions", list_id],
    query: query,
    model: Courier::Models::Lists::SubscriptionListResponse,
    options: options
  )
end

#subscribe(list_id, recipients:, request_options: {}) ⇒ nil

Subscribes the users to the list, overwriting existing subscriptions. If the list does not exist, it will be automatically created.

Parameters:

Returns:

  • (nil)

See Also:



84
85
86
87
88
89
90
91
92
93
# File 'lib/courier/resources/lists/subscriptions.rb', line 84

def subscribe(list_id, params)
  parsed, options = Courier::Lists::SubscriptionSubscribeParams.dump_request(params)
  @client.request(
    method: :put,
    path: ["lists/%1$s/subscriptions", list_id],
    body: parsed,
    model: NilClass,
    options: options
  )
end

#subscribe_user(user_id, list_id:, preferences: nil, request_options: {}) ⇒ nil

Some parameter documentations has been truncated, see Models::Lists::SubscriptionSubscribeUserParams for more details.

Subscribes one user to a list, creating the list if it does not yet exist. Optional preferences apply to this subscription only.

Parameters:

  • user_id (String)

    Path param: A unique identifier representing the recipient associated with the l

  • list_id (String)

    Path param: A unique identifier representing the list you wish to retrieve.

  • preferences (Courier::Models::RecipientPreferences, nil)

    Body param

  • request_options (Courier::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

  • (nil)

See Also:



114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/courier/resources/lists/subscriptions.rb', line 114

def subscribe_user(user_id, params)
  parsed, options = Courier::Lists::SubscriptionSubscribeUserParams.dump_request(params)
  list_id =
    parsed.delete(:list_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :put,
    path: ["lists/%1$s/subscriptions/%2$s", list_id, user_id],
    body: parsed,
    model: NilClass,
    options: options
  )
end

#unsubscribe_user(user_id, list_id:, request_options: {}) ⇒ nil

Removes one user's subscription to a list, addressed by list id and user id. The user's profile and other subscriptions are separate resources.

Parameters:

  • user_id (String)

    A unique identifier representing the recipient associated with the list

  • list_id (String)

    A unique identifier representing the list you wish to retrieve.

  • request_options (Courier::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

  • (nil)

See Also:



143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/courier/resources/lists/subscriptions.rb', line 143

def unsubscribe_user(user_id, params)
  parsed, options = Courier::Lists::SubscriptionUnsubscribeUserParams.dump_request(params)
  list_id =
    parsed.delete(:list_id) do
      raise ArgumentError.new("missing required path argument #{_1}")
    end
  @client.request(
    method: :delete,
    path: ["lists/%1$s/subscriptions/%2$s", list_id, user_id],
    model: NilClass,
    options: options
  )
end