Class: Courier::Resources::Journeys
- Inherits:
-
Object
- Object
- Courier::Resources::Journeys
- Defined in:
- lib/courier/resources/journeys.rb,
lib/courier/resources/journeys/runs.rb,
lib/courier/resources/journeys/templates.rb,
sig/courier/resources/journeys.rbs,
sig/courier/resources/journeys/runs.rbs,
sig/courier/resources/journeys/templates.rbs
Overview
Build, version, publish, invoke, and cancel multi-step notification workflows, along with the templates scoped to them.
Defined Under Namespace
Instance Attribute Summary collapse
-
#runs ⇒ Courier::Resources::Journeys::Runs
readonly
Build, version, publish, invoke, and cancel multi-step notification workflows, along with the templates scoped to them.
-
#templates ⇒ Courier::Resources::Journeys::Templates
readonly
Build, version, publish, invoke, and cancel multi-step notification workflows, along with the templates scoped to them.
Instance Method Summary collapse
-
#archive(template_id, request_options: {}) ⇒ nil
Archives a journey so it can no longer be invoked.
-
#cancel(cancel_journey_request:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {}) ⇒ Courier::Models::CancelJourneyResponse::TokenBranch, Courier::Models::CancelJourneyResponse::RunIDBranch
Some parameter documentations has been truncated, see Models::JourneyCancelParams for more details.
-
#create(name:, nodes:, enabled: nil, state: nil, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {}) ⇒ Courier::Models::JourneyResponse
Some parameter documentations has been truncated, see Models::JourneyCreateParams for more details.
-
#initialize(client:) ⇒ Journeys
constructor
private
A new instance of Journeys.
-
#invoke(template_id, data: nil, profile: nil, user_id: nil, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {}) ⇒ Courier::Models::JourneysInvokeResponse
Some parameter documentations has been truncated, see Models::JourneyInvokeParams for more details.
-
#list(cursor: nil, version: nil, request_options: {}) ⇒ Courier::Models::JourneysListResponse
Some parameter documentations has been truncated, see Models::JourneyListParams for more details.
-
#list_versions(template_id, request_options: {}) ⇒ Courier::Models::JourneyVersionsListResponse
Lists a journey's published versions, most recent first, so you have a version id to roll back to.
-
#publish(template_id, version: nil, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {}) ⇒ Courier::Models::JourneyResponse
Some parameter documentations has been truncated, see Models::JourneyPublishParams for more details.
-
#replace(template_id, name:, nodes:, enabled: nil, state: nil, request_options: {}) ⇒ Courier::Models::JourneyResponse
Replaces a journey's working draft, leaving the published version live until you publish.
-
#retrieve(template_id, version: nil, request_options: {}) ⇒ Courier::Models::JourneyResponse
Fetch a journey by id.
Constructor Details
#initialize(client:) ⇒ Journeys
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 Journeys.
296 297 298 299 300 |
# File 'lib/courier/resources/journeys.rb', line 296 def initialize(client:) @client = client @templates = Courier::Resources::Journeys::Templates.new(client: client) @runs = Courier::Resources::Journeys::Runs.new(client: client) end |
Instance Attribute Details
#runs ⇒ Courier::Resources::Journeys::Runs (readonly)
Build, version, publish, invoke, and cancel multi-step notification workflows, along with the templates scoped to them.
16 17 18 |
# File 'lib/courier/resources/journeys.rb', line 16 def runs @runs end |
#templates ⇒ Courier::Resources::Journeys::Templates (readonly)
Build, version, publish, invoke, and cancel multi-step notification workflows, along with the templates scoped to them.
11 12 13 |
# File 'lib/courier/resources/journeys.rb', line 11 def templates @templates end |
Instance Method Details
#archive(template_id, request_options: {}) ⇒ nil
Archives a journey so it can no longer be invoked. Runs already in flight continue to completion, so archiving never strands a user mid-sequence.
124 125 126 127 128 129 130 131 |
# File 'lib/courier/resources/journeys.rb', line 124 def archive(template_id, params = {}) @client.request( method: :delete, path: ["journeys/%1$s", template_id], model: NilClass, options: params[:request_options] ) end |
#cancel(cancel_journey_request:, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {}) ⇒ Courier::Models::CancelJourneyResponse::TokenBranch, Courier::Models::CancelJourneyResponse::RunIDBranch
Some parameter documentations has been truncated, see Models::JourneyCancelParams for more details.
Cancels in-flight journey runs, either every run sharing a cancelation token or one run by id. Use it to stop a sequence when the event resolves.
152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/courier/resources/journeys.rb', line 152 def cancel(params) parsed, = Courier::JourneyCancelParams.dump_request(params) @client.request( method: :post, path: "journeys/cancel", headers: parsed.except(:cancel_journey_request).transform_keys( idempotency_key: "idempotency-key", x_idempotency_expiration: "x-idempotency-expiration" ), body: parsed[:cancel_journey_request], model: Courier::CancelJourneyResponse, options: ) end |
#create(name:, nodes:, enabled: nil, state: nil, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {}) ⇒ Courier::Models::JourneyResponse
Some parameter documentations has been truncated, see Models::JourneyCreateParams for more details.
Creates a journey from a set of nodes, in draft state unless you pass a published state. Send nodes cannot be included until their templates exist.
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/courier/resources/journeys.rb', line 43 def create(params) parsed, = Courier::JourneyCreateParams.dump_request(params) header_params = {idempotency_key: "idempotency-key", x_idempotency_expiration: "x-idempotency-expiration"} @client.request( method: :post, path: "journeys", headers: parsed.slice(*header_params.keys).transform_keys(header_params), body: parsed.except(*header_params.keys), model: Courier::JourneyResponse, options: ) end |
#invoke(template_id, data: nil, profile: nil, user_id: nil, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {}) ⇒ Courier::Models::JourneysInvokeResponse
Some parameter documentations has been truncated, see Models::JourneyInvokeParams for more details.
Starts a journey run for one user and returns a runId. Runs execute asynchronously, so the response arrives before any message is sent.
192 193 194 195 196 197 198 199 200 201 202 203 204 |
# File 'lib/courier/resources/journeys.rb', line 192 def invoke(template_id, params = {}) parsed, = Courier::JourneyInvokeParams.dump_request(params) header_params = {idempotency_key: "idempotency-key", x_idempotency_expiration: "x-idempotency-expiration"} @client.request( method: :post, path: ["journeys/%1$s/invoke", template_id], headers: parsed.slice(*header_params.keys).transform_keys(header_params), body: parsed.except(*header_params.keys), model: Courier::JourneysInvokeResponse, options: ) end |
#list(cursor: nil, version: nil, request_options: {}) ⇒ Courier::Models::JourneysListResponse
Some parameter documentations has been truncated, see Models::JourneyListParams for more details.
Lists the workspace's journeys, each carrying a name, state, and enabled flag. Paged by cursor.
100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/courier/resources/journeys.rb', line 100 def list(params = {}) parsed, = Courier::JourneyListParams.dump_request(params) query = Courier::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "journeys", query: query, model: Courier::JourneysListResponse, options: ) end |
#list_versions(template_id, request_options: {}) ⇒ Courier::Models::JourneyVersionsListResponse
Lists a journey's published versions, most recent first, so you have a version id to roll back to. Paged by cursor.
218 219 220 221 222 223 224 225 |
# File 'lib/courier/resources/journeys.rb', line 218 def list_versions(template_id, params = {}) @client.request( method: :get, path: ["journeys/%1$s/versions", template_id], model: Courier::JourneyVersionsListResponse, options: params[:request_options] ) end |
#publish(template_id, version: nil, idempotency_key: nil, x_idempotency_expiration: nil, request_options: {}) ⇒ Courier::Models::JourneyResponse
Some parameter documentations has been truncated, see Models::JourneyPublishParams for more details.
Publishes a journey's current draft as a new version, making it live for new runs. Pass a version instead to roll back to an earlier one.
248 249 250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/courier/resources/journeys.rb', line 248 def publish(template_id, params = {}) parsed, = Courier::JourneyPublishParams.dump_request(params) header_params = {idempotency_key: "idempotency-key", x_idempotency_expiration: "x-idempotency-expiration"} @client.request( method: :post, path: ["journeys/%1$s/publish", template_id], headers: parsed.slice(*header_params.keys).transform_keys(header_params), body: parsed.except(*header_params.keys), model: Courier::JourneyResponse, options: ) end |
#replace(template_id, name:, nodes:, enabled: nil, state: nil, request_options: {}) ⇒ Courier::Models::JourneyResponse
Replaces a journey's working draft, leaving the published version live until you publish. Reach for this when editing a journey already running.
282 283 284 285 286 287 288 289 290 291 |
# File 'lib/courier/resources/journeys.rb', line 282 def replace(template_id, params) parsed, = Courier::JourneyReplaceParams.dump_request(params) @client.request( method: :put, path: ["journeys/%1$s", template_id], body: parsed, model: Courier::JourneyResponse, options: ) end |
#retrieve(template_id, version: nil, request_options: {}) ⇒ Courier::Models::JourneyResponse
Fetch a journey by id. Pass ?version=draft (default published) to retrieve
the working draft, or ?version=vN to retrieve a historical version.
71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/courier/resources/journeys.rb', line 71 def retrieve(template_id, params = {}) parsed, = Courier::JourneyRetrieveParams.dump_request(params) query = Courier::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: ["journeys/%1$s", template_id], query: query, model: Courier::JourneyResponse, options: ) end |