Class: Dodopayments::Resources::Webhooks
- Inherits:
-
Object
- Object
- Dodopayments::Resources::Webhooks
- Defined in:
- lib/dodopayments/resources/webhooks.rb,
lib/dodopayments/resources/webhooks/headers.rb
Defined Under Namespace
Classes: Headers
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#create(url:, description: nil, disabled: nil, filter_types: nil, headers: nil, idempotency_key: nil, metadata: nil, rate_limit: nil, request_options: {}) ⇒ Dodopayments::Models::WebhookDetails
Some parameter documentations has been truncated, see Models::WebhookCreateParams for more details.
-
#delete(webhook_id, request_options: {}) ⇒ nil
Delete a webhook by id.
-
#initialize(client:) ⇒ Webhooks
constructor
private
A new instance of Webhooks.
-
#list(iterator: nil, limit: nil, request_options: {}) ⇒ Dodopayments::Internal::CursorPagePagination<Dodopayments::Models::WebhookDetails>
List all webhooks.
-
#retrieve(webhook_id, request_options: {}) ⇒ Dodopayments::Models::WebhookDetails
Get a webhook by id.
-
#retrieve_secret(webhook_id, request_options: {}) ⇒ Dodopayments::Models::WebhookRetrieveSecretResponse
Get webhook secret by id.
- #unsafe_unwrap(payload) ⇒ Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, ...
- #unwrap(payload, headers:, key: @client.webhook_key) ⇒ Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, ...
-
#update(webhook_id, description: nil, disabled: nil, filter_types: nil, metadata: nil, rate_limit: nil, url: nil, request_options: {}) ⇒ Dodopayments::Models::WebhookDetails
Some parameter documentations has been truncated, see Models::WebhookUpdateParams for more details.
Constructor Details
#initialize(client:) ⇒ Webhooks
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 Webhooks.
197 198 199 200 |
# File 'lib/dodopayments/resources/webhooks.rb', line 197 def initialize(client:) @client = client @headers = Dodopayments::Resources::Webhooks::Headers.new(client: client) end |
Instance Attribute Details
#headers ⇒ Dodopayments::Resources::Webhooks::Headers (readonly)
7 8 9 |
# File 'lib/dodopayments/resources/webhooks.rb', line 7 def headers @headers end |
Instance Method Details
#create(url:, description: nil, disabled: nil, filter_types: nil, headers: nil, idempotency_key: nil, metadata: nil, rate_limit: nil, request_options: {}) ⇒ Dodopayments::Models::WebhookDetails
Some parameter documentations has been truncated, see Models::WebhookCreateParams for more details.
Create a new webhook
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/dodopayments/resources/webhooks.rb', line 37 def create(params) parsed, = Dodopayments::WebhookCreateParams.dump_request(params) @client.request( method: :post, path: "webhooks", body: parsed, model: Dodopayments::WebhookDetails, options: ) end |
#delete(webhook_id, request_options: {}) ⇒ nil
Delete a webhook by id
140 141 142 143 144 145 146 147 |
# File 'lib/dodopayments/resources/webhooks.rb', line 140 def delete(webhook_id, params = {}) @client.request( method: :delete, path: ["webhooks/%1$s", webhook_id], model: NilClass, options: params[:request_options] ) end |
#list(iterator: nil, limit: nil, request_options: {}) ⇒ Dodopayments::Internal::CursorPagePagination<Dodopayments::Models::WebhookDetails>
List all webhooks
117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/dodopayments/resources/webhooks.rb', line 117 def list(params = {}) parsed, = Dodopayments::WebhookListParams.dump_request(params) query = Dodopayments::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "webhooks", query: query, page: Dodopayments::Internal::CursorPagePagination, model: Dodopayments::WebhookDetails, options: ) end |
#retrieve(webhook_id, request_options: {}) ⇒ Dodopayments::Models::WebhookDetails
Get a webhook by id
58 59 60 61 62 63 64 65 |
# File 'lib/dodopayments/resources/webhooks.rb', line 58 def retrieve(webhook_id, params = {}) @client.request( method: :get, path: ["webhooks/%1$s", webhook_id], model: Dodopayments::WebhookDetails, options: params[:request_options] ) end |
#retrieve_secret(webhook_id, request_options: {}) ⇒ Dodopayments::Models::WebhookRetrieveSecretResponse
Get webhook secret by id
159 160 161 162 163 164 165 166 |
# File 'lib/dodopayments/resources/webhooks.rb', line 159 def retrieve_secret(webhook_id, params = {}) @client.request( method: :get, path: ["webhooks/%1$s/secret", webhook_id], model: Dodopayments::Models::WebhookRetrieveSecretResponse, options: params[:request_options] ) end |
#unsafe_unwrap(payload) ⇒ Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, ...
171 172 173 174 |
# File 'lib/dodopayments/resources/webhooks.rb', line 171 def unsafe_unwrap(payload) parsed = JSON.parse(payload, symbolize_names: true) Dodopayments::Internal::Type::Converter.coerce(Dodopayments::Models::UnsafeUnwrapWebhookEvent, parsed) end |
#unwrap(payload, headers:, key: @client.webhook_key) ⇒ Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, ...
183 184 185 186 187 188 189 190 191 192 |
# File 'lib/dodopayments/resources/webhooks.rb', line 183 def unwrap(payload, headers:, key: @client.webhook_key) if key.nil? raise ArgumentError.new("Cannot verify a webhook without a key on either the client's webhook_key or passed in as an argument") end ::StandardWebhooks::Webhook.new(key).verify(payload, headers) parsed = JSON.parse(payload, symbolize_names: true) Dodopayments::Internal::Type::Converter.coerce(Dodopayments::Models::UnwrapWebhookEvent, parsed) end |
#update(webhook_id, description: nil, disabled: nil, filter_types: nil, metadata: nil, rate_limit: nil, url: nil, request_options: {}) ⇒ Dodopayments::Models::WebhookDetails
Some parameter documentations has been truncated, see Models::WebhookUpdateParams for more details.
Patch a webhook by id
93 94 95 96 97 98 99 100 101 102 |
# File 'lib/dodopayments/resources/webhooks.rb', line 93 def update(webhook_id, params = {}) parsed, = Dodopayments::WebhookUpdateParams.dump_request(params) @client.request( method: :patch, path: ["webhooks/%1$s", webhook_id], body: parsed, model: Dodopayments::WebhookDetails, options: ) end |