dub 0.2.2.pre.alpha.78 → 0.2.2
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/lib/dub.rb +5 -9
- data/lib/open_api_sdk/analytics.rb +13 -19
- data/lib/open_api_sdk/domains.rb +95 -115
- data/lib/open_api_sdk/dub.rb +40 -37
- data/lib/open_api_sdk/links.rb +156 -276
- data/lib/open_api_sdk/metatags.rb +4 -10
- data/lib/open_api_sdk/models/operations/bulkcreatelinks_response.rb +7 -7
- data/lib/open_api_sdk/models/operations/bulkupdatelinks_requestbody.rb +6 -9
- data/lib/open_api_sdk/models/operations/bulkupdatelinks_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/color.rb +2 -1
- data/lib/open_api_sdk/models/operations/createdomain_requestbody.rb +4 -16
- data/lib/open_api_sdk/models/operations/createdomain_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/createlink_requestbody.rb +13 -51
- data/lib/open_api_sdk/models/operations/createlink_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/createtag_requestbody.rb +2 -2
- data/lib/open_api_sdk/models/operations/createtag_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/data.rb +12 -50
- data/lib/open_api_sdk/models/operations/deletedomain_request.rb +2 -2
- data/lib/open_api_sdk/models/operations/deletedomain_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/deletedomain_responsebody.rb +2 -2
- data/lib/open_api_sdk/models/operations/deletelink_request.rb +2 -2
- data/lib/open_api_sdk/models/operations/deletelink_response.rb +3 -3
- data/lib/open_api_sdk/models/operations/deletelink_responsebody.rb +3 -3
- data/lib/open_api_sdk/models/operations/event.rb +3 -2
- data/lib/open_api_sdk/models/operations/getlinkinfo_request.rb +3 -3
- data/lib/open_api_sdk/models/operations/getlinkinfo_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/getlinks_request.rb +10 -25
- data/lib/open_api_sdk/models/operations/getlinks_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/getlinkscount_request.rb +7 -13
- data/lib/open_api_sdk/models/operations/getlinkscount_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/getmetatags_request.rb +2 -2
- data/lib/open_api_sdk/models/operations/getmetatags_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/getmetatags_responsebody.rb +2 -2
- data/lib/open_api_sdk/models/operations/getqrcode_request.rb +5 -14
- data/lib/open_api_sdk/models/operations/getqrcode_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/gettags_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/getworkspace_request.rb +2 -2
- data/lib/open_api_sdk/models/operations/getworkspace_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/groupby.rb +4 -12
- data/lib/open_api_sdk/models/operations/interval.rb +5 -5
- data/lib/open_api_sdk/models/operations/level.rb +2 -1
- data/lib/open_api_sdk/models/operations/listdomains_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/paymentprocessor.rb +2 -3
- data/lib/open_api_sdk/models/operations/requestbody.rb +13 -51
- data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +11 -53
- data/lib/open_api_sdk/models/operations/retrieveanalytics_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/sort.rb +3 -5
- data/lib/open_api_sdk/models/operations/trackcustomer_requestbody.rb +33 -0
- data/lib/open_api_sdk/models/operations/{createpartner_response.rb → trackcustomer_response.rb} +5 -5
- data/lib/open_api_sdk/models/operations/trackcustomer_responsebody.rb +33 -0
- data/lib/open_api_sdk/models/operations/tracklead_requestbody.rb +9 -20
- data/lib/open_api_sdk/models/operations/tracklead_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/tracklead_responsebody.rb +23 -8
- data/lib/open_api_sdk/models/operations/tracksale_requestbody.rb +8 -16
- data/lib/open_api_sdk/models/operations/tracksale_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/tracksale_responsebody.rb +20 -8
- data/lib/open_api_sdk/models/operations/updatedomain_request.rb +2 -2
- data/lib/open_api_sdk/models/operations/updatedomain_requestbody.rb +4 -16
- data/lib/open_api_sdk/models/operations/updatedomain_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/updatelink_request.rb +2 -2
- data/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +14 -52
- data/lib/open_api_sdk/models/operations/updatelink_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/updatetag_color.rb +2 -1
- data/lib/open_api_sdk/models/operations/updatetag_request.rb +2 -2
- data/lib/open_api_sdk/models/operations/updatetag_requestbody.rb +2 -2
- data/lib/open_api_sdk/models/operations/updatetag_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/updateworkspace_request.rb +2 -2
- data/lib/open_api_sdk/models/operations/updateworkspace_requestbody.rb +4 -13
- data/lib/open_api_sdk/models/operations/updateworkspace_response.rb +2 -2
- data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +13 -51
- data/lib/open_api_sdk/models/operations/upsertlink_response.rb +2 -2
- data/lib/open_api_sdk/models/operations.rb +22 -116
- data/lib/open_api_sdk/models/shared/badrequest.rb +3 -3
- data/lib/open_api_sdk/models/shared/code.rb +2 -1
- data/lib/open_api_sdk/models/shared/color.rb +2 -1
- data/lib/open_api_sdk/models/shared/conflict.rb +3 -3
- data/lib/open_api_sdk/models/shared/conflict_code.rb +2 -1
- data/lib/open_api_sdk/models/shared/conflict_error.rb +2 -2
- data/lib/open_api_sdk/models/shared/countrycode.rb +2 -1
- data/lib/open_api_sdk/models/shared/domains.rb +4 -7
- data/lib/open_api_sdk/models/shared/domainschema.rb +4 -19
- data/lib/open_api_sdk/models/shared/error.rb +2 -2
- data/lib/open_api_sdk/models/shared/forbidden.rb +3 -3
- data/lib/open_api_sdk/models/shared/forbidden_code.rb +2 -1
- data/lib/open_api_sdk/models/shared/forbidden_error.rb +2 -2
- data/lib/open_api_sdk/models/shared/geo.rb +2 -2
- data/lib/open_api_sdk/models/shared/internalservererror.rb +3 -3
- data/lib/open_api_sdk/models/shared/internalservererror_code.rb +2 -1
- data/lib/open_api_sdk/models/shared/internalservererror_error.rb +2 -2
- data/lib/open_api_sdk/models/shared/inviteexpired.rb +3 -3
- data/lib/open_api_sdk/models/shared/inviteexpired_code.rb +2 -1
- data/lib/open_api_sdk/models/shared/inviteexpired_error.rb +2 -2
- data/lib/open_api_sdk/models/shared/linkgeotargeting.rb +2 -2
- data/lib/open_api_sdk/models/shared/linkschema.rb +8 -29
- data/lib/open_api_sdk/models/shared/notfound.rb +3 -3
- data/lib/open_api_sdk/models/shared/notfound_code.rb +2 -1
- data/lib/open_api_sdk/models/shared/notfound_error.rb +2 -2
- data/lib/open_api_sdk/models/shared/plan.rb +2 -1
- data/lib/open_api_sdk/models/shared/ratelimitexceeded.rb +3 -3
- data/lib/open_api_sdk/models/shared/ratelimitexceeded_code.rb +2 -1
- data/lib/open_api_sdk/models/shared/ratelimitexceeded_error.rb +2 -2
- data/lib/open_api_sdk/models/shared/role.rb +2 -1
- data/lib/open_api_sdk/models/shared/security.rb +4 -4
- data/lib/open_api_sdk/models/shared/tagschema.rb +2 -2
- data/lib/open_api_sdk/models/shared/unauthorized.rb +3 -3
- data/lib/open_api_sdk/models/shared/unauthorized_code.rb +2 -1
- data/lib/open_api_sdk/models/shared/unauthorized_error.rb +2 -2
- data/lib/open_api_sdk/models/shared/unprocessableentity.rb +3 -3
- data/lib/open_api_sdk/models/shared/unprocessableentity_code.rb +2 -1
- data/lib/open_api_sdk/models/shared/unprocessableentity_error.rb +2 -2
- data/lib/open_api_sdk/models/shared/users.rb +2 -2
- data/lib/open_api_sdk/models/shared/workspaceschema.rb +8 -47
- data/lib/open_api_sdk/models/shared.rb +2 -12
- data/lib/open_api_sdk/qr_codes.rb +13 -18
- data/lib/open_api_sdk/sdkconfiguration.rb +10 -26
- data/lib/open_api_sdk/tags.rb +60 -161
- data/lib/open_api_sdk/track.rb +109 -34
- data/lib/{crystalline → open_api_sdk/utils}/metadata_fields.rb +20 -33
- data/lib/{crystalline → open_api_sdk/utils}/t.rb +1 -1
- data/lib/open_api_sdk/utils/utils.rb +60 -16
- data/lib/open_api_sdk/workspaces.rb +25 -35
- metadata +12 -166
- data/lib/crystalline/utils.rb +0 -65
- data/lib/crystalline.rb +0 -12
- data/lib/open_api_sdk/customers.rb +0 -464
- data/lib/open_api_sdk/embed_tokens.rb +0 -112
- data/lib/open_api_sdk/events.rb +0 -105
- data/lib/open_api_sdk/folders.rb +0 -373
- data/lib/open_api_sdk/models/operations/accesslevel.rb +0 -18
- data/lib/open_api_sdk/models/operations/bulkdeletelinks_request.rb +0 -24
- data/lib/open_api_sdk/models/operations/bulkdeletelinks_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/bulkdeletelinks_responsebody.rb +0 -24
- data/lib/open_api_sdk/models/operations/click.rb +0 -24
- data/lib/open_api_sdk/models/operations/country.rb +0 -266
- data/lib/open_api_sdk/models/operations/createcustomer_discount.rb +0 -42
- data/lib/open_api_sdk/models/operations/createcustomer_link.rb +0 -36
- data/lib/open_api_sdk/models/operations/createcustomer_partner.rb +0 -33
- data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rb +0 -33
- data/lib/open_api_sdk/models/operations/createcustomer_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rb +0 -51
- data/lib/open_api_sdk/models/operations/createcustomer_type.rb +0 -18
- data/lib/open_api_sdk/models/operations/createfolder_requestbody.rb +0 -27
- data/lib/open_api_sdk/models/operations/createfolder_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/createpartner_requestbody.rb +0 -48
- data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +0 -75
- data/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb +0 -99
- data/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb +0 -42
- data/lib/open_api_sdk/models/operations/createpartnerlink_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/createreferralsembedtoken_country.rb +0 -266
- data/lib/open_api_sdk/models/operations/createreferralsembedtoken_linkprops.rb +0 -99
- data/lib/open_api_sdk/models/operations/createreferralsembedtoken_requestbody.rb +0 -33
- data/lib/open_api_sdk/models/operations/createreferralsembedtoken_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/createreferralsembedtoken_responsebody.rb +0 -27
- data/lib/open_api_sdk/models/operations/customer.rb +0 -33
- data/lib/open_api_sdk/models/operations/deletecustomer_request.rb +0 -24
- data/lib/open_api_sdk/models/operations/deletecustomer_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/deletecustomer_responsebody.rb +0 -24
- data/lib/open_api_sdk/models/operations/deletefolder_request.rb +0 -24
- data/lib/open_api_sdk/models/operations/deletefolder_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/deletefolder_responsebody.rb +0 -24
- data/lib/open_api_sdk/models/operations/deletetag_request.rb +0 -24
- data/lib/open_api_sdk/models/operations/deletetag_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/deletetag_responsebody.rb +0 -24
- data/lib/open_api_sdk/models/operations/discount.rb +0 -42
- data/lib/open_api_sdk/models/operations/getcustomer_discount.rb +0 -42
- data/lib/open_api_sdk/models/operations/getcustomer_link.rb +0 -36
- data/lib/open_api_sdk/models/operations/getcustomer_partner.rb +0 -33
- data/lib/open_api_sdk/models/operations/getcustomer_request.rb +0 -27
- data/lib/open_api_sdk/models/operations/getcustomer_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/getcustomer_responsebody.rb +0 -51
- data/lib/open_api_sdk/models/operations/getcustomer_type.rb +0 -18
- data/lib/open_api_sdk/models/operations/getcustomers_partner.rb +0 -33
- data/lib/open_api_sdk/models/operations/getcustomers_request.rb +0 -30
- data/lib/open_api_sdk/models/operations/getcustomers_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/gettags_queryparam_sortby.rb +0 -18
- data/lib/open_api_sdk/models/operations/gettags_queryparam_sortorder.rb +0 -18
- data/lib/open_api_sdk/models/operations/gettags_request.rb +0 -39
- data/lib/open_api_sdk/models/operations/link.rb +0 -36
- data/lib/open_api_sdk/models/operations/linkprops.rb +0 -99
- data/lib/open_api_sdk/models/operations/links.rb +0 -48
- data/lib/open_api_sdk/models/operations/listdomains_request.rb +0 -33
- data/lib/open_api_sdk/models/operations/listevents_request.rb +0 -135
- data/lib/open_api_sdk/models/operations/listevents_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/listfolders_request.rb +0 -33
- data/lib/open_api_sdk/models/operations/listfolders_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/mode.rb +0 -18
- data/lib/open_api_sdk/models/operations/order.rb +0 -20
- data/lib/open_api_sdk/models/operations/partner.rb +0 -45
- data/lib/open_api_sdk/models/operations/queryparam_event.rb +0 -19
- data/lib/open_api_sdk/models/operations/queryparam_groupby.rb +0 -19
- data/lib/open_api_sdk/models/operations/queryparam_interval.rb +0 -25
- data/lib/open_api_sdk/models/operations/queryparam_sortby.rb +0 -17
- data/lib/open_api_sdk/models/operations/queryparam_sortorder.rb +0 -18
- data/lib/open_api_sdk/models/operations/queryparam_trigger.rb +0 -18
- data/lib/open_api_sdk/models/operations/responsebody.rb +0 -51
- data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb +0 -25
- data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb +0 -45
- data/lib/open_api_sdk/models/operations/retrievepartneranalytics_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/sale.rb +0 -36
- data/lib/open_api_sdk/models/operations/sortby.rb +0 -20
- data/lib/open_api_sdk/models/operations/sortorder.rb +0 -18
- data/lib/open_api_sdk/models/operations/status.rb +0 -21
- data/lib/open_api_sdk/models/operations/tracksale_customer.rb +0 -36
- data/lib/open_api_sdk/models/operations/trigger.rb +0 -18
- data/lib/open_api_sdk/models/operations/type.rb +0 -18
- data/lib/open_api_sdk/models/operations/updatecustomer_discount.rb +0 -42
- data/lib/open_api_sdk/models/operations/updatecustomer_link.rb +0 -36
- data/lib/open_api_sdk/models/operations/updatecustomer_partner.rb +0 -33
- data/lib/open_api_sdk/models/operations/updatecustomer_request.rb +0 -30
- data/lib/open_api_sdk/models/operations/updatecustomer_requestbody.rb +0 -33
- data/lib/open_api_sdk/models/operations/updatecustomer_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/updatecustomer_responsebody.rb +0 -51
- data/lib/open_api_sdk/models/operations/updatecustomer_type.rb +0 -18
- data/lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb +0 -18
- data/lib/open_api_sdk/models/operations/updatefolder_request.rb +0 -27
- data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb +0 -27
- data/lib/open_api_sdk/models/operations/updatefolder_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/updatepartnersale_requestbody.rb +0 -36
- data/lib/open_api_sdk/models/operations/updatepartnersale_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/updatepartnersale_responsebody.rb +0 -45
- data/lib/open_api_sdk/models/operations/updatepartnersale_status.rb +0 -22
- data/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb +0 -99
- data/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb +0 -42
- data/lib/open_api_sdk/models/operations/upsertpartnerlink_response.rb +0 -60
- data/lib/open_api_sdk/models/shared/accesslevel.rb +0 -18
- data/lib/open_api_sdk/models/shared/click.rb +0 -63
- data/lib/open_api_sdk/models/shared/clickevent.rb +0 -98
- data/lib/open_api_sdk/models/shared/clickevent_geo.rb +0 -771
- data/lib/open_api_sdk/models/shared/continentcode.rb +0 -23
- data/lib/open_api_sdk/models/shared/event.rb +0 -17
- data/lib/open_api_sdk/models/shared/folderschema.rb +0 -42
- data/lib/open_api_sdk/models/shared/link.rb +0 -163
- data/lib/open_api_sdk/models/shared/registereddomain.rb +0 -30
- data/lib/open_api_sdk/models/shared/type.rb +0 -18
- data/lib/open_api_sdk/partners.rb +0 -461
- data/lib/open_api_sdk/utils/retries.rb +0 -95
@@ -1,461 +0,0 @@
|
|
1
|
-
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
2
|
-
|
3
|
-
# typed: true
|
4
|
-
# frozen_string_literal: true
|
5
|
-
|
6
|
-
require 'faraday'
|
7
|
-
require 'faraday/multipart'
|
8
|
-
require 'faraday/retry'
|
9
|
-
require 'sorbet-runtime'
|
10
|
-
require_relative 'utils/retries'
|
11
|
-
|
12
|
-
module OpenApiSDK
|
13
|
-
extend T::Sig
|
14
|
-
class Partners
|
15
|
-
extend T::Sig
|
16
|
-
|
17
|
-
|
18
|
-
sig { params(sdk_config: SDKConfiguration).void }
|
19
|
-
def initialize(sdk_config)
|
20
|
-
@sdk_configuration = sdk_config
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
sig { params(request: T.nilable(::OpenApiSDK::Operations::CreatePartnerRequestBody)).returns(::OpenApiSDK::Operations::CreatePartnerResponse) }
|
25
|
-
def create(request)
|
26
|
-
# create - Create a new partner
|
27
|
-
# Create a new partner for a program. If partner exists, automatically enrolls them.
|
28
|
-
url, params = @sdk_configuration.get_server_details
|
29
|
-
base_url = Utils.template_url(url, params)
|
30
|
-
url = "#{base_url}/partners"
|
31
|
-
headers = {}
|
32
|
-
req_content_type, data, form = Utils.serialize_request_body(request, :request, :json)
|
33
|
-
headers['content-type'] = req_content_type
|
34
|
-
headers['Accept'] = 'application/json'
|
35
|
-
headers['user-agent'] = @sdk_configuration.user_agent
|
36
|
-
|
37
|
-
connection = @sdk_configuration.client
|
38
|
-
|
39
|
-
r = connection.post(url) do |req|
|
40
|
-
req.headers = headers
|
41
|
-
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
|
42
|
-
Utils.configure_request_security(req, security) if !security.nil?
|
43
|
-
if form
|
44
|
-
req.body = Utils.encode_form(form)
|
45
|
-
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
|
46
|
-
req.body = URI.encode_www_form(data)
|
47
|
-
else
|
48
|
-
req.body = data
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
53
|
-
|
54
|
-
res = ::OpenApiSDK::Operations::CreatePartnerResponse.new(
|
55
|
-
status_code: r.status, content_type: content_type, raw_response: r
|
56
|
-
)
|
57
|
-
if r.status == 201
|
58
|
-
if Utils.match_content_type(content_type, 'application/json')
|
59
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Operations::CreatePartnerResponseBody)
|
60
|
-
res.object = out
|
61
|
-
end
|
62
|
-
elsif r.status == 400
|
63
|
-
if Utils.match_content_type(content_type, 'application/json')
|
64
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::BadRequest)
|
65
|
-
res.bad_request = out
|
66
|
-
end
|
67
|
-
elsif r.status == 401
|
68
|
-
if Utils.match_content_type(content_type, 'application/json')
|
69
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Unauthorized)
|
70
|
-
res.unauthorized = out
|
71
|
-
end
|
72
|
-
elsif r.status == 403
|
73
|
-
if Utils.match_content_type(content_type, 'application/json')
|
74
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Forbidden)
|
75
|
-
res.forbidden = out
|
76
|
-
end
|
77
|
-
elsif r.status == 404
|
78
|
-
if Utils.match_content_type(content_type, 'application/json')
|
79
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::NotFound)
|
80
|
-
res.not_found = out
|
81
|
-
end
|
82
|
-
elsif r.status == 409
|
83
|
-
if Utils.match_content_type(content_type, 'application/json')
|
84
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Conflict)
|
85
|
-
res.conflict = out
|
86
|
-
end
|
87
|
-
elsif r.status == 410
|
88
|
-
if Utils.match_content_type(content_type, 'application/json')
|
89
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InviteExpired)
|
90
|
-
res.invite_expired = out
|
91
|
-
end
|
92
|
-
elsif r.status == 422
|
93
|
-
if Utils.match_content_type(content_type, 'application/json')
|
94
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::UnprocessableEntity)
|
95
|
-
res.unprocessable_entity = out
|
96
|
-
end
|
97
|
-
elsif r.status == 429
|
98
|
-
if Utils.match_content_type(content_type, 'application/json')
|
99
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::RateLimitExceeded)
|
100
|
-
res.rate_limit_exceeded = out
|
101
|
-
end
|
102
|
-
elsif r.status == 500
|
103
|
-
if Utils.match_content_type(content_type, 'application/json')
|
104
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InternalServerError)
|
105
|
-
res.internal_server_error = out
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
res
|
110
|
-
end
|
111
|
-
|
112
|
-
|
113
|
-
sig { params(request: T.nilable(::OpenApiSDK::Operations::CreatePartnerLinkRequestBody)).returns(::OpenApiSDK::Operations::CreatePartnerLinkResponse) }
|
114
|
-
def create_link(request)
|
115
|
-
# create_link - Create a link for a partner
|
116
|
-
# Create a new link for a partner that is enrolled in your program.
|
117
|
-
url, params = @sdk_configuration.get_server_details
|
118
|
-
base_url = Utils.template_url(url, params)
|
119
|
-
url = "#{base_url}/partners/links"
|
120
|
-
headers = {}
|
121
|
-
req_content_type, data, form = Utils.serialize_request_body(request, :request, :json)
|
122
|
-
headers['content-type'] = req_content_type
|
123
|
-
headers['Accept'] = 'application/json'
|
124
|
-
headers['user-agent'] = @sdk_configuration.user_agent
|
125
|
-
|
126
|
-
connection = @sdk_configuration.client
|
127
|
-
|
128
|
-
r = connection.post(url) do |req|
|
129
|
-
req.headers = headers
|
130
|
-
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
|
131
|
-
Utils.configure_request_security(req, security) if !security.nil?
|
132
|
-
if form
|
133
|
-
req.body = Utils.encode_form(form)
|
134
|
-
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
|
135
|
-
req.body = URI.encode_www_form(data)
|
136
|
-
else
|
137
|
-
req.body = data
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
142
|
-
|
143
|
-
res = ::OpenApiSDK::Operations::CreatePartnerLinkResponse.new(
|
144
|
-
status_code: r.status, content_type: content_type, raw_response: r
|
145
|
-
)
|
146
|
-
if r.status == 201
|
147
|
-
if Utils.match_content_type(content_type, 'application/json')
|
148
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::LinkSchema)
|
149
|
-
res.link_schema = out
|
150
|
-
end
|
151
|
-
elsif r.status == 400
|
152
|
-
if Utils.match_content_type(content_type, 'application/json')
|
153
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::BadRequest)
|
154
|
-
res.bad_request = out
|
155
|
-
end
|
156
|
-
elsif r.status == 401
|
157
|
-
if Utils.match_content_type(content_type, 'application/json')
|
158
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Unauthorized)
|
159
|
-
res.unauthorized = out
|
160
|
-
end
|
161
|
-
elsif r.status == 403
|
162
|
-
if Utils.match_content_type(content_type, 'application/json')
|
163
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Forbidden)
|
164
|
-
res.forbidden = out
|
165
|
-
end
|
166
|
-
elsif r.status == 404
|
167
|
-
if Utils.match_content_type(content_type, 'application/json')
|
168
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::NotFound)
|
169
|
-
res.not_found = out
|
170
|
-
end
|
171
|
-
elsif r.status == 409
|
172
|
-
if Utils.match_content_type(content_type, 'application/json')
|
173
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Conflict)
|
174
|
-
res.conflict = out
|
175
|
-
end
|
176
|
-
elsif r.status == 410
|
177
|
-
if Utils.match_content_type(content_type, 'application/json')
|
178
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InviteExpired)
|
179
|
-
res.invite_expired = out
|
180
|
-
end
|
181
|
-
elsif r.status == 422
|
182
|
-
if Utils.match_content_type(content_type, 'application/json')
|
183
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::UnprocessableEntity)
|
184
|
-
res.unprocessable_entity = out
|
185
|
-
end
|
186
|
-
elsif r.status == 429
|
187
|
-
if Utils.match_content_type(content_type, 'application/json')
|
188
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::RateLimitExceeded)
|
189
|
-
res.rate_limit_exceeded = out
|
190
|
-
end
|
191
|
-
elsif r.status == 500
|
192
|
-
if Utils.match_content_type(content_type, 'application/json')
|
193
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InternalServerError)
|
194
|
-
res.internal_server_error = out
|
195
|
-
end
|
196
|
-
end
|
197
|
-
|
198
|
-
res
|
199
|
-
end
|
200
|
-
|
201
|
-
|
202
|
-
sig { params(request: T.nilable(::OpenApiSDK::Operations::UpsertPartnerLinkRequestBody)).returns(::OpenApiSDK::Operations::UpsertPartnerLinkResponse) }
|
203
|
-
def upsert_link(request)
|
204
|
-
# upsert_link - Upsert a link for a partner
|
205
|
-
# Upsert a link for a partner that is enrolled in your program. If a link with the same URL already exists, return it (or update it if there are any changes). Otherwise, a new link will be created.
|
206
|
-
url, params = @sdk_configuration.get_server_details
|
207
|
-
base_url = Utils.template_url(url, params)
|
208
|
-
url = "#{base_url}/partners/links/upsert"
|
209
|
-
headers = {}
|
210
|
-
req_content_type, data, form = Utils.serialize_request_body(request, :request, :json)
|
211
|
-
headers['content-type'] = req_content_type
|
212
|
-
headers['Accept'] = 'application/json'
|
213
|
-
headers['user-agent'] = @sdk_configuration.user_agent
|
214
|
-
|
215
|
-
connection = @sdk_configuration.client
|
216
|
-
|
217
|
-
r = connection.put(url) do |req|
|
218
|
-
req.headers = headers
|
219
|
-
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
|
220
|
-
Utils.configure_request_security(req, security) if !security.nil?
|
221
|
-
if form
|
222
|
-
req.body = Utils.encode_form(form)
|
223
|
-
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
|
224
|
-
req.body = URI.encode_www_form(data)
|
225
|
-
else
|
226
|
-
req.body = data
|
227
|
-
end
|
228
|
-
end
|
229
|
-
|
230
|
-
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
231
|
-
|
232
|
-
res = ::OpenApiSDK::Operations::UpsertPartnerLinkResponse.new(
|
233
|
-
status_code: r.status, content_type: content_type, raw_response: r
|
234
|
-
)
|
235
|
-
if r.status == 200
|
236
|
-
if Utils.match_content_type(content_type, 'application/json')
|
237
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::LinkSchema)
|
238
|
-
res.link_schema = out
|
239
|
-
end
|
240
|
-
elsif r.status == 400
|
241
|
-
if Utils.match_content_type(content_type, 'application/json')
|
242
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::BadRequest)
|
243
|
-
res.bad_request = out
|
244
|
-
end
|
245
|
-
elsif r.status == 401
|
246
|
-
if Utils.match_content_type(content_type, 'application/json')
|
247
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Unauthorized)
|
248
|
-
res.unauthorized = out
|
249
|
-
end
|
250
|
-
elsif r.status == 403
|
251
|
-
if Utils.match_content_type(content_type, 'application/json')
|
252
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Forbidden)
|
253
|
-
res.forbidden = out
|
254
|
-
end
|
255
|
-
elsif r.status == 404
|
256
|
-
if Utils.match_content_type(content_type, 'application/json')
|
257
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::NotFound)
|
258
|
-
res.not_found = out
|
259
|
-
end
|
260
|
-
elsif r.status == 409
|
261
|
-
if Utils.match_content_type(content_type, 'application/json')
|
262
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Conflict)
|
263
|
-
res.conflict = out
|
264
|
-
end
|
265
|
-
elsif r.status == 410
|
266
|
-
if Utils.match_content_type(content_type, 'application/json')
|
267
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InviteExpired)
|
268
|
-
res.invite_expired = out
|
269
|
-
end
|
270
|
-
elsif r.status == 422
|
271
|
-
if Utils.match_content_type(content_type, 'application/json')
|
272
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::UnprocessableEntity)
|
273
|
-
res.unprocessable_entity = out
|
274
|
-
end
|
275
|
-
elsif r.status == 429
|
276
|
-
if Utils.match_content_type(content_type, 'application/json')
|
277
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::RateLimitExceeded)
|
278
|
-
res.rate_limit_exceeded = out
|
279
|
-
end
|
280
|
-
elsif r.status == 500
|
281
|
-
if Utils.match_content_type(content_type, 'application/json')
|
282
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InternalServerError)
|
283
|
-
res.internal_server_error = out
|
284
|
-
end
|
285
|
-
end
|
286
|
-
|
287
|
-
res
|
288
|
-
end
|
289
|
-
|
290
|
-
|
291
|
-
sig { params(request: T.nilable(::OpenApiSDK::Operations::RetrievePartnerAnalyticsRequest)).returns(::OpenApiSDK::Operations::RetrievePartnerAnalyticsResponse) }
|
292
|
-
def analytics(request)
|
293
|
-
# analytics - Retrieve analytics for a partner
|
294
|
-
# Retrieve analytics for a partner within a program. The response type vary based on the `groupBy` query parameter.
|
295
|
-
url, params = @sdk_configuration.get_server_details
|
296
|
-
base_url = Utils.template_url(url, params)
|
297
|
-
url = "#{base_url}/partners/analytics"
|
298
|
-
headers = {}
|
299
|
-
query_params = Utils.get_query_params(::OpenApiSDK::Operations::RetrievePartnerAnalyticsRequest, request)
|
300
|
-
headers['Accept'] = 'application/json'
|
301
|
-
headers['user-agent'] = @sdk_configuration.user_agent
|
302
|
-
|
303
|
-
connection = @sdk_configuration.client
|
304
|
-
|
305
|
-
r = connection.get(url) do |req|
|
306
|
-
req.headers = headers
|
307
|
-
req.params = query_params
|
308
|
-
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
|
309
|
-
Utils.configure_request_security(req, security) if !security.nil?
|
310
|
-
end
|
311
|
-
|
312
|
-
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
313
|
-
|
314
|
-
res = ::OpenApiSDK::Operations::RetrievePartnerAnalyticsResponse.new(
|
315
|
-
status_code: r.status, content_type: content_type, raw_response: r
|
316
|
-
)
|
317
|
-
if r.status == 200
|
318
|
-
if Utils.match_content_type(content_type, 'application/json')
|
319
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::Object)
|
320
|
-
res.one_of = out
|
321
|
-
end
|
322
|
-
elsif r.status == 400
|
323
|
-
if Utils.match_content_type(content_type, 'application/json')
|
324
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::BadRequest)
|
325
|
-
res.bad_request = out
|
326
|
-
end
|
327
|
-
elsif r.status == 401
|
328
|
-
if Utils.match_content_type(content_type, 'application/json')
|
329
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Unauthorized)
|
330
|
-
res.unauthorized = out
|
331
|
-
end
|
332
|
-
elsif r.status == 403
|
333
|
-
if Utils.match_content_type(content_type, 'application/json')
|
334
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Forbidden)
|
335
|
-
res.forbidden = out
|
336
|
-
end
|
337
|
-
elsif r.status == 404
|
338
|
-
if Utils.match_content_type(content_type, 'application/json')
|
339
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::NotFound)
|
340
|
-
res.not_found = out
|
341
|
-
end
|
342
|
-
elsif r.status == 409
|
343
|
-
if Utils.match_content_type(content_type, 'application/json')
|
344
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Conflict)
|
345
|
-
res.conflict = out
|
346
|
-
end
|
347
|
-
elsif r.status == 410
|
348
|
-
if Utils.match_content_type(content_type, 'application/json')
|
349
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InviteExpired)
|
350
|
-
res.invite_expired = out
|
351
|
-
end
|
352
|
-
elsif r.status == 422
|
353
|
-
if Utils.match_content_type(content_type, 'application/json')
|
354
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::UnprocessableEntity)
|
355
|
-
res.unprocessable_entity = out
|
356
|
-
end
|
357
|
-
elsif r.status == 429
|
358
|
-
if Utils.match_content_type(content_type, 'application/json')
|
359
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::RateLimitExceeded)
|
360
|
-
res.rate_limit_exceeded = out
|
361
|
-
end
|
362
|
-
elsif r.status == 500
|
363
|
-
if Utils.match_content_type(content_type, 'application/json')
|
364
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InternalServerError)
|
365
|
-
res.internal_server_error = out
|
366
|
-
end
|
367
|
-
end
|
368
|
-
|
369
|
-
res
|
370
|
-
end
|
371
|
-
|
372
|
-
|
373
|
-
sig { params(request: T.nilable(::OpenApiSDK::Operations::UpdatePartnerSaleRequestBody)).returns(::OpenApiSDK::Operations::UpdatePartnerSaleResponse) }
|
374
|
-
def update_sale(request)
|
375
|
-
# update_sale - Update a sale for a partner.
|
376
|
-
# Update an existing sale amount. This is useful for handling refunds (partial or full) or fraudulent sales.
|
377
|
-
url, params = @sdk_configuration.get_server_details
|
378
|
-
base_url = Utils.template_url(url, params)
|
379
|
-
url = "#{base_url}/partners/sales"
|
380
|
-
headers = {}
|
381
|
-
req_content_type, data, form = Utils.serialize_request_body(request, :request, :json)
|
382
|
-
headers['content-type'] = req_content_type
|
383
|
-
headers['Accept'] = 'application/json'
|
384
|
-
headers['user-agent'] = @sdk_configuration.user_agent
|
385
|
-
|
386
|
-
connection = @sdk_configuration.client
|
387
|
-
|
388
|
-
r = connection.patch(url) do |req|
|
389
|
-
req.headers = headers
|
390
|
-
security = !@sdk_configuration.nil? && !@sdk_configuration.security_source.nil? ? @sdk_configuration.security_source.call : nil
|
391
|
-
Utils.configure_request_security(req, security) if !security.nil?
|
392
|
-
if form
|
393
|
-
req.body = Utils.encode_form(form)
|
394
|
-
elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
|
395
|
-
req.body = URI.encode_www_form(data)
|
396
|
-
else
|
397
|
-
req.body = data
|
398
|
-
end
|
399
|
-
end
|
400
|
-
|
401
|
-
content_type = r.headers.fetch('Content-Type', 'application/octet-stream')
|
402
|
-
|
403
|
-
res = ::OpenApiSDK::Operations::UpdatePartnerSaleResponse.new(
|
404
|
-
status_code: r.status, content_type: content_type, raw_response: r
|
405
|
-
)
|
406
|
-
if r.status == 200
|
407
|
-
if Utils.match_content_type(content_type, 'application/json')
|
408
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Operations::UpdatePartnerSaleResponseBody)
|
409
|
-
res.object = out
|
410
|
-
end
|
411
|
-
elsif r.status == 400
|
412
|
-
if Utils.match_content_type(content_type, 'application/json')
|
413
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::BadRequest)
|
414
|
-
res.bad_request = out
|
415
|
-
end
|
416
|
-
elsif r.status == 401
|
417
|
-
if Utils.match_content_type(content_type, 'application/json')
|
418
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Unauthorized)
|
419
|
-
res.unauthorized = out
|
420
|
-
end
|
421
|
-
elsif r.status == 403
|
422
|
-
if Utils.match_content_type(content_type, 'application/json')
|
423
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Forbidden)
|
424
|
-
res.forbidden = out
|
425
|
-
end
|
426
|
-
elsif r.status == 404
|
427
|
-
if Utils.match_content_type(content_type, 'application/json')
|
428
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::NotFound)
|
429
|
-
res.not_found = out
|
430
|
-
end
|
431
|
-
elsif r.status == 409
|
432
|
-
if Utils.match_content_type(content_type, 'application/json')
|
433
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::Conflict)
|
434
|
-
res.conflict = out
|
435
|
-
end
|
436
|
-
elsif r.status == 410
|
437
|
-
if Utils.match_content_type(content_type, 'application/json')
|
438
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InviteExpired)
|
439
|
-
res.invite_expired = out
|
440
|
-
end
|
441
|
-
elsif r.status == 422
|
442
|
-
if Utils.match_content_type(content_type, 'application/json')
|
443
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::UnprocessableEntity)
|
444
|
-
res.unprocessable_entity = out
|
445
|
-
end
|
446
|
-
elsif r.status == 429
|
447
|
-
if Utils.match_content_type(content_type, 'application/json')
|
448
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::RateLimitExceeded)
|
449
|
-
res.rate_limit_exceeded = out
|
450
|
-
end
|
451
|
-
elsif r.status == 500
|
452
|
-
if Utils.match_content_type(content_type, 'application/json')
|
453
|
-
out = Crystalline.unmarshal_json(JSON.parse(r.env.response_body), ::OpenApiSDK::Shared::InternalServerError)
|
454
|
-
res.internal_server_error = out
|
455
|
-
end
|
456
|
-
end
|
457
|
-
|
458
|
-
res
|
459
|
-
end
|
460
|
-
end
|
461
|
-
end
|
@@ -1,95 +0,0 @@
|
|
1
|
-
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
2
|
-
|
3
|
-
# typed: true
|
4
|
-
# frozen_string_literal: true
|
5
|
-
|
6
|
-
require 'faraday/retry'
|
7
|
-
require 'sorbet-runtime'
|
8
|
-
|
9
|
-
module OpenApiSDK
|
10
|
-
module Utils
|
11
|
-
class BackoffStrategy
|
12
|
-
extend T::Sig
|
13
|
-
|
14
|
-
sig { returns(T.nilable(::Float)) }
|
15
|
-
attr_accessor :exponent
|
16
|
-
|
17
|
-
sig { returns(T.nilable(::Integer)) }
|
18
|
-
attr_accessor :initial_interval
|
19
|
-
|
20
|
-
sig { returns(T.nilable(::Integer)) }
|
21
|
-
attr_accessor :max_elapsed_time
|
22
|
-
|
23
|
-
sig { returns(T.nilable(::Integer)) }
|
24
|
-
attr_accessor :max_interval
|
25
|
-
|
26
|
-
sig do
|
27
|
-
params(
|
28
|
-
exponent: T.nilable(::Float),
|
29
|
-
initial_interval: T.nilable(::Integer),
|
30
|
-
max_elapsed_time: T.nilable(::Integer),
|
31
|
-
max_interval: T.nilable(::Integer)
|
32
|
-
).void
|
33
|
-
end
|
34
|
-
def initialize(exponent: nil, initial_interval: nil, max_elapsed_time: nil, max_interval: nil)
|
35
|
-
@exponent = T.let(exponent, T.nilable(::Float))
|
36
|
-
@initial_interval = T.let(initial_interval, T.nilable(::Integer))
|
37
|
-
@max_elapsed_time = T.let(max_elapsed_time, T.nilable(::Integer))
|
38
|
-
@max_interval = T.let(max_interval, T.nilable(::Integer))
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
class RetryConfig
|
43
|
-
extend T::Sig
|
44
|
-
|
45
|
-
sig { returns(T.nilable(BackoffStrategy)) }
|
46
|
-
attr_accessor :backoff
|
47
|
-
|
48
|
-
sig { returns(T.nilable(T::Boolean)) }
|
49
|
-
attr_accessor :retry_connection_errors
|
50
|
-
|
51
|
-
sig { returns(T.nilable(::String)) }
|
52
|
-
attr_accessor :strategy
|
53
|
-
|
54
|
-
sig do
|
55
|
-
params(
|
56
|
-
backoff: T.nilable(BackoffStrategy),
|
57
|
-
retry_connection_errors: T.nilable(T::Boolean),
|
58
|
-
strategy: T.nilable(::String)
|
59
|
-
).void
|
60
|
-
end
|
61
|
-
def initialize(backoff: nil, retry_connection_errors: nil, strategy: nil)
|
62
|
-
@backoff = T.let(backoff, T.nilable(BackoffStrategy))
|
63
|
-
@retry_connection_errors = T.let(retry_connection_errors, T.nilable(T::Boolean))
|
64
|
-
@strategy = T.let(strategy, T.nilable(::String))
|
65
|
-
end
|
66
|
-
|
67
|
-
sig { params(initial_time: ::Time).returns(::Hash) }
|
68
|
-
def to_faraday_retry_options(initial_time:)
|
69
|
-
retry_options = {
|
70
|
-
# must overwrite default max of 2 retries and it must be positive
|
71
|
-
max: 1_000_000_000,
|
72
|
-
# ensure all HTTP methods are retried, especially via retry_if
|
73
|
-
methods: [],
|
74
|
-
}
|
75
|
-
|
76
|
-
if @retry_connection_errors
|
77
|
-
retry_options[:exceptions] = Faraday::Retry::Middleware::DEFAULT_EXCEPTIONS + [Faraday::ConnectionFailed]
|
78
|
-
end
|
79
|
-
|
80
|
-
if @strategy == 'backoff' && @backoff
|
81
|
-
retry_options[:backoff_factor] = @backoff.exponent unless @backoff.exponent.nil?
|
82
|
-
retry_options[:interval] = (@backoff.initial_interval.to_f / 1000) unless @backoff.initial_interval.nil?
|
83
|
-
retry_options[:max_interval] = @backoff.max_interval unless @backoff.max_interval.nil?
|
84
|
-
|
85
|
-
unless @backoff.max_elapsed_time.nil?
|
86
|
-
stop_time = initial_time + (@backoff.max_elapsed_time.to_f / 1000)
|
87
|
-
retry_options[:retry_if] = ->(_env, _exc) { Time.now < stop_time }
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
retry_options
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|