growwer 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +61 -6
- data/docs/AccountApi.md +1 -1
- data/docs/AdvanceTestOrderRequest.md +18 -0
- data/docs/BalanceLowEventData.md +20 -0
- data/docs/BalanceLowEventDataWallet.md +20 -0
- data/docs/CatalogueApi.md +2 -2
- data/docs/CreateWebhookRequest.md +24 -0
- data/docs/GetMe200Response.md +3 -1
- data/docs/ListWebhookDeliveries200Response.md +20 -0
- data/docs/ListWebhooks200Response.md +20 -0
- data/docs/Money.md +4 -2
- data/docs/MoneyOrNull.md +4 -2
- data/docs/OrderCreateRequest.md +1 -1
- data/docs/OrderEventData.md +18 -0
- data/docs/SellerMedia.md +3 -1
- data/docs/SellerMediaCompetitiveFeesByLinkTypeInner.md +22 -0
- data/docs/SellerMediasApi.md +5 -5
- data/docs/TestHelpersApi.md +222 -0
- data/docs/TopUpTestWallet200Response.md +20 -0
- data/docs/TopUpTestWalletRequest.md +18 -0
- data/docs/UpdateWebhookRequest.md +26 -0
- data/docs/Webhook.md +38 -0
- data/docs/WebhookDelivery.md +32 -0
- data/docs/WebhookDeliveryAttempt.md +26 -0
- data/docs/WebhookEvent.md +28 -0
- data/docs/WebhookEventData.md +51 -0
- data/docs/WebhookEventType.md +15 -0
- data/docs/WebhookTestEventData.md +18 -0
- data/docs/WebhookWithSecret.md +40 -0
- data/docs/WebhooksApi.md +662 -0
- data/growwer.gemspec +1 -1
- data/lib/growwer/api/account_api.rb +3 -3
- data/lib/growwer/api/buyer_orders_api.rb +1 -1
- data/lib/growwer/api/buyer_wallet_api.rb +1 -1
- data/lib/growwer/api/catalogue_api.rb +5 -5
- data/lib/growwer/api/files_api.rb +1 -1
- data/lib/growwer/api/managed_services_api.rb +1 -1
- data/lib/growwer/api/projects_api.rb +1 -1
- data/lib/growwer/api/saved_filters_api.rb +1 -1
- data/lib/growwer/api/seller_account_api.rb +1 -1
- data/lib/growwer/api/seller_medias_api.rb +5 -5
- data/lib/growwer/api/seller_orders_api.rb +1 -1
- data/lib/growwer/api/seller_wallet_api.rb +1 -1
- data/lib/growwer/api/test_helpers_api.rb +254 -0
- data/lib/growwer/api/webhooks_api.rb +707 -0
- data/lib/growwer/api_client.rb +2 -2
- data/lib/growwer/api_error.rb +1 -1
- data/lib/growwer/api_model_base.rb +1 -1
- data/lib/growwer/configuration.rb +1 -1
- data/lib/growwer/models/advance_test_order_request.rb +189 -0
- data/lib/growwer/models/balance.rb +1 -1
- data/lib/growwer/models/balance_low_event_data.rb +192 -0
- data/lib/growwer/models/balance_low_event_data_wallet.rb +192 -0
- data/lib/growwer/models/catalogue_media.rb +1 -1
- data/lib/growwer/models/catalogue_media_flash_offer.rb +1 -1
- data/lib/growwer/models/catalogue_media_metrics.rb +1 -1
- data/lib/growwer/models/catalogue_offer.rb +1 -1
- data/lib/growwer/models/catalogue_offer_or_null.rb +1 -1
- data/lib/growwer/models/catalogue_post_offer.rb +1 -1
- data/lib/growwer/models/catalogue_post_offer_all_of_extras.rb +1 -1
- data/lib/growwer/models/catalogue_post_offer_all_of_extras_sensitive_topic.rb +1 -1
- data/lib/growwer/models/code_name.rb +1 -1
- data/lib/growwer/models/count_saved_filter_medias200_response.rb +1 -1
- data/lib/growwer/models/create_project_request.rb +1 -1
- data/lib/growwer/models/create_saved_filter_request.rb +1 -1
- data/lib/growwer/models/create_seller_media_request.rb +1 -1
- data/lib/growwer/models/create_seller_media_request_post_offer.rb +1 -1
- data/lib/growwer/models/create_webhook_request.rb +248 -0
- data/lib/growwer/models/error.rb +1 -1
- data/lib/growwer/models/get_buyer_wallet200_response.rb +1 -1
- data/lib/growwer/models/get_me200_response.rb +57 -20
- data/lib/growwer/models/get_me200_response_buyer.rb +1 -1
- data/lib/growwer/models/get_me200_response_catalogue.rb +1 -1
- data/lib/growwer/models/get_me200_response_managed_service.rb +1 -1
- data/lib/growwer/models/get_me200_response_seller.rb +2 -1
- data/lib/growwer/models/get_seller_wallet200_response.rb +1 -1
- data/lib/growwer/models/get_vocabulary200_response.rb +1 -1
- data/lib/growwer/models/get_vocabulary200_response_topics_inner.rb +1 -1
- data/lib/growwer/models/invoice.rb +1 -1
- data/lib/growwer/models/link_addition_order_briefing.rb +1 -1
- data/lib/growwer/models/link_addition_order_briefing_request.rb +1 -1
- data/lib/growwer/models/list_buyer_transactions200_response.rb +1 -1
- data/lib/growwer/models/list_flash_offers200_response.rb +1 -1
- data/lib/growwer/models/list_invoices200_response.rb +1 -1
- data/lib/growwer/models/list_managed_service_campaigns200_response.rb +1 -1
- data/lib/growwer/models/list_managed_service_proposals200_response.rb +1 -1
- data/lib/growwer/models/list_orders200_response.rb +1 -1
- data/lib/growwer/models/list_projects200_response.rb +1 -1
- data/lib/growwer/models/list_saved_filters200_response.rb +1 -1
- data/lib/growwer/models/list_seller_medias200_response.rb +1 -1
- data/lib/growwer/models/list_seller_orders200_response.rb +1 -1
- data/lib/growwer/models/list_seller_transactions200_response.rb +1 -1
- data/lib/growwer/models/list_webhook_deliveries200_response.rb +192 -0
- data/lib/growwer/models/list_webhooks200_response.rb +192 -0
- data/lib/growwer/models/list_withdrawals200_response.rb +1 -1
- data/lib/growwer/models/managed_service_campaign.rb +1 -1
- data/lib/growwer/models/managed_service_campaign_project.rb +1 -1
- data/lib/growwer/models/managed_service_campaign_proposal_counts.rb +1 -1
- data/lib/growwer/models/managed_service_campaign_strategy.rb +1 -1
- data/lib/growwer/models/managed_service_proposal.rb +1 -1
- data/lib/growwer/models/managed_service_proposal_briefing.rb +1 -1
- data/lib/growwer/models/managed_service_proposal_briefing_links_inner.rb +1 -1
- data/lib/growwer/models/managed_service_proposal_media.rb +1 -1
- data/lib/growwer/models/managed_service_proposal_review.rb +1 -1
- data/lib/growwer/models/managed_service_proposal_review_request.rb +1 -1
- data/lib/growwer/models/managed_service_proposal_review_request_reviews_inner.rb +1 -1
- data/lib/growwer/models/managed_service_proposals_estimate.rb +1 -1
- data/lib/growwer/models/managed_service_proposals_estimate_request.rb +1 -1
- data/lib/growwer/models/managed_service_request.rb +1 -1
- data/lib/growwer/models/managed_service_request_sent.rb +1 -1
- data/lib/growwer/models/money.rb +16 -6
- data/lib/growwer/models/money_or_null.rb +16 -6
- data/lib/growwer/models/order.rb +1 -1
- data/lib/growwer/models/order_action_reason.rb +1 -1
- data/lib/growwer/models/order_briefing.rb +1 -1
- data/lib/growwer/models/order_channel.rb +1 -1
- data/lib/growwer/models/order_create_request.rb +2 -2
- data/lib/growwer/models/order_delivery.rb +1 -1
- data/lib/growwer/models/order_draft.rb +1 -1
- data/lib/growwer/models/order_estimate.rb +1 -1
- data/lib/growwer/models/order_estimate_request.rb +1 -1
- data/lib/growwer/models/order_estimate_request_briefing.rb +1 -1
- data/lib/growwer/models/order_event_data.rb +165 -0
- data/lib/growwer/models/order_link.rb +1 -1
- data/lib/growwer/models/order_link_request.rb +1 -1
- data/lib/growwer/models/order_media.rb +1 -1
- data/lib/growwer/models/order_project.rb +1 -1
- data/lib/growwer/models/order_state_history_inner.rb +1 -1
- data/lib/growwer/models/order_state_history_inner_reason.rb +1 -1
- data/lib/growwer/models/post_order_briefing.rb +1 -1
- data/lib/growwer/models/post_order_briefing_request.rb +1 -1
- data/lib/growwer/models/project.rb +1 -1
- data/lib/growwer/models/project_catalogue_media.rb +1 -1
- data/lib/growwer/models/project_catalogue_media_all_of_project.rb +1 -1
- data/lib/growwer/models/project_catalogue_media_all_of_project_ai_keywords.rb +1 -1
- data/lib/growwer/models/put_seller_holiday200_response.rb +1 -1
- data/lib/growwer/models/put_seller_holiday_request.rb +1 -1
- data/lib/growwer/models/request_medias201_response.rb +1 -1
- data/lib/growwer/models/request_medias_request.rb +1 -1
- data/lib/growwer/models/saved_filter.rb +1 -1
- data/lib/growwer/models/saved_filter_notifications.rb +1 -1
- data/lib/growwer/models/seller_fees.rb +1 -1
- data/lib/growwer/models/seller_fees_or_null.rb +1 -1
- data/lib/growwer/models/seller_media.rb +18 -3
- data/lib/growwer/models/seller_media_competitive_fees_by_link_type_inner.rb +214 -0
- data/lib/growwer/models/seller_media_flash_offer.rb +1 -1
- data/lib/growwer/models/seller_media_link_addition_offer.rb +1 -1
- data/lib/growwer/models/seller_media_link_addition_offer_pricing_options_inner.rb +1 -1
- data/lib/growwer/models/seller_media_post_offer.rb +1 -1
- data/lib/growwer/models/seller_media_post_offer_pricing_options_inner.rb +1 -1
- data/lib/growwer/models/seller_order.rb +1 -1
- data/lib/growwer/models/seller_order_briefing.rb +1 -1
- data/lib/growwer/models/seller_order_channel.rb +1 -1
- data/lib/growwer/models/seller_order_draft.rb +1 -1
- data/lib/growwer/models/seller_order_draft_file.rb +1 -1
- data/lib/growwer/models/seller_order_post_delivery.rb +1 -1
- data/lib/growwer/models/seller_order_project.rb +1 -1
- data/lib/growwer/models/seller_order_refutation.rb +1 -1
- data/lib/growwer/models/seller_order_rejection.rb +1 -1
- data/lib/growwer/models/seller_order_rejection_reason.rb +1 -1
- data/lib/growwer/models/seller_post_order_briefing.rb +1 -1
- data/lib/growwer/models/seller_transaction.rb +1 -1
- data/lib/growwer/models/top_up_test_wallet200_response.rb +191 -0
- data/lib/growwer/models/top_up_test_wallet_request.rb +165 -0
- data/lib/growwer/models/transaction.rb +1 -1
- data/lib/growwer/models/update_project_request.rb +1 -1
- data/lib/growwer/models/update_seller_media_request.rb +1 -1
- data/lib/growwer/models/update_seller_media_request_extra_services_inner.rb +1 -1
- data/lib/growwer/models/update_seller_media_request_link_addition_offer.rb +1 -1
- data/lib/growwer/models/update_seller_media_request_link_addition_offer_pricing_options_inner.rb +1 -1
- data/lib/growwer/models/update_seller_media_request_post_offer.rb +1 -1
- data/lib/growwer/models/update_seller_media_request_post_offer_pricing_options_inner.rb +1 -1
- data/lib/growwer/models/update_webhook_request.rb +245 -0
- data/lib/growwer/models/upload_file201_response.rb +1 -1
- data/lib/growwer/models/webhook.rb +395 -0
- data/lib/growwer/models/webhook_delivery.rb +365 -0
- data/lib/growwer/models/webhook_delivery_attempt.rb +264 -0
- data/lib/growwer/models/webhook_event.rb +324 -0
- data/lib/growwer/models/webhook_event_data.rb +104 -0
- data/lib/growwer/models/webhook_event_type.rb +46 -0
- data/lib/growwer/models/webhook_test_event_data.rb +166 -0
- data/lib/growwer/models/webhook_with_secret.rb +413 -0
- data/lib/growwer/models/withdrawal.rb +1 -1
- data/lib/growwer/version.rb +2 -2
- data/lib/growwer.rb +22 -1
- data/spec/api/test_helpers_api_spec.rb +74 -0
- data/spec/api/webhooks_api_spec.rb +154 -0
- data/spec/models/advance_test_order_request_spec.rb +40 -0
- data/spec/models/balance_low_event_data_spec.rb +42 -0
- data/spec/models/balance_low_event_data_wallet_spec.rb +42 -0
- data/spec/models/create_webhook_request_spec.rb +54 -0
- data/spec/models/list_webhook_deliveries200_response_spec.rb +42 -0
- data/spec/models/list_webhooks200_response_spec.rb +42 -0
- data/spec/models/order_event_data_spec.rb +36 -0
- data/spec/models/seller_media_competitive_fees_by_link_type_inner_spec.rb +52 -0
- data/spec/models/top_up_test_wallet200_response_spec.rb +42 -0
- data/spec/models/top_up_test_wallet_request_spec.rb +36 -0
- data/spec/models/update_webhook_request_spec.rb +60 -0
- data/spec/models/webhook_delivery_attempt_spec.rb +64 -0
- data/spec/models/webhook_delivery_spec.rb +86 -0
- data/spec/models/webhook_event_data_spec.rb +32 -0
- data/spec/models/webhook_event_spec.rb +78 -0
- data/spec/models/webhook_event_type_spec.rb +30 -0
- data/spec/models/webhook_spec.rb +100 -0
- data/spec/models/webhook_test_event_data_spec.rb +36 -0
- data/spec/models/webhook_with_secret_spec.rb +106 -0
- data/spec/spec_helper.rb +1 -1
- metadata +86 -2
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
# Growwer::TestHelpersApi
|
|
2
|
+
|
|
3
|
+
All URIs are relative to *https://tool.growwer.com*
|
|
4
|
+
|
|
5
|
+
| Method | HTTP request | Description |
|
|
6
|
+
| ------ | ------------ | ----------- |
|
|
7
|
+
| [**advance_test_order**](TestHelpersApi.md#advance_test_order) | **POST** /api/v1/test-helpers/orders/{id}/advance | Advance a test order |
|
|
8
|
+
| [**reset_test_data**](TestHelpersApi.md#reset_test_data) | **POST** /api/v1/test-helpers/reset | Reset your test data |
|
|
9
|
+
| [**top_up_test_wallet**](TestHelpersApi.md#top_up_test_wallet) | **POST** /api/v1/test-helpers/wallet/top-up | Top up your test wallet |
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## advance_test_order
|
|
13
|
+
|
|
14
|
+
> <Order> advance_test_order(id, idempotency_key, advance_test_order_request)
|
|
15
|
+
|
|
16
|
+
Advance a test order
|
|
17
|
+
|
|
18
|
+
Test keys only. Moves one of your test orders at once to `to`, without waiting for the simulated seller: `accepted` or `rejected` (by the seller, from `pending_acceptance`), `draft_delivered` (the sample draft, from `pending_draft` or `pending_draft_update`), `draft_update_requested` (as if you sent the draft back, from `pending_draft_review`), `published` (delivered for your review, from `pending_order_delivery`, `scheduled` or `pending_order_delivery_update`), `update_requested` (as if you sent the delivery back, from `pending_order_delivery_review`) or `cancelled_by_growwer` (from any state that is not finished). The order and your test wallet change as that move changes them live, a rejection or a cancellation refunding the price, and the simulated seller carries on from the new state. A post with a future `scheduledPublicationDate` waits in `scheduled` until that date once the simulated seller delivers it; `published` skips the wait. A target its state does not allow answers 409 `invalid_transition` with the targets it allows. A live key gets 403 `test_mode_only`.
|
|
19
|
+
|
|
20
|
+
### Examples
|
|
21
|
+
|
|
22
|
+
```ruby
|
|
23
|
+
require 'time'
|
|
24
|
+
require 'growwer'
|
|
25
|
+
# setup authorization
|
|
26
|
+
Growwer.configure do |config|
|
|
27
|
+
# Configure Bearer authorization: apiKey
|
|
28
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
api_instance = Growwer::TestHelpersApi.new
|
|
32
|
+
id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
|
|
33
|
+
idempotency_key = 'idempotency_key_example' # String | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`.
|
|
34
|
+
advance_test_order_request = Growwer::AdvanceTestOrderRequest.new({to: 'accepted'}) # AdvanceTestOrderRequest |
|
|
35
|
+
|
|
36
|
+
begin
|
|
37
|
+
# Advance a test order
|
|
38
|
+
result = api_instance.advance_test_order(id, idempotency_key, advance_test_order_request)
|
|
39
|
+
p result
|
|
40
|
+
rescue Growwer::ApiError => e
|
|
41
|
+
puts "Error when calling TestHelpersApi->advance_test_order: #{e}"
|
|
42
|
+
end
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### Using the advance_test_order_with_http_info variant
|
|
46
|
+
|
|
47
|
+
This returns an Array which contains the response data, status code and headers.
|
|
48
|
+
|
|
49
|
+
> <Array(<Order>, Integer, Hash)> advance_test_order_with_http_info(id, idempotency_key, advance_test_order_request)
|
|
50
|
+
|
|
51
|
+
```ruby
|
|
52
|
+
begin
|
|
53
|
+
# Advance a test order
|
|
54
|
+
data, status_code, headers = api_instance.advance_test_order_with_http_info(id, idempotency_key, advance_test_order_request)
|
|
55
|
+
p status_code # => 2xx
|
|
56
|
+
p headers # => { ... }
|
|
57
|
+
p data # => <Order>
|
|
58
|
+
rescue Growwer::ApiError => e
|
|
59
|
+
puts "Error when calling TestHelpersApi->advance_test_order_with_http_info: #{e}"
|
|
60
|
+
end
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Parameters
|
|
64
|
+
|
|
65
|
+
| Name | Type | Description | Notes |
|
|
66
|
+
| ---- | ---- | ----------- | ----- |
|
|
67
|
+
| **id** | **String** | | |
|
|
68
|
+
| **idempotency_key** | **String** | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`. | |
|
|
69
|
+
| **advance_test_order_request** | [**AdvanceTestOrderRequest**](AdvanceTestOrderRequest.md) | | |
|
|
70
|
+
|
|
71
|
+
### Return type
|
|
72
|
+
|
|
73
|
+
[**Order**](Order.md)
|
|
74
|
+
|
|
75
|
+
### Authorization
|
|
76
|
+
|
|
77
|
+
[apiKey](../README.md#apiKey)
|
|
78
|
+
|
|
79
|
+
### HTTP request headers
|
|
80
|
+
|
|
81
|
+
- **Content-Type**: application/json
|
|
82
|
+
- **Accept**: application/json
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
## reset_test_data
|
|
86
|
+
|
|
87
|
+
> reset_test_data(idempotency_key)
|
|
88
|
+
|
|
89
|
+
Reset your test data
|
|
90
|
+
|
|
91
|
+
Test keys only. Deletes your test projects, orders and uploaded test files, and returns your test wallet to its opening balance of 1,000.00 EUR with no movements. Your API keys and webhook subscriptions stay, and nothing of your live account changes. It takes no body. A live key gets 403 `test_mode_only`.
|
|
92
|
+
|
|
93
|
+
### Examples
|
|
94
|
+
|
|
95
|
+
```ruby
|
|
96
|
+
require 'time'
|
|
97
|
+
require 'growwer'
|
|
98
|
+
# setup authorization
|
|
99
|
+
Growwer.configure do |config|
|
|
100
|
+
# Configure Bearer authorization: apiKey
|
|
101
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
api_instance = Growwer::TestHelpersApi.new
|
|
105
|
+
idempotency_key = 'idempotency_key_example' # String | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`.
|
|
106
|
+
|
|
107
|
+
begin
|
|
108
|
+
# Reset your test data
|
|
109
|
+
api_instance.reset_test_data(idempotency_key)
|
|
110
|
+
rescue Growwer::ApiError => e
|
|
111
|
+
puts "Error when calling TestHelpersApi->reset_test_data: #{e}"
|
|
112
|
+
end
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
#### Using the reset_test_data_with_http_info variant
|
|
116
|
+
|
|
117
|
+
This returns an Array which contains the response data (`nil` in this case), status code and headers.
|
|
118
|
+
|
|
119
|
+
> <Array(nil, Integer, Hash)> reset_test_data_with_http_info(idempotency_key)
|
|
120
|
+
|
|
121
|
+
```ruby
|
|
122
|
+
begin
|
|
123
|
+
# Reset your test data
|
|
124
|
+
data, status_code, headers = api_instance.reset_test_data_with_http_info(idempotency_key)
|
|
125
|
+
p status_code # => 2xx
|
|
126
|
+
p headers # => { ... }
|
|
127
|
+
p data # => nil
|
|
128
|
+
rescue Growwer::ApiError => e
|
|
129
|
+
puts "Error when calling TestHelpersApi->reset_test_data_with_http_info: #{e}"
|
|
130
|
+
end
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Parameters
|
|
134
|
+
|
|
135
|
+
| Name | Type | Description | Notes |
|
|
136
|
+
| ---- | ---- | ----------- | ----- |
|
|
137
|
+
| **idempotency_key** | **String** | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`. | |
|
|
138
|
+
|
|
139
|
+
### Return type
|
|
140
|
+
|
|
141
|
+
nil (empty response body)
|
|
142
|
+
|
|
143
|
+
### Authorization
|
|
144
|
+
|
|
145
|
+
[apiKey](../README.md#apiKey)
|
|
146
|
+
|
|
147
|
+
### HTTP request headers
|
|
148
|
+
|
|
149
|
+
- **Content-Type**: Not defined
|
|
150
|
+
- **Accept**: application/json
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
## top_up_test_wallet
|
|
154
|
+
|
|
155
|
+
> <TopUpTestWallet200Response> top_up_test_wallet(idempotency_key, top_up_test_wallet_request)
|
|
156
|
+
|
|
157
|
+
Top up your test wallet
|
|
158
|
+
|
|
159
|
+
Test keys only. Credits your test wallet, the buyer wallet a test key spends from, with fictitious money: more than nothing and at most 10,000.00 EUR per call. It never touches your real wallets, takes no payment and issues no invoice; the movement shows in GET /wallets/buyer/transactions for a test key as a confirmed `deposit`. A live key gets 403 `test_mode_only`.
|
|
160
|
+
|
|
161
|
+
### Examples
|
|
162
|
+
|
|
163
|
+
```ruby
|
|
164
|
+
require 'time'
|
|
165
|
+
require 'growwer'
|
|
166
|
+
# setup authorization
|
|
167
|
+
Growwer.configure do |config|
|
|
168
|
+
# Configure Bearer authorization: apiKey
|
|
169
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
api_instance = Growwer::TestHelpersApi.new
|
|
173
|
+
idempotency_key = 'idempotency_key_example' # String | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`.
|
|
174
|
+
top_up_test_wallet_request = Growwer::TopUpTestWalletRequest.new({amount: Growwer::Money.new({amount: 12500, currency: 'EUR'})}) # TopUpTestWalletRequest |
|
|
175
|
+
|
|
176
|
+
begin
|
|
177
|
+
# Top up your test wallet
|
|
178
|
+
result = api_instance.top_up_test_wallet(idempotency_key, top_up_test_wallet_request)
|
|
179
|
+
p result
|
|
180
|
+
rescue Growwer::ApiError => e
|
|
181
|
+
puts "Error when calling TestHelpersApi->top_up_test_wallet: #{e}"
|
|
182
|
+
end
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
#### Using the top_up_test_wallet_with_http_info variant
|
|
186
|
+
|
|
187
|
+
This returns an Array which contains the response data, status code and headers.
|
|
188
|
+
|
|
189
|
+
> <Array(<TopUpTestWallet200Response>, Integer, Hash)> top_up_test_wallet_with_http_info(idempotency_key, top_up_test_wallet_request)
|
|
190
|
+
|
|
191
|
+
```ruby
|
|
192
|
+
begin
|
|
193
|
+
# Top up your test wallet
|
|
194
|
+
data, status_code, headers = api_instance.top_up_test_wallet_with_http_info(idempotency_key, top_up_test_wallet_request)
|
|
195
|
+
p status_code # => 2xx
|
|
196
|
+
p headers # => { ... }
|
|
197
|
+
p data # => <TopUpTestWallet200Response>
|
|
198
|
+
rescue Growwer::ApiError => e
|
|
199
|
+
puts "Error when calling TestHelpersApi->top_up_test_wallet_with_http_info: #{e}"
|
|
200
|
+
end
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Parameters
|
|
204
|
+
|
|
205
|
+
| Name | Type | Description | Notes |
|
|
206
|
+
| ---- | ---- | ----------- | ----- |
|
|
207
|
+
| **idempotency_key** | **String** | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`. | |
|
|
208
|
+
| **top_up_test_wallet_request** | [**TopUpTestWalletRequest**](TopUpTestWalletRequest.md) | | |
|
|
209
|
+
|
|
210
|
+
### Return type
|
|
211
|
+
|
|
212
|
+
[**TopUpTestWallet200Response**](TopUpTestWallet200Response.md)
|
|
213
|
+
|
|
214
|
+
### Authorization
|
|
215
|
+
|
|
216
|
+
[apiKey](../README.md#apiKey)
|
|
217
|
+
|
|
218
|
+
### HTTP request headers
|
|
219
|
+
|
|
220
|
+
- **Content-Type**: application/json
|
|
221
|
+
- **Accept**: application/json
|
|
222
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Growwer::TopUpTestWallet200Response
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **balance** | [**Balance**](Balance.md) | | |
|
|
8
|
+
| **top_up_url** | **String** | The wallet page where a live buyer tops up, as GET /wallets/buyer gives it. | |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'growwer'
|
|
14
|
+
|
|
15
|
+
instance = Growwer::TopUpTestWallet200Response.new(
|
|
16
|
+
balance: null,
|
|
17
|
+
top_up_url: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Growwer::TopUpTestWalletRequest
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **amount** | [**Money**](Money.md) | What to credit, in EUR: from 1 to 1000000 cents. | |
|
|
8
|
+
|
|
9
|
+
## Example
|
|
10
|
+
|
|
11
|
+
```ruby
|
|
12
|
+
require 'growwer'
|
|
13
|
+
|
|
14
|
+
instance = Growwer::TopUpTestWalletRequest.new(
|
|
15
|
+
amount: null
|
|
16
|
+
)
|
|
17
|
+
```
|
|
18
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Growwer::UpdateWebhookRequest
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **url** | **String** | An HTTPS URL of at most 2048 characters, without a backslash or credentials. Its host is an IP address or a domain name of two labels or more, such as hooks.example.com, with one trailing dot allowed; a single-label host such as localhost is refused (`validation_failed` on `url`). The host is checked, and resolved at each delivery, in lower case and with a Unicode name in punycode, the form a delivery connects to. | [optional] |
|
|
8
|
+
| **events** | [**Array<WebhookEventType>**](WebhookEventType.md) | The events to send, at least one; replaces the list. | [optional] |
|
|
9
|
+
| **low_balance_threshold** | [**MoneyOrNull**](MoneyOrNull.md) | With `balance.low`: the available buyer balance below which the event fires, in EUR. Null removes it. | [optional] |
|
|
10
|
+
| **description** | **String** | A note of yours, at most 255 characters. Null removes it. | [optional] |
|
|
11
|
+
| **enabled** | **Boolean** | Whether the subscription gets events. | [optional] |
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
|
|
15
|
+
```ruby
|
|
16
|
+
require 'growwer'
|
|
17
|
+
|
|
18
|
+
instance = Growwer::UpdateWebhookRequest.new(
|
|
19
|
+
url: null,
|
|
20
|
+
events: null,
|
|
21
|
+
low_balance_threshold: null,
|
|
22
|
+
description: null,
|
|
23
|
+
enabled: null
|
|
24
|
+
)
|
|
25
|
+
```
|
|
26
|
+
|
data/docs/Webhook.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Growwer::Webhook
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **id** | **String** | | |
|
|
8
|
+
| **url** | **String** | | |
|
|
9
|
+
| **events** | [**Array<WebhookEventType>**](WebhookEventType.md) | | |
|
|
10
|
+
| **low_balance_threshold** | [**MoneyOrNull**](MoneyOrNull.md) | With `balance.low`, the available buyer balance below which it fires; null otherwise. | |
|
|
11
|
+
| **description** | **String** | | |
|
|
12
|
+
| **enabled** | **Boolean** | Whether the subscription gets events. | |
|
|
13
|
+
| **disabled_reason** | **String** | Why it is disabled, null while enabled. `by_user`, through PATCH /webhooks/{id}; `endpoint_gone`, its endpoint answered 410; `failing`, every delivery failed for 5 days, and the account owner was emailed. | |
|
|
14
|
+
| **failing_since** | **Time** | Since when its deliveries have failed without one succeeding, null while they succeed. At 5 days it is disabled. The check runs at each failed attempt, so a subscription whose `failingSince` is already more than 5 days old, say one that had no event for a while, is disabled at its next failed attempt, without the retries that delivery would otherwise get. | |
|
|
15
|
+
| **previous_secret_expires_at** | **Time** | Until when the secret replaced by the last rotation still signs beside the new one, null when it no longer does. | |
|
|
16
|
+
| **created_at** | **Time** | | |
|
|
17
|
+
| **updated_at** | **Time** | | |
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
|
|
21
|
+
```ruby
|
|
22
|
+
require 'growwer'
|
|
23
|
+
|
|
24
|
+
instance = Growwer::Webhook.new(
|
|
25
|
+
id: null,
|
|
26
|
+
url: null,
|
|
27
|
+
events: null,
|
|
28
|
+
low_balance_threshold: null,
|
|
29
|
+
description: null,
|
|
30
|
+
enabled: null,
|
|
31
|
+
disabled_reason: null,
|
|
32
|
+
failing_since: null,
|
|
33
|
+
previous_secret_expires_at: null,
|
|
34
|
+
created_at: null,
|
|
35
|
+
updated_at: null
|
|
36
|
+
)
|
|
37
|
+
```
|
|
38
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Growwer::WebhookDelivery
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **id** | **String** | | |
|
|
8
|
+
| **event_id** | **String** | The event's id, sent as `webhook-id` on every attempt and redelivery. | |
|
|
9
|
+
| **event_type** | **String** | | |
|
|
10
|
+
| **status** | **String** | `pending` while it is sent or retried, `succeeded` once an attempt got a 2xx, `failed` once the retries ran out, the endpoint answered 410 or the subscription was disabled. | |
|
|
11
|
+
| **attempt_count** | **Integer** | How many attempts it took, redeliveries included. | |
|
|
12
|
+
| **next_attempt_at** | **Time** | When the next retry is due, null when none is. | |
|
|
13
|
+
| **created_at** | **Time** | | |
|
|
14
|
+
| **attempts** | [**Array<WebhookDeliveryAttempt>**](WebhookDeliveryAttempt.md) | The latest 10 attempts, newest first. | |
|
|
15
|
+
|
|
16
|
+
## Example
|
|
17
|
+
|
|
18
|
+
```ruby
|
|
19
|
+
require 'growwer'
|
|
20
|
+
|
|
21
|
+
instance = Growwer::WebhookDelivery.new(
|
|
22
|
+
id: null,
|
|
23
|
+
event_id: null,
|
|
24
|
+
event_type: null,
|
|
25
|
+
status: null,
|
|
26
|
+
attempt_count: null,
|
|
27
|
+
next_attempt_at: null,
|
|
28
|
+
created_at: null,
|
|
29
|
+
attempts: null
|
|
30
|
+
)
|
|
31
|
+
```
|
|
32
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Growwer::WebhookDeliveryAttempt
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **attempted_at** | **Time** | | |
|
|
8
|
+
| **status_code** | **Integer** | The HTTP status your endpoint answered, null when it did not answer. Only 2xx succeeds; a redirect is not followed and fails. | |
|
|
9
|
+
| **duration_ms** | **Integer** | How long the attempt took, in milliseconds. It gives up after 15 seconds. | |
|
|
10
|
+
| **response_body** | **String** | Up to the first 1024 bytes of the response body, null when it did not answer. | |
|
|
11
|
+
| **error** | **String** | Why there is no status, null when it answered. `address_not_allowed`, its host resolved to, or connected to, an address that is not public. | |
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
|
|
15
|
+
```ruby
|
|
16
|
+
require 'growwer'
|
|
17
|
+
|
|
18
|
+
instance = Growwer::WebhookDeliveryAttempt.new(
|
|
19
|
+
attempted_at: null,
|
|
20
|
+
status_code: null,
|
|
21
|
+
duration_ms: null,
|
|
22
|
+
response_body: null,
|
|
23
|
+
error: null
|
|
24
|
+
)
|
|
25
|
+
```
|
|
26
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Growwer::WebhookEvent
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **id** | **String** | | |
|
|
8
|
+
| **type** | **String** | | |
|
|
9
|
+
| **created_at** | **Time** | | |
|
|
10
|
+
| **api_version** | **String** | | |
|
|
11
|
+
| **mode** | **String** | The mode of the subscription it is sent to. | |
|
|
12
|
+
| **data** | [**WebhookEventData**](WebhookEventData.md) | | |
|
|
13
|
+
|
|
14
|
+
## Example
|
|
15
|
+
|
|
16
|
+
```ruby
|
|
17
|
+
require 'growwer'
|
|
18
|
+
|
|
19
|
+
instance = Growwer::WebhookEvent.new(
|
|
20
|
+
id: null,
|
|
21
|
+
type: null,
|
|
22
|
+
created_at: null,
|
|
23
|
+
api_version: null,
|
|
24
|
+
mode: null,
|
|
25
|
+
data: null
|
|
26
|
+
)
|
|
27
|
+
```
|
|
28
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Growwer::WebhookEventData
|
|
2
|
+
|
|
3
|
+
## Class instance methods
|
|
4
|
+
|
|
5
|
+
### `openapi_one_of`
|
|
6
|
+
|
|
7
|
+
Returns the list of classes defined in oneOf.
|
|
8
|
+
|
|
9
|
+
#### Example
|
|
10
|
+
|
|
11
|
+
```ruby
|
|
12
|
+
require 'growwer'
|
|
13
|
+
|
|
14
|
+
Growwer::WebhookEventData.openapi_one_of
|
|
15
|
+
# =>
|
|
16
|
+
# [
|
|
17
|
+
# :'BalanceLowEventData',
|
|
18
|
+
# :'OrderEventData',
|
|
19
|
+
# :'WebhookTestEventData'
|
|
20
|
+
# ]
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### build
|
|
24
|
+
|
|
25
|
+
Find the appropriate object from the `openapi_one_of` list and casts the data into it.
|
|
26
|
+
|
|
27
|
+
#### Example
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
require 'growwer'
|
|
31
|
+
|
|
32
|
+
Growwer::WebhookEventData.build(data)
|
|
33
|
+
# => #<BalanceLowEventData:0x00007fdd4aab02a0>
|
|
34
|
+
|
|
35
|
+
Growwer::WebhookEventData.build(data_that_doesnt_match)
|
|
36
|
+
# => nil
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
#### Parameters
|
|
40
|
+
|
|
41
|
+
| Name | Type | Description |
|
|
42
|
+
| ---- | ---- | ----------- |
|
|
43
|
+
| **data** | **Mixed** | data to be matched against the list of oneOf items |
|
|
44
|
+
|
|
45
|
+
#### Return type
|
|
46
|
+
|
|
47
|
+
- `BalanceLowEventData`
|
|
48
|
+
- `OrderEventData`
|
|
49
|
+
- `WebhookTestEventData`
|
|
50
|
+
- `nil` (if no type matches)
|
|
51
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Growwer::WebhookTestEventData
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **webhook_id** | **String** | The subscription it was sent to. | |
|
|
8
|
+
|
|
9
|
+
## Example
|
|
10
|
+
|
|
11
|
+
```ruby
|
|
12
|
+
require 'growwer'
|
|
13
|
+
|
|
14
|
+
instance = Growwer::WebhookTestEventData.new(
|
|
15
|
+
webhook_id: null
|
|
16
|
+
)
|
|
17
|
+
```
|
|
18
|
+
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Growwer::WebhookWithSecret
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **id** | **String** | | |
|
|
8
|
+
| **url** | **String** | | |
|
|
9
|
+
| **events** | [**Array<WebhookEventType>**](WebhookEventType.md) | | |
|
|
10
|
+
| **low_balance_threshold** | [**MoneyOrNull**](MoneyOrNull.md) | With `balance.low`, the available buyer balance below which it fires; null otherwise. | |
|
|
11
|
+
| **description** | **String** | | |
|
|
12
|
+
| **enabled** | **Boolean** | Whether the subscription gets events. | |
|
|
13
|
+
| **disabled_reason** | **String** | Why it is disabled, null while enabled. `by_user`, through PATCH /webhooks/{id}; `endpoint_gone`, its endpoint answered 410; `failing`, every delivery failed for 5 days, and the account owner was emailed. | |
|
|
14
|
+
| **failing_since** | **Time** | Since when its deliveries have failed without one succeeding, null while they succeed. At 5 days it is disabled. The check runs at each failed attempt, so a subscription whose `failingSince` is already more than 5 days old, say one that had no event for a while, is disabled at its next failed attempt, without the retries that delivery would otherwise get. | |
|
|
15
|
+
| **previous_secret_expires_at** | **Time** | Until when the secret replaced by the last rotation still signs beside the new one, null when it no longer does. | |
|
|
16
|
+
| **created_at** | **Time** | | |
|
|
17
|
+
| **updated_at** | **Time** | | |
|
|
18
|
+
| **secret** | **String** | The signing secret, `whsec_` and the base64 of 32 random bytes. Shown only in this answer, and absent when the request is replayed under its `Idempotency-Key` (or the MCP tool under its `requestId`), since the secret is never stored. | [optional] |
|
|
19
|
+
|
|
20
|
+
## Example
|
|
21
|
+
|
|
22
|
+
```ruby
|
|
23
|
+
require 'growwer'
|
|
24
|
+
|
|
25
|
+
instance = Growwer::WebhookWithSecret.new(
|
|
26
|
+
id: null,
|
|
27
|
+
url: null,
|
|
28
|
+
events: null,
|
|
29
|
+
low_balance_threshold: null,
|
|
30
|
+
description: null,
|
|
31
|
+
enabled: null,
|
|
32
|
+
disabled_reason: null,
|
|
33
|
+
failing_since: null,
|
|
34
|
+
previous_secret_expires_at: null,
|
|
35
|
+
created_at: null,
|
|
36
|
+
updated_at: null,
|
|
37
|
+
secret: whsec_MfKQ9r8GKYqrTwjUPD8ILPZIo2LaLaSw
|
|
38
|
+
)
|
|
39
|
+
```
|
|
40
|
+
|