Class: Courier::Resources::Lists::Subscriptions
- Inherits:
-
Object
- Object
- Courier::Resources::Lists::Subscriptions
- 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
-
#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.
-
#initialize(client:) ⇒ Subscriptions
constructor
private
A new instance of Subscriptions.
-
#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.
-
#subscribe(list_id, recipients:, request_options: {}) ⇒ nil
Subscribes the users to the list, overwriting existing subscriptions.
-
#subscribe_user(user_id, list_id:, preferences: nil, request_options: {}) ⇒ nil
Some parameter documentations has been truncated, see Models::Lists::SubscriptionSubscribeUserParams for more details.
-
#unsubscribe_user(user_id, list_id:, request_options: {}) ⇒ nil
Removes one user's subscription to a list, addressed by list id and user id.
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.
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.
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, = 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: ) 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.
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, = 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: ) 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.
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, = Courier::Lists::SubscriptionSubscribeParams.dump_request(params) @client.request( method: :put, path: ["lists/%1$s/subscriptions", list_id], body: parsed, model: NilClass, 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.
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, = 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: ) 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.
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, = 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: ) end |