freeclimb 5.0.0 → 5.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/CHANGELOG.md +21 -1
- data/Gemfile +4 -4
- data/Gemfile.lock +34 -15
- data/README.md +5 -4
- data/Rakefile +1 -1
- data/docs/CreateConferenceRequest.md +1 -1
- data/docs/DefaultApi.md +1 -1
- data/docs/MessageResult.md +7 -1
- data/docs/TFNCampaign.md +34 -0
- data/freeclimb.gemspec +21 -26
- data/lib/freeclimb/api/default_api.rb +878 -878
- data/lib/freeclimb/api_client.rb +78 -83
- data/lib/freeclimb/api_error.rb +17 -19
- data/lib/freeclimb/configuration.rb +28 -31
- data/lib/freeclimb/models/account_request.rb +36 -41
- data/lib/freeclimb/models/account_result.rb +88 -92
- data/lib/freeclimb/models/account_status.rb +12 -14
- data/lib/freeclimb/models/account_type.rb +12 -14
- data/lib/freeclimb/models/add_to_conference.rb +81 -85
- data/lib/freeclimb/models/add_to_conference_notification_webhook.rb +99 -103
- data/lib/freeclimb/models/add_to_queue_notification_webhook.rb +78 -82
- data/lib/freeclimb/models/answered_by.rb +12 -14
- data/lib/freeclimb/models/application_list.rb +74 -78
- data/lib/freeclimb/models/application_request.rb +66 -70
- data/lib/freeclimb/models/application_result.rb +100 -104
- data/lib/freeclimb/models/available_number.rb +66 -70
- data/lib/freeclimb/models/available_number_list.rb +74 -78
- data/lib/freeclimb/models/barge_in_reason.rb +12 -14
- data/lib/freeclimb/models/buy_incoming_number_request.rb +41 -45
- data/lib/freeclimb/models/call_control_webhook.rb +56 -61
- data/lib/freeclimb/models/call_direction.rb +12 -14
- data/lib/freeclimb/models/call_ended_reason.rb +12 -14
- data/lib/freeclimb/models/call_list.rb +74 -78
- data/lib/freeclimb/models/call_result.rb +142 -146
- data/lib/freeclimb/models/call_status.rb +12 -14
- data/lib/freeclimb/models/call_status_webhook.rb +84 -88
- data/lib/freeclimb/models/capabilities.rb +55 -59
- data/lib/freeclimb/models/completion_request.rb +32 -36
- data/lib/freeclimb/models/completion_result.rb +36 -40
- data/lib/freeclimb/models/completion_result_status.rb +12 -14
- data/lib/freeclimb/models/conference_list.rb +74 -78
- data/lib/freeclimb/models/conference_participant_list.rb +74 -78
- data/lib/freeclimb/models/conference_participant_result.rb +88 -92
- data/lib/freeclimb/models/conference_recording_status_webhook.rb +99 -103
- data/lib/freeclimb/models/conference_result.rb +106 -110
- data/lib/freeclimb/models/conference_status.rb +12 -14
- data/lib/freeclimb/models/conference_status_webhook.rb +102 -106
- data/lib/freeclimb/models/create_conference.rb +60 -63
- data/lib/freeclimb/models/create_conference_request.rb +55 -54
- data/lib/freeclimb/models/create_conference_webhook.rb +102 -106
- data/lib/freeclimb/models/create_web_rtc_token.rb +42 -46
- data/lib/freeclimb/models/dequeue.rb +30 -37
- data/lib/freeclimb/models/dequeue_webhook.rb +89 -93
- data/lib/freeclimb/models/enqueue.rb +48 -52
- data/lib/freeclimb/models/filter_logs_request.rb +31 -35
- data/lib/freeclimb/models/get_digits.rb +73 -77
- data/lib/freeclimb/models/get_digits_reason.rb +12 -14
- data/lib/freeclimb/models/get_digits_webhook.rb +93 -97
- data/lib/freeclimb/models/get_speech.rb +94 -97
- data/lib/freeclimb/models/get_speech_reason.rb +12 -14
- data/lib/freeclimb/models/get_speech_webhook.rb +118 -122
- data/lib/freeclimb/models/grammar_file_built_in.rb +12 -14
- data/lib/freeclimb/models/grammar_type.rb +12 -14
- data/lib/freeclimb/models/hangup.rb +34 -39
- data/lib/freeclimb/models/if_machine.rb +12 -14
- data/lib/freeclimb/models/inbound_call_webhook.rb +85 -89
- data/lib/freeclimb/models/incoming_number_list.rb +74 -78
- data/lib/freeclimb/models/incoming_number_request.rb +41 -45
- data/lib/freeclimb/models/incoming_number_result.rb +122 -126
- data/lib/freeclimb/models/language.rb +12 -14
- data/lib/freeclimb/models/leave_conference_webhook.rb +79 -83
- data/lib/freeclimb/models/log_level.rb +12 -14
- data/lib/freeclimb/models/log_list.rb +74 -78
- data/lib/freeclimb/models/log_result.rb +67 -71
- data/lib/freeclimb/models/machine_detected_webhook.rb +89 -93
- data/lib/freeclimb/models/machine_type.rb +12 -14
- data/lib/freeclimb/models/make_call_request.rb +77 -81
- data/lib/freeclimb/models/message_delivery_webhook.rb +81 -86
- data/lib/freeclimb/models/message_direction.rb +12 -14
- data/lib/freeclimb/models/message_request.rb +72 -75
- data/lib/freeclimb/models/message_result.rb +150 -123
- data/lib/freeclimb/models/message_status.rb +12 -14
- data/lib/freeclimb/models/message_status_webhook.rb +86 -90
- data/lib/freeclimb/models/messages_list.rb +74 -78
- data/lib/freeclimb/models/mutable_resource_model.rb +46 -51
- data/lib/freeclimb/models/out_dial.rb +80 -84
- data/lib/freeclimb/models/out_dial_api_connect_webhook.rb +84 -88
- data/lib/freeclimb/models/out_dial_connect_webhook.rb +84 -88
- data/lib/freeclimb/models/out_dial_start_webhook.rb +90 -94
- data/lib/freeclimb/models/pagination_model.rb +67 -71
- data/lib/freeclimb/models/park.rb +44 -48
- data/lib/freeclimb/models/pause.rb +33 -37
- data/lib/freeclimb/models/percl_command.rb +36 -40
- data/lib/freeclimb/models/percl_script.rb +32 -36
- data/lib/freeclimb/models/play.rb +44 -48
- data/lib/freeclimb/models/play_beep.rb +12 -14
- data/lib/freeclimb/models/play_early_media.rb +33 -37
- data/lib/freeclimb/models/queue_list.rb +74 -78
- data/lib/freeclimb/models/queue_member.rb +55 -59
- data/lib/freeclimb/models/queue_member_list.rb +74 -78
- data/lib/freeclimb/models/queue_request.rb +37 -42
- data/lib/freeclimb/models/queue_result.rb +88 -92
- data/lib/freeclimb/models/queue_result_status.rb +12 -14
- data/lib/freeclimb/models/queue_wait_webhook.rb +94 -98
- data/lib/freeclimb/models/record_utterance.rb +63 -67
- data/lib/freeclimb/models/record_utterance_term_reason.rb +12 -14
- data/lib/freeclimb/models/record_webhook.rb +119 -123
- data/lib/freeclimb/models/recording_list.rb +74 -78
- data/lib/freeclimb/models/recording_result.rb +76 -80
- data/lib/freeclimb/models/redirect.rb +33 -37
- data/lib/freeclimb/models/redirect_webhook.rb +84 -88
- data/lib/freeclimb/models/reject.rb +34 -39
- data/lib/freeclimb/models/remove_from_conference.rb +30 -37
- data/lib/freeclimb/models/remove_from_queue_notification_webhook.rb +89 -93
- data/lib/freeclimb/models/request_type.rb +12 -14
- data/lib/freeclimb/models/say.rb +49 -53
- data/lib/freeclimb/models/send_digits.rb +43 -47
- data/lib/freeclimb/models/set_dtmf_pass_through.rb +34 -39
- data/lib/freeclimb/models/set_listen.rb +34 -39
- data/lib/freeclimb/models/set_talk.rb +34 -39
- data/lib/freeclimb/models/sms.rb +48 -52
- data/lib/freeclimb/models/sms_ten_dlc_brand.rb +187 -190
- data/lib/freeclimb/models/sms_ten_dlc_brand_alt_business_id_type.rb +12 -14
- data/lib/freeclimb/models/sms_ten_dlc_brand_entity_type.rb +12 -14
- data/lib/freeclimb/models/sms_ten_dlc_brand_identity_status.rb +12 -14
- data/lib/freeclimb/models/sms_ten_dlc_brand_relationship.rb +12 -14
- data/lib/freeclimb/models/sms_ten_dlc_brand_stock_exchange.rb +12 -14
- data/lib/freeclimb/models/sms_ten_dlc_brands_list_result.rb +74 -78
- data/lib/freeclimb/models/sms_ten_dlc_campaign.rb +226 -229
- data/lib/freeclimb/models/sms_ten_dlc_campaign_status.rb +12 -14
- data/lib/freeclimb/models/sms_ten_dlc_campaigns_list_result.rb +74 -78
- data/lib/freeclimb/models/sms_ten_dlc_partner_campaign.rb +186 -189
- data/lib/freeclimb/models/sms_ten_dlc_partner_campaign_brand.rb +84 -87
- data/lib/freeclimb/models/sms_ten_dlc_partner_campaign_status.rb +12 -14
- data/lib/freeclimb/models/sms_ten_dlc_partner_campaigns_list_result.rb +74 -78
- data/lib/freeclimb/models/sms_toll_free_campaign.rb +61 -64
- data/lib/freeclimb/models/sms_toll_free_campaign_registration_status.rb +12 -14
- data/lib/freeclimb/models/sms_toll_free_campaigns_list_result.rb +74 -78
- data/lib/freeclimb/models/start_record_call.rb +30 -37
- data/lib/freeclimb/models/terminate_conference.rb +30 -37
- data/lib/freeclimb/models/tfn.rb +31 -35
- data/lib/freeclimb/models/tfn_campaign.rb +367 -0
- data/lib/freeclimb/models/transcribe_reason.rb +12 -14
- data/lib/freeclimb/models/transcribe_term_reason.rb +12 -14
- data/lib/freeclimb/models/transcribe_utterance.rb +61 -65
- data/lib/freeclimb/models/transcribe_utterance_record.rb +43 -47
- data/lib/freeclimb/models/transcribe_webhook.rb +150 -154
- data/lib/freeclimb/models/unpark.rb +30 -37
- data/lib/freeclimb/models/update_call_request.rb +31 -35
- data/lib/freeclimb/models/update_call_request_status.rb +12 -14
- data/lib/freeclimb/models/update_conference_participant_request.rb +41 -46
- data/lib/freeclimb/models/update_conference_request.rb +41 -45
- data/lib/freeclimb/models/update_conference_request_status.rb +12 -14
- data/lib/freeclimb/models/webhook.rb +32 -37
- data/lib/freeclimb/utils/request_verifier.rb +14 -14
- data/lib/freeclimb/utils/signature_information.rb +8 -8
- data/lib/freeclimb/version.rb +10 -12
- data/lib/freeclimb.rb +156 -157
- data/openapi.json +96 -38
- data/package.json +1 -1
- data/spec/api/default_api_spec.rb +531 -793
- data/spec/api_client_spec.rb +100 -102
- data/spec/configuration_spec.rb +16 -18
- data/spec/models/account_request_spec.rb +106 -124
- data/spec/models/account_result_spec.rb +396 -453
- data/spec/models/account_status_spec.rb +28 -30
- data/spec/models/account_type_spec.rb +25 -27
- data/spec/models/add_to_conference_notification_webhook_spec.rb +465 -549
- data/spec/models/add_to_conference_spec.rb +355 -382
- data/spec/models/add_to_queue_notification_webhook_spec.rb +342 -402
- data/spec/models/answered_by_spec.rb +25 -27
- data/spec/models/application_list_spec.rb +290 -326
- data/spec/models/application_request_spec.rb +266 -289
- data/spec/models/application_result_spec.rb +445 -476
- data/spec/models/available_number_list_spec.rb +290 -326
- data/spec/models/available_number_spec.rb +279 -299
- data/spec/models/barge_in_reason_spec.rb +28 -30
- data/spec/models/buy_incoming_number_request_spec.rb +137 -156
- data/spec/models/call_control_webhook_spec.rb +204 -225
- data/spec/models/call_direction_spec.rb +28 -30
- data/spec/models/call_ended_reason_spec.rb +108 -110
- data/spec/models/call_list_spec.rb +290 -326
- data/spec/models/call_result_spec.rb +684 -772
- data/spec/models/call_status_spec.rb +48 -50
- data/spec/models/call_status_webhook_spec.rb +414 -492
- data/spec/models/capabilities_spec.rb +203 -223
- data/spec/models/completion_request_spec.rb +76 -92
- data/spec/models/completion_result_spec.rb +107 -143
- data/spec/models/completion_result_status_spec.rb +25 -27
- data/spec/models/conference_list_spec.rb +290 -326
- data/spec/models/conference_participant_list_spec.rb +290 -326
- data/spec/models/conference_participant_result_spec.rb +385 -414
- data/spec/models/conference_recording_status_webhook_spec.rb +465 -549
- data/spec/models/conference_result_spec.rb +492 -553
- data/spec/models/conference_status_spec.rb +32 -34
- data/spec/models/conference_status_webhook_spec.rb +465 -549
- data/spec/models/create_conference_request_spec.rb +205 -245
- data/spec/models/create_conference_spec.rb +237 -278
- data/spec/models/create_conference_webhook_spec.rb +465 -549
- data/spec/models/create_web_rtc_token_spec.rb +137 -159
- data/spec/models/dequeue_spec.rb +15 -17
- data/spec/models/dequeue_webhook_spec.rb +401 -465
- data/spec/models/enqueue_spec.rb +170 -190
- data/spec/models/filter_logs_request_spec.rb +74 -91
- data/spec/models/get_digits_reason_spec.rb +32 -34
- data/spec/models/get_digits_spec.rb +327 -361
- data/spec/models/get_digits_webhook_spec.rb +436 -517
- data/spec/models/get_speech_reason_spec.rb +40 -42
- data/spec/models/get_speech_spec.rb +400 -492
- data/spec/models/get_speech_webhook_spec.rb +608 -698
- data/spec/models/grammar_file_built_in_spec.rb +76 -78
- data/spec/models/grammar_type_spec.rb +25 -27
- data/spec/models/hangup_spec.rb +74 -91
- data/spec/models/if_machine_spec.rb +25 -27
- data/spec/models/inbound_call_webhook_spec.rb +372 -433
- data/spec/models/incoming_number_list_spec.rb +290 -326
- data/spec/models/incoming_number_request_spec.rb +137 -156
- data/spec/models/incoming_number_result_spec.rb +584 -613
- data/spec/models/language_spec.rb +121 -123
- data/spec/models/leave_conference_webhook_spec.rb +342 -402
- data/spec/models/log_level_spec.rb +28 -30
- data/spec/models/log_list_spec.rb +290 -326
- data/spec/models/log_result_spec.rb +275 -311
- data/spec/models/machine_detected_webhook_spec.rb +402 -482
- data/spec/models/machine_type_spec.rb +25 -27
- data/spec/models/make_call_request_spec.rb +354 -383
- data/spec/models/message_delivery_webhook_spec.rb +358 -384
- data/spec/models/message_direction_spec.rb +25 -27
- data/spec/models/message_request_spec.rb +325 -352
- data/spec/models/message_result_spec.rb +674 -598
- data/spec/models/message_status_spec.rb +61 -63
- data/spec/models/message_status_webhook_spec.rb +406 -451
- data/spec/models/messages_list_spec.rb +290 -326
- data/spec/models/mutable_resource_model_spec.rb +169 -191
- data/spec/models/out_dial_api_connect_webhook_spec.rb +372 -433
- data/spec/models/out_dial_connect_webhook_spec.rb +372 -433
- data/spec/models/out_dial_spec.rb +355 -401
- data/spec/models/out_dial_start_webhook_spec.rb +402 -464
- data/spec/models/pagination_model_spec.rb +260 -295
- data/spec/models/park_spec.rb +137 -156
- data/spec/models/pause_spec.rb +73 -92
- data/spec/models/percl_command_spec.rb +77 -94
- data/spec/models/percl_script_spec.rb +74 -91
- data/spec/models/play_beep_spec.rb +32 -34
- data/spec/models/play_early_media_spec.rb +74 -91
- data/spec/models/play_spec.rb +136 -157
- data/spec/models/queue_list_spec.rb +290 -326
- data/spec/models/queue_member_list_spec.rb +290 -326
- data/spec/models/queue_member_spec.rb +200 -225
- data/spec/models/queue_request_spec.rb +105 -125
- data/spec/models/queue_result_spec.rb +391 -419
- data/spec/models/queue_result_status_spec.rb +32 -34
- data/spec/models/queue_wait_webhook_spec.rb +430 -497
- data/spec/models/record_utterance_spec.rb +264 -291
- data/spec/models/record_utterance_term_reason_spec.rb +32 -34
- data/spec/models/record_webhook_spec.rb +605 -693
- data/spec/models/recording_list_spec.rb +290 -326
- data/spec/models/recording_result_spec.rb +324 -353
- data/spec/models/redirect_spec.rb +74 -91
- data/spec/models/redirect_webhook_spec.rb +372 -433
- data/spec/models/reject_spec.rb +74 -91
- data/spec/models/remove_from_conference_spec.rb +15 -17
- data/spec/models/remove_from_queue_notification_webhook_spec.rb +405 -487
- data/spec/models/request_type_spec.rb +108 -110
- data/spec/models/say_spec.rb +169 -191
- data/spec/models/send_digits_spec.rb +136 -157
- data/spec/models/set_dtmf_pass_through_spec.rb +75 -91
- data/spec/models/set_listen_spec.rb +75 -91
- data/spec/models/set_talk_spec.rb +75 -91
- data/spec/models/sms_spec.rb +170 -190
- data/spec/models/sms_ten_dlc_brand_alt_business_id_type_spec.rb +32 -34
- data/spec/models/sms_ten_dlc_brand_entity_type_spec.rb +36 -38
- data/spec/models/sms_ten_dlc_brand_identity_status_spec.rb +32 -34
- data/spec/models/sms_ten_dlc_brand_relationship_spec.rb +36 -38
- data/spec/models/sms_ten_dlc_brand_spec.rb +1083 -1201
- data/spec/models/sms_ten_dlc_brand_stock_exchange_spec.rb +125 -127
- data/spec/models/sms_ten_dlc_brands_list_result_spec.rb +290 -326
- data/spec/models/sms_ten_dlc_campaign_spec.rb +1140 -1208
- data/spec/models/sms_ten_dlc_campaign_status_spec.rb +25 -27
- data/spec/models/sms_ten_dlc_campaigns_list_result_spec.rb +290 -326
- data/spec/models/sms_ten_dlc_partner_campaign_brand_spec.rb +407 -425
- data/spec/models/sms_ten_dlc_partner_campaign_spec.rb +965 -1015
- data/spec/models/sms_ten_dlc_partner_campaign_status_spec.rb +25 -27
- data/spec/models/sms_ten_dlc_partner_campaigns_list_result_spec.rb +290 -326
- data/spec/models/sms_toll_free_campaign_registration_status_spec.rb +36 -38
- data/spec/models/sms_toll_free_campaign_spec.rb +271 -314
- data/spec/models/sms_toll_free_campaigns_list_result_spec.rb +290 -326
- data/spec/models/start_record_call_spec.rb +15 -17
- data/spec/models/terminate_conference_spec.rb +15 -17
- data/spec/models/tfn_campaign_spec.rb +561 -0
- data/spec/models/tfn_spec.rb +74 -91
- data/spec/models/transcribe_reason_spec.rb +36 -38
- data/spec/models/transcribe_term_reason_spec.rb +25 -27
- data/spec/models/transcribe_utterance_record_spec.rb +135 -158
- data/spec/models/transcribe_utterance_spec.rb +245 -265
- data/spec/models/transcribe_webhook_spec.rb +750 -874
- data/spec/models/unpark_spec.rb +15 -17
- data/spec/models/update_call_request_spec.rb +75 -109
- data/spec/models/update_call_request_status_spec.rb +25 -27
- data/spec/models/update_conference_participant_request_spec.rb +138 -156
- data/spec/models/update_conference_request_spec.rb +141 -195
- data/spec/models/update_conference_request_status_spec.rb +25 -27
- data/spec/models/webhook_spec.rb +69 -86
- data/spec/quickstart_spec.rb +5 -5
- data/spec/spec_helper.rb +92 -100
- data/spec/utils/request_verifier_spec.rb +70 -71
- data/spec/utils/signature_information_spec.rb +23 -23
- data/yarn.lock +9 -0
- metadata +9 -153
data/lib/freeclimb/api_client.rb
CHANGED
@@ -1,21 +1,19 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
|
4
|
-
#
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
require
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require 'time'
|
18
|
-
require 'typhoeus'
|
1
|
+
# #FreeClimb API
|
2
|
+
#
|
3
|
+
# FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.
|
4
|
+
#
|
5
|
+
# The version of the OpenAPI document: 1.0.0
|
6
|
+
# Contact: support@freeclimb.com
|
7
|
+
# Generated by: https://openapi-generator.tech
|
8
|
+
# OpenAPI Generator version: 7.9.0
|
9
|
+
#
|
10
|
+
|
11
|
+
require "date"
|
12
|
+
require "json"
|
13
|
+
require "logger"
|
14
|
+
require "tempfile"
|
15
|
+
require "time"
|
16
|
+
require "typhoeus"
|
19
17
|
|
20
18
|
module Freeclimb
|
21
19
|
class ApiClient
|
@@ -33,8 +31,8 @@ module Freeclimb
|
|
33
31
|
@config = config
|
34
32
|
@user_agent = "OpenAPI-Generator/#{VERSION}/ruby"
|
35
33
|
@default_headers = {
|
36
|
-
|
37
|
-
|
34
|
+
"Content-Type" => "application/json",
|
35
|
+
"User-Agent" => @user_agent
|
38
36
|
}
|
39
37
|
end
|
40
38
|
|
@@ -56,25 +54,23 @@ module Freeclimb
|
|
56
54
|
|
57
55
|
unless response.success?
|
58
56
|
if response.timed_out?
|
59
|
-
fail ApiError.new(
|
57
|
+
fail ApiError.new("Connection timed out")
|
60
58
|
elsif response.code == 0
|
61
59
|
# Errors from libcurl will be made visible here
|
62
|
-
fail ApiError.new(:
|
63
|
-
|
60
|
+
fail ApiError.new(code: 0,
|
61
|
+
message: response.return_message)
|
64
62
|
else
|
65
|
-
fail ApiError.new(:
|
66
|
-
|
67
|
-
|
68
|
-
|
63
|
+
fail ApiError.new(code: response.code,
|
64
|
+
response_headers: response.headers,
|
65
|
+
response_body: response.body),
|
66
|
+
response.status_message
|
69
67
|
end
|
70
68
|
end
|
71
69
|
|
72
|
-
if opts[:return_type]
|
73
|
-
|
74
|
-
else
|
75
|
-
data = nil
|
70
|
+
data = if opts[:return_type]
|
71
|
+
deserialize(response, opts[:return_type])
|
76
72
|
end
|
77
|
-
|
73
|
+
[data, response.code, response.headers]
|
78
74
|
end
|
79
75
|
|
80
76
|
# Builds the HTTP request
|
@@ -100,16 +96,16 @@ module Freeclimb
|
|
100
96
|
_verify_ssl_host = @config.verify_ssl_host ? 2 : 0
|
101
97
|
|
102
98
|
req_opts = {
|
103
|
-
:
|
104
|
-
:
|
105
|
-
:
|
106
|
-
:
|
107
|
-
:
|
108
|
-
:
|
109
|
-
:
|
110
|
-
:
|
111
|
-
:
|
112
|
-
:
|
99
|
+
method: http_method,
|
100
|
+
headers: header_params,
|
101
|
+
params: query_params,
|
102
|
+
params_encoding: @config.params_encoding,
|
103
|
+
timeout: @config.timeout,
|
104
|
+
ssl_verifypeer: @config.verify_ssl,
|
105
|
+
ssl_verifyhost: _verify_ssl_host,
|
106
|
+
sslcert: @config.cert_file,
|
107
|
+
sslkey: @config.key_file,
|
108
|
+
verbose: @config.debugging
|
113
109
|
}
|
114
110
|
|
115
111
|
# set custom cert, if provided
|
@@ -117,14 +113,14 @@ module Freeclimb
|
|
117
113
|
|
118
114
|
if [:post, :patch, :put, :delete].include?(http_method)
|
119
115
|
req_body = build_request_body(header_params, form_params, opts[:body])
|
120
|
-
req_opts.update :
|
116
|
+
req_opts.update body: req_body
|
121
117
|
if @config.debugging
|
122
118
|
@config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
|
123
119
|
end
|
124
120
|
end
|
125
121
|
|
126
122
|
request = Typhoeus::Request.new(url, req_opts)
|
127
|
-
download_file(request) if opts[:return_type] ==
|
123
|
+
download_file(request) if opts[:return_type] == "File"
|
128
124
|
request
|
129
125
|
end
|
130
126
|
|
@@ -136,16 +132,16 @@ module Freeclimb
|
|
136
132
|
# @return [String] HTTP body data in the form of string
|
137
133
|
def build_request_body(header_params, form_params, body)
|
138
134
|
# http form
|
139
|
-
if header_params[
|
140
|
-
header_params[
|
135
|
+
if header_params["Content-Type"] == "application/x-www-form-urlencoded" ||
|
136
|
+
header_params["Content-Type"] == "multipart/form-data"
|
141
137
|
data = {}
|
142
138
|
form_params.each do |key, value|
|
143
|
-
case value
|
139
|
+
data[key] = case value
|
144
140
|
when ::File, ::Array, nil
|
145
141
|
# let typhoeus handle File, Array and nil parameters
|
146
|
-
|
142
|
+
value
|
147
143
|
else
|
148
|
-
|
144
|
+
value.to_s
|
149
145
|
end
|
150
146
|
end
|
151
147
|
elsif body
|
@@ -167,14 +163,14 @@ module Freeclimb
|
|
167
163
|
tempfile = nil
|
168
164
|
encoding = nil
|
169
165
|
request.on_headers do |response|
|
170
|
-
content_disposition = response.headers[
|
166
|
+
content_disposition = response.headers["Content-Disposition"]
|
171
167
|
if content_disposition && content_disposition =~ /filename=/i
|
172
168
|
filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
|
173
169
|
prefix = sanitize_filename(filename)
|
174
170
|
else
|
175
|
-
prefix =
|
171
|
+
prefix = "download-"
|
176
172
|
end
|
177
|
-
prefix
|
173
|
+
prefix += "-" unless prefix.end_with?("-")
|
178
174
|
encoding = response.body.encoding
|
179
175
|
tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
|
180
176
|
@tempfile = tempfile
|
@@ -186,9 +182,9 @@ module Freeclimb
|
|
186
182
|
request.on_complete do |response|
|
187
183
|
if tempfile
|
188
184
|
tempfile.close
|
189
|
-
@config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
|
190
|
-
"with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
|
191
|
-
"will be deleted automatically with GC. It's also recommended to delete the temp file "\
|
185
|
+
@config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder " \
|
186
|
+
"with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file " \
|
187
|
+
"will be deleted automatically with GC. It's also recommended to delete the temp file " \
|
192
188
|
"explicitly with `tempfile.delete`"
|
193
189
|
end
|
194
190
|
end
|
@@ -203,7 +199,7 @@ module Freeclimb
|
|
203
199
|
# @param [String] mime MIME
|
204
200
|
# @return [Boolean] True if the MIME is application/json
|
205
201
|
def json_mime?(mime)
|
206
|
-
(mime ==
|
202
|
+
(mime == "*/*") || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
|
207
203
|
end
|
208
204
|
|
209
205
|
# Deserialize the response to the given return type.
|
@@ -215,22 +211,22 @@ module Freeclimb
|
|
215
211
|
|
216
212
|
# handle file downloading - return the File instance processed in request callbacks
|
217
213
|
# note that response body is empty when the file is written in chunks in request on_body callback
|
218
|
-
return @tempfile if return_type ==
|
214
|
+
return @tempfile if return_type == "File"
|
219
215
|
|
220
216
|
return nil if body.nil? || body.empty?
|
221
217
|
|
222
218
|
# return response body directly for String return type
|
223
|
-
return body if return_type ==
|
219
|
+
return body if return_type == "String"
|
224
220
|
|
225
221
|
# ensuring a default content type
|
226
|
-
content_type = response.headers[
|
222
|
+
content_type = response.headers["Content-Type"] || "application/json"
|
227
223
|
|
228
224
|
fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
|
229
225
|
|
230
226
|
begin
|
231
|
-
data = JSON.parse("[#{body}]", :
|
227
|
+
data = JSON.parse("[#{body}]", symbolize_names: true)[0]
|
232
228
|
rescue JSON::ParserError => e
|
233
|
-
if %w
|
229
|
+
if %w[String Date Time].include?(return_type)
|
234
230
|
data = body
|
235
231
|
else
|
236
232
|
raise e
|
@@ -247,28 +243,28 @@ module Freeclimb
|
|
247
243
|
def convert_to_type(data, return_type)
|
248
244
|
return nil if data.nil?
|
249
245
|
case return_type
|
250
|
-
when
|
246
|
+
when "String"
|
251
247
|
data.to_s
|
252
|
-
when
|
248
|
+
when "Integer"
|
253
249
|
data.to_i
|
254
|
-
when
|
250
|
+
when "Float"
|
255
251
|
data.to_f
|
256
|
-
when
|
252
|
+
when "Boolean"
|
257
253
|
data == true
|
258
|
-
when
|
254
|
+
when "Time"
|
259
255
|
# parse date time (expecting ISO 8601 format)
|
260
256
|
Time.parse data
|
261
|
-
when
|
257
|
+
when "Date"
|
262
258
|
# parse date time (expecting ISO 8601 format)
|
263
259
|
Date.parse data
|
264
|
-
when
|
260
|
+
when "Object"
|
265
261
|
# generic object (usually a Hash), return directly
|
266
262
|
data
|
267
263
|
when /\AArray<(.+)>\z/
|
268
264
|
# e.g. Array<Pet>
|
269
265
|
sub_type = $1
|
270
266
|
data.map { |item| convert_to_type(item, sub_type) }
|
271
|
-
when /\AHash
|
267
|
+
when /\AHash<String, (.+)>\z/
|
272
268
|
# e.g. Hash<String, Integer>
|
273
269
|
sub_type = $1
|
274
270
|
{}.tap do |hash|
|
@@ -287,12 +283,12 @@ module Freeclimb
|
|
287
283
|
# @param [String] filename the filename to be sanitized
|
288
284
|
# @return [String] the sanitized filename
|
289
285
|
def sanitize_filename(filename)
|
290
|
-
filename.gsub(/.*[\/\\]/,
|
286
|
+
filename.gsub(/.*[\/\\]/, "")
|
291
287
|
end
|
292
288
|
|
293
289
|
def build_request_url(path, opts = {})
|
294
290
|
# Add leading and trailing slashes to path
|
295
|
-
path = "/#{path}".
|
291
|
+
path = "/#{path}".squeeze("/")
|
296
292
|
@config.base_url(opts[:operation]) + path
|
297
293
|
end
|
298
294
|
|
@@ -306,9 +302,9 @@ module Freeclimb
|
|
306
302
|
auth_setting = @config.auth_settings[auth_name]
|
307
303
|
next unless auth_setting
|
308
304
|
case auth_setting[:in]
|
309
|
-
when
|
310
|
-
when
|
311
|
-
else fail ArgumentError,
|
305
|
+
when "header" then header_params[auth_setting[:key]] = auth_setting[:value]
|
306
|
+
when "query" then query_params[auth_setting[:key]] = auth_setting[:value]
|
307
|
+
else fail ArgumentError, "Authentication token must be in `query` or `header`"
|
312
308
|
end
|
313
309
|
end
|
314
310
|
end
|
@@ -318,7 +314,7 @@ module Freeclimb
|
|
318
314
|
# @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0)
|
319
315
|
def user_agent=(user_agent)
|
320
316
|
@user_agent = user_agent
|
321
|
-
@default_headers[
|
317
|
+
@default_headers["User-Agent"] = @user_agent
|
322
318
|
end
|
323
319
|
|
324
320
|
# Return Accept header based on an array of accepts provided.
|
@@ -328,7 +324,7 @@ module Freeclimb
|
|
328
324
|
return nil if accepts.nil? || accepts.empty?
|
329
325
|
# use JSON when present, otherwise use all of the provided
|
330
326
|
json_accept = accepts.find { |s| json_mime?(s) }
|
331
|
-
json_accept || accepts.join(
|
327
|
+
json_accept || accepts.join(",")
|
332
328
|
end
|
333
329
|
|
334
330
|
# Return Content-Type header based on an array of content types provided.
|
@@ -347,11 +343,10 @@ module Freeclimb
|
|
347
343
|
# @return [String] JSON string representation of the object
|
348
344
|
def object_to_http_body(model)
|
349
345
|
return model if model.nil? || model.is_a?(String)
|
350
|
-
local_body =
|
351
|
-
|
352
|
-
local_body = model.map { |m| object_to_hash(m) }
|
346
|
+
local_body = if model.is_a?(Array)
|
347
|
+
model.map { |m| object_to_hash(m) }
|
353
348
|
else
|
354
|
-
|
349
|
+
object_to_hash(model)
|
355
350
|
end
|
356
351
|
local_body.to_json
|
357
352
|
end
|
@@ -372,13 +367,13 @@ module Freeclimb
|
|
372
367
|
def build_collection_param(param, collection_format)
|
373
368
|
case collection_format
|
374
369
|
when :csv
|
375
|
-
param.join(
|
370
|
+
param.join(",")
|
376
371
|
when :ssv
|
377
|
-
param.join(
|
372
|
+
param.join(" ")
|
378
373
|
when :tsv
|
379
374
|
param.join("\t")
|
380
375
|
when :pipes
|
381
|
-
param.join(
|
376
|
+
param.join("|")
|
382
377
|
when :multi
|
383
378
|
# return the array directly as typhoeus will handle it as expected
|
384
379
|
param
|
data/lib/freeclimb/api_error.rb
CHANGED
@@ -1,14 +1,12 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
|
4
|
-
#
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
=end
|
1
|
+
# #FreeClimb API
|
2
|
+
#
|
3
|
+
# FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.
|
4
|
+
#
|
5
|
+
# The version of the OpenAPI document: 1.0.0
|
6
|
+
# Contact: support@freeclimb.com
|
7
|
+
# Generated by: https://openapi-generator.tech
|
8
|
+
# OpenAPI Generator version: 7.9.0
|
9
|
+
#
|
12
10
|
|
13
11
|
module Freeclimb
|
14
12
|
class ApiError < StandardError
|
@@ -21,17 +19,17 @@ module Freeclimb
|
|
21
19
|
# ApiError.new(:code => 404, :message => "Not Found")
|
22
20
|
def initialize(arg = nil)
|
23
21
|
if arg.is_a? Hash
|
24
|
-
if arg.key?(:message) || arg.key?(
|
25
|
-
super(arg[:message] || arg[
|
22
|
+
if arg.key?(:message) || arg.key?("message")
|
23
|
+
super(arg[:message] || arg["message"])
|
26
24
|
else
|
27
|
-
super
|
25
|
+
super
|
28
26
|
end
|
29
27
|
|
30
28
|
arg.each do |k, v|
|
31
|
-
instance_variable_set "@#{k}", v
|
29
|
+
instance_variable_set :"@#{k}", v
|
32
30
|
end
|
33
31
|
else
|
34
|
-
super
|
32
|
+
super
|
35
33
|
end
|
36
34
|
end
|
37
35
|
|
@@ -41,10 +39,10 @@ module Freeclimb
|
|
41
39
|
end
|
42
40
|
|
43
41
|
def message
|
44
|
-
if @message.nil?
|
45
|
-
|
42
|
+
msg = if @message.nil?
|
43
|
+
"Error message: the server returns an error"
|
46
44
|
else
|
47
|
-
|
45
|
+
@message
|
48
46
|
end
|
49
47
|
|
50
48
|
msg += "\nHTTP status code: #{code}" if code
|
@@ -1,14 +1,12 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
|
4
|
-
#
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
=end
|
1
|
+
# #FreeClimb API
|
2
|
+
#
|
3
|
+
# FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request.
|
4
|
+
#
|
5
|
+
# The version of the OpenAPI document: 1.0.0
|
6
|
+
# Contact: support@freeclimb.com
|
7
|
+
# Generated by: https://openapi-generator.tech
|
8
|
+
# OpenAPI Generator version: 7.9.0
|
9
|
+
#
|
12
10
|
|
13
11
|
module Freeclimb
|
14
12
|
class Configuration
|
@@ -138,9 +136,9 @@ module Freeclimb
|
|
138
136
|
attr_accessor :force_ending_format
|
139
137
|
|
140
138
|
def initialize
|
141
|
-
@scheme =
|
142
|
-
@host =
|
143
|
-
@base_path =
|
139
|
+
@scheme = "https"
|
140
|
+
@host = "www.freeclimb.com"
|
141
|
+
@base_path = "/apiserver"
|
144
142
|
@server_index = 0
|
145
143
|
@server_operation_index = {}
|
146
144
|
@server_variables = {}
|
@@ -173,24 +171,24 @@ module Freeclimb
|
|
173
171
|
|
174
172
|
def scheme=(scheme)
|
175
173
|
# remove :// from scheme
|
176
|
-
@scheme = scheme.sub(
|
174
|
+
@scheme = scheme.sub("://", "")
|
177
175
|
end
|
178
176
|
|
179
177
|
def host=(host)
|
180
178
|
# remove http(s):// and anything after a slash
|
181
|
-
@host = host.sub(/https?:\/\//,
|
179
|
+
@host = host.sub(/https?:\/\//, "").split("/").first
|
182
180
|
end
|
183
181
|
|
184
182
|
def base_path=(base_path)
|
185
183
|
# Add leading and trailing slashes to base_path
|
186
|
-
@base_path = "/#{base_path}".
|
187
|
-
@base_path =
|
184
|
+
@base_path = "/#{base_path}".squeeze("/")
|
185
|
+
@base_path = "" if @base_path == "/"
|
188
186
|
end
|
189
187
|
|
190
188
|
# Returns base URL for specified operation based on server settings
|
191
189
|
def base_url(operation = nil)
|
192
190
|
index = server_operation_index.fetch(operation, server_index)
|
193
|
-
return "#{scheme}://#{[host, base_path].join(
|
191
|
+
return "#{scheme}://#{[host, base_path].join("/").squeeze("/")}".sub(/\/+\z/, "") if index.nil?
|
194
192
|
|
195
193
|
server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation])
|
196
194
|
end
|
@@ -209,19 +207,19 @@ module Freeclimb
|
|
209
207
|
|
210
208
|
# Gets Basic Auth token string
|
211
209
|
def basic_auth_token
|
212
|
-
|
210
|
+
"Basic " + ["#{username}:#{password}"].pack("m").delete("\r\n")
|
213
211
|
end
|
214
212
|
|
215
213
|
# Returns Auth Settings hash for api client.
|
216
214
|
def auth_settings
|
217
215
|
{
|
218
|
-
|
216
|
+
"fc" =>
|
219
217
|
{
|
220
|
-
type:
|
221
|
-
in:
|
222
|
-
key:
|
218
|
+
type: "basic",
|
219
|
+
in: "header",
|
220
|
+
key: "Authorization",
|
223
221
|
value: basic_auth_token
|
224
|
-
}
|
222
|
+
}
|
225
223
|
}
|
226
224
|
end
|
227
225
|
|
@@ -230,14 +228,13 @@ module Freeclimb
|
|
230
228
|
[
|
231
229
|
{
|
232
230
|
url: "https://www.freeclimb.com/apiserver",
|
233
|
-
description: "No description provided"
|
231
|
+
description: "No description provided"
|
234
232
|
}
|
235
233
|
]
|
236
234
|
end
|
237
235
|
|
238
236
|
def operation_server_settings
|
239
|
-
{
|
240
|
-
}
|
237
|
+
{}
|
241
238
|
end
|
242
239
|
|
243
240
|
# Returns URL based on server settings
|
@@ -245,10 +242,10 @@ module Freeclimb
|
|
245
242
|
# @param index array index of the server settings
|
246
243
|
# @param variables hash of variable and the corresponding value
|
247
244
|
def server_url(index, variables = {}, servers = nil)
|
248
|
-
servers = server_settings if servers
|
245
|
+
servers = server_settings if servers.nil?
|
249
246
|
|
250
247
|
# check array index out of bound
|
251
|
-
if
|
248
|
+
if index < 0 || index >= servers.size
|
252
249
|
fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}"
|
253
250
|
end
|
254
251
|
|
@@ -260,7 +257,7 @@ module Freeclimb
|
|
260
257
|
# go through variable and assign a value
|
261
258
|
server[:variables].each do |name, variable|
|
262
259
|
if variables.key?(name)
|
263
|
-
if
|
260
|
+
if !server[:variables][name].key?(:enum_values) || server[:variables][name][:enum_values].include?(variables[name])
|
264
261
|
url.gsub! "{" + name.to_s + "}", variables[name]
|
265
262
|
else
|
266
263
|
fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}."
|