bandwidth-sdk 10.1.0 → 11.0.0.pre.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +9 -0
- data/Gemfile.lock +77 -0
- data/README.md +197 -139
- data/Rakefile +22 -0
- data/bandwidth-sdk.gemspec +40 -0
- data/bandwidth.yml +5544 -0
- data/docs/AccountStatistics.md +20 -0
- data/docs/AnswerCallback.md +44 -0
- data/docs/BridgeCompleteCallback.md +48 -0
- data/docs/BridgeTargetCompleteCallback.md +42 -0
- data/docs/CallDirectionEnum.md +15 -0
- data/docs/CallRecordingMetadata.md +52 -0
- data/docs/CallState.md +52 -0
- data/docs/CallStateEnum.md +15 -0
- data/docs/CallbackMethodEnum.md +15 -0
- data/docs/CallsApi.md +304 -0
- data/docs/CodeRequest.md +28 -0
- data/docs/Conference.md +32 -0
- data/docs/ConferenceCompletedCallback.md +26 -0
- data/docs/ConferenceCreatedCallback.md +26 -0
- data/docs/ConferenceMember.md +28 -0
- data/docs/ConferenceMemberExitCallback.md +32 -0
- data/docs/ConferenceMemberJoinCallback.md +32 -0
- data/docs/ConferenceRecordingAvailableCallback.md +44 -0
- data/docs/ConferenceRecordingMetadata.md +38 -0
- data/docs/ConferenceRedirectCallback.md +26 -0
- data/docs/ConferenceStateEnum.md +15 -0
- data/docs/ConferencesApi.md +688 -0
- data/docs/CreateCall.md +54 -0
- data/docs/CreateCallResponse.md +58 -0
- data/docs/CreateLookupResponse.md +20 -0
- data/docs/CreateMessageRequestError.md +22 -0
- data/docs/CreateParticipantRequest.md +24 -0
- data/docs/CreateParticipantResponse.md +20 -0
- data/docs/DeferredResult.md +20 -0
- data/docs/DeviceApiVersionEnum.md +15 -0
- data/docs/DisconenctCallback.md +50 -0
- data/docs/DisconnectCallback.md +50 -0
- data/docs/Diversion.md +30 -0
- data/docs/DtmfCallback.md +50 -0
- data/docs/FieldError.md +20 -0
- data/docs/FileFormatEnum.md +15 -0
- data/docs/ForbiddenRequest.md +18 -0
- data/docs/GatherCallback.md +52 -0
- data/docs/InboundMessageCallback.md +26 -0
- data/docs/InboundMessageCallbackMessage.md +40 -0
- data/docs/InitiateCallback.md +40 -0
- data/docs/ListMessageDirectionEnum.md +15 -0
- data/docs/ListMessageItem.md +48 -0
- data/docs/LookupRequest.md +18 -0
- data/docs/LookupResult.md +34 -0
- data/docs/LookupStatus.md +24 -0
- data/docs/LookupStatusEnum.md +15 -0
- data/docs/MFAApi.md +226 -0
- data/docs/MachineDetectionCompleteCallback.md +44 -0
- data/docs/MachineDetectionConfiguration.md +46 -0
- data/docs/MachineDetectionModeEnum.md +15 -0
- data/docs/Media.md +22 -0
- data/docs/MediaApi.md +307 -0
- data/docs/Message.md +40 -0
- data/docs/MessageDeliveredCallback.md +26 -0
- data/docs/MessageDeliveredCallbackMessage.md +40 -0
- data/docs/MessageDirectionEnum.md +15 -0
- data/docs/MessageFailedCallback.md +28 -0
- data/docs/MessageFailedCallbackMessage.md +40 -0
- data/docs/MessageRequest.md +32 -0
- data/docs/MessageSendingCallback.md +26 -0
- data/docs/MessageSendingCallbackMessage.md +40 -0
- data/docs/MessageStatusEnum.md +15 -0
- data/docs/MessageTypeEnum.md +15 -0
- data/docs/MessagesApi.md +179 -0
- data/docs/MessagesList.md +22 -0
- data/docs/MessagingCodeResponse.md +18 -0
- data/docs/MessagingRequestError.md +20 -0
- data/docs/MfaForbiddenRequestError.md +18 -0
- data/docs/MfaRequestError.md +20 -0
- data/docs/MfaUnauthorizedRequestError.md +18 -0
- data/docs/PageInfo.md +24 -0
- data/docs/Participant.md +30 -0
- data/docs/ParticipantSubscription.md +20 -0
- data/docs/ParticipantsApi.md +227 -0
- data/docs/PhoneNumberLookupApi.md +153 -0
- data/docs/PriorityEnum.md +15 -0
- data/docs/PublishPermissionsEnum.md +15 -0
- data/docs/RecordingAvailableCallback.md +60 -0
- data/docs/RecordingCompleteCallback.md +60 -0
- data/docs/RecordingStateEnum.md +15 -0
- data/docs/RecordingsApi.md +758 -0
- data/docs/RedirectCallback.md +48 -0
- data/docs/RedirectMethodEnum.md +15 -0
- data/docs/RequestError.md +20 -0
- data/docs/Session.md +20 -0
- data/docs/SessionsApi.md +605 -0
- data/docs/StatisticsApi.md +78 -0
- data/docs/StirShaken.md +22 -0
- data/docs/Subscriptions.md +20 -0
- data/docs/Tag.md +20 -0
- data/docs/TnLookupRequestError.md +18 -0
- data/docs/TranscribeRecording.md +28 -0
- data/docs/Transcription.md +20 -0
- data/docs/TranscriptionAvailableCallback.md +58 -0
- data/docs/TranscriptionList.md +18 -0
- data/docs/TranscriptionMetadata.md +24 -0
- data/docs/TransferAnswerCallback.md +46 -0
- data/docs/TransferCompleteCallback.md +52 -0
- data/docs/TransferDisconnectCallback.md +56 -0
- data/docs/UnauthorizedRequest.md +18 -0
- data/docs/UpdateCall.md +36 -0
- data/docs/UpdateCallRecording.md +18 -0
- data/docs/UpdateConference.md +34 -0
- data/docs/UpdateConferenceMember.md +22 -0
- data/docs/VerifyCodeRequest.md +24 -0
- data/docs/VerifyCodeResponse.md +18 -0
- data/docs/VoiceApiError.md +22 -0
- data/docs/VoiceCodeResponse.md +18 -0
- data/git_push.sh +57 -0
- data/lib/bandwidth-sdk/api/calls_api.rb +325 -0
- data/lib/bandwidth-sdk/api/conferences_api.rb +717 -0
- data/lib/bandwidth-sdk/api/media_api.rb +312 -0
- data/lib/bandwidth-sdk/api/messages_api.rb +198 -0
- data/lib/bandwidth-sdk/api/mfa_api.rb +244 -0
- data/lib/bandwidth-sdk/api/phone_number_lookup_api.rb +165 -0
- data/lib/bandwidth-sdk/api/recordings_api.rb +782 -0
- data/lib/bandwidth-sdk/api/statistics_api.rb +85 -0
- data/lib/bandwidth-sdk/api_client.rb +428 -0
- data/lib/bandwidth-sdk/api_error.rb +58 -0
- data/lib/bandwidth-sdk/configuration.rb +589 -0
- data/lib/bandwidth-sdk/models/account_statistics.rb +230 -0
- data/lib/bandwidth-sdk/models/answer_callback.rb +376 -0
- data/lib/bandwidth-sdk/models/bridge_complete_callback.rb +397 -0
- data/lib/bandwidth-sdk/models/bridge_target_complete_callback.rb +365 -0
- data/lib/bandwidth-sdk/models/bxml/bxml.rb +13 -0
- data/lib/bandwidth-sdk/models/bxml/nestable_verb.rb +50 -0
- data/lib/bandwidth-sdk/models/bxml/response.rb +13 -0
- data/lib/bandwidth-sdk/models/bxml/root.rb +47 -0
- data/lib/bandwidth-sdk/models/bxml/verb.rb +51 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/bridge.rb +30 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/conference.rb +31 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/forward.rb +22 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/gather.rb +44 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/hangup.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/pause.rb +17 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/pause_recording.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/phone_number.rb +28 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/play_audio.rb +19 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/record.rb +34 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/redirect.rb +25 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/resume_recording.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/ring.rb +18 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/send_dtmf.rb +19 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/sip_uri.rb +29 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/speak_sentence.rb +27 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/start_gather.rb +21 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/start_recording.rb +26 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/start_stream.rb +30 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stop_gather.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stop_recording.rb +12 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stop_stream.rb +17 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/stream_param.rb +18 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/tag.rb +13 -0
- data/lib/bandwidth-sdk/models/bxml/verbs/transfer.rb +36 -0
- data/lib/bandwidth-sdk/models/call_direction_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/call_recording_metadata.rb +411 -0
- data/lib/bandwidth-sdk/models/call_state.rb +423 -0
- data/lib/bandwidth-sdk/models/call_state_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/callback_method_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/code_request.rb +427 -0
- data/lib/bandwidth-sdk/models/conference.rb +320 -0
- data/lib/bandwidth-sdk/models/conference_completed_callback.rb +262 -0
- data/lib/bandwidth-sdk/models/conference_created_callback.rb +262 -0
- data/lib/bandwidth-sdk/models/conference_member.rb +273 -0
- data/lib/bandwidth-sdk/models/conference_member_exit_callback.rb +292 -0
- data/lib/bandwidth-sdk/models/conference_member_join_callback.rb +292 -0
- data/lib/bandwidth-sdk/models/conference_recording_available_callback.rb +374 -0
- data/lib/bandwidth-sdk/models/conference_recording_metadata.rb +342 -0
- data/lib/bandwidth-sdk/models/conference_redirect_callback.rb +262 -0
- data/lib/bandwidth-sdk/models/conference_state_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/create_call.rb +651 -0
- data/lib/bandwidth-sdk/models/create_call_response.rb +552 -0
- data/lib/bandwidth-sdk/models/create_lookup_response.rb +252 -0
- data/lib/bandwidth-sdk/models/create_message_request_error.rb +249 -0
- data/lib/bandwidth-sdk/models/deferred_result.rb +228 -0
- data/lib/bandwidth-sdk/models/disconenct_callback.rb +407 -0
- data/lib/bandwidth-sdk/models/disconnect_callback.rb +407 -0
- data/lib/bandwidth-sdk/models/diversion.rb +280 -0
- data/lib/bandwidth-sdk/models/dtmf_callback.rb +405 -0
- data/lib/bandwidth-sdk/models/field_error.rb +230 -0
- data/lib/bandwidth-sdk/models/file_format_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/gather_callback.rb +415 -0
- data/lib/bandwidth-sdk/models/inbound_message_callback.rb +281 -0
- data/lib/bandwidth-sdk/models/inbound_message_callback_message.rb +399 -0
- data/lib/bandwidth-sdk/models/initiate_callback.rb +350 -0
- data/lib/bandwidth-sdk/models/list_message_direction_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/list_message_item.rb +394 -0
- data/lib/bandwidth-sdk/models/lookup_request.rb +227 -0
- data/lib/bandwidth-sdk/models/lookup_result.rb +301 -0
- data/lib/bandwidth-sdk/models/lookup_status.rb +276 -0
- data/lib/bandwidth-sdk/models/lookup_status_enum.rb +42 -0
- data/lib/bandwidth-sdk/models/machine_detection_complete_callback.rb +376 -0
- data/lib/bandwidth-sdk/models/machine_detection_configuration.rb +500 -0
- data/lib/bandwidth-sdk/models/machine_detection_mode_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/media.rb +237 -0
- data/lib/bandwidth-sdk/models/message.rb +366 -0
- data/lib/bandwidth-sdk/models/message_delivered_callback.rb +281 -0
- data/lib/bandwidth-sdk/models/message_delivered_callback_message.rb +404 -0
- data/lib/bandwidth-sdk/models/message_direction_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/message_failed_callback.rb +295 -0
- data/lib/bandwidth-sdk/models/message_failed_callback_message.rb +409 -0
- data/lib/bandwidth-sdk/models/message_request.rb +355 -0
- data/lib/bandwidth-sdk/models/message_sending_callback.rb +281 -0
- data/lib/bandwidth-sdk/models/message_sending_callback_message.rb +409 -0
- data/lib/bandwidth-sdk/models/message_status_enum.rb +46 -0
- data/lib/bandwidth-sdk/models/message_type_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/messages_list.rb +240 -0
- data/lib/bandwidth-sdk/models/messaging_code_response.rb +220 -0
- data/lib/bandwidth-sdk/models/messaging_request_error.rb +238 -0
- data/lib/bandwidth-sdk/models/mfa_forbidden_request_error.rb +220 -0
- data/lib/bandwidth-sdk/models/mfa_request_error.rb +230 -0
- data/lib/bandwidth-sdk/models/mfa_unauthorized_request_error.rb +220 -0
- data/lib/bandwidth-sdk/models/page_info.rb +250 -0
- data/lib/bandwidth-sdk/models/priority_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/recording_available_callback.rb +454 -0
- data/lib/bandwidth-sdk/models/recording_complete_callback.rb +455 -0
- data/lib/bandwidth-sdk/models/recording_state_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/redirect_callback.rb +395 -0
- data/lib/bandwidth-sdk/models/redirect_method_enum.rb +40 -0
- data/lib/bandwidth-sdk/models/stir_shaken.rb +240 -0
- data/lib/bandwidth-sdk/models/tag.rb +228 -0
- data/lib/bandwidth-sdk/models/tn_lookup_request_error.rb +220 -0
- data/lib/bandwidth-sdk/models/transcribe_recording.rb +354 -0
- data/lib/bandwidth-sdk/models/transcription.rb +230 -0
- data/lib/bandwidth-sdk/models/transcription_available_callback.rb +443 -0
- data/lib/bandwidth-sdk/models/transcription_list.rb +221 -0
- data/lib/bandwidth-sdk/models/transcription_metadata.rb +251 -0
- data/lib/bandwidth-sdk/models/transfer_answer_callback.rb +385 -0
- data/lib/bandwidth-sdk/models/transfer_complete_callback.rb +417 -0
- data/lib/bandwidth-sdk/models/transfer_disconnect_callback.rb +437 -0
- data/lib/bandwidth-sdk/models/update_call.rb +411 -0
- data/lib/bandwidth-sdk/models/update_call_recording.rb +246 -0
- data/lib/bandwidth-sdk/models/update_conference.rb +394 -0
- data/lib/bandwidth-sdk/models/update_conference_member.rb +243 -0
- data/lib/bandwidth-sdk/models/verify_code_request.rb +342 -0
- data/lib/bandwidth-sdk/models/verify_code_response.rb +220 -0
- data/lib/bandwidth-sdk/models/voice_api_error.rb +238 -0
- data/lib/bandwidth-sdk/models/voice_code_response.rb +220 -0
- data/lib/bandwidth-sdk/version.rb +15 -0
- data/lib/bandwidth-sdk.rb +166 -0
- data/openapi-config.yml +11 -0
- data/ruby-notes.md +64 -0
- data/spec/call_utils.rb +74 -0
- data/spec/fixtures/ruby_cat.jpeg +0 -0
- data/spec/integration/calls_api_integration_spec.rb +181 -0
- data/spec/integration/conferences_api_integration_spec.rb +163 -0
- data/spec/integration/media_api_integration_spec.rb +86 -0
- data/spec/integration/messages_api_integration_spec.rb +97 -0
- data/spec/integration/mfa_api_integration_spec.rb +109 -0
- data/spec/integration/phone_number_lookup_api_integration_spec.rb +92 -0
- data/spec/integration/recordings_api_integration_spec.rb +219 -0
- data/spec/integration/statistics_api_integration_spec.rb +57 -0
- data/spec/spec_helper.rb +154 -0
- data/spec/unit/api/calls_api_spec.rb +89 -0
- data/spec/unit/api/conferences_api_spec.rb +163 -0
- data/spec/unit/api/media_api_spec.rb +90 -0
- data/spec/unit/api/messages_api_spec.rb +73 -0
- data/spec/unit/api/mfa_api_spec.rb +74 -0
- data/spec/unit/api/phone_number_lookup_api_spec.rb +61 -0
- data/spec/unit/api/recordings_api_spec.rb +177 -0
- data/spec/unit/api/statistics_api_spec.rb +47 -0
- data/spec/unit/models/account_statistics_spec.rb +40 -0
- data/spec/unit/models/answer_callback_spec.rb +112 -0
- data/spec/unit/models/bridge_complete_callback_spec.rb +124 -0
- data/spec/unit/models/bridge_target_complete_callback_spec.rb +106 -0
- data/spec/unit/models/bxml/bxml_spec.rb +18 -0
- data/spec/unit/models/bxml/nestable_verb_spec.rb +13 -0
- data/spec/unit/models/bxml/response_spec.rb +18 -0
- data/spec/unit/models/bxml/verb_spec.rb +28 -0
- data/spec/unit/models/bxml/verbs/bridge_spec.rb +60 -0
- data/spec/unit/models/bxml/verbs/conference_spec.rb +60 -0
- data/spec/unit/models/bxml/verbs/forward_spec.rb +46 -0
- data/spec/unit/models/bxml/verbs/gather_spec.rb +88 -0
- data/spec/unit/models/bxml/verbs/hangup_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/pause_recording_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/pause_spec.rb +36 -0
- data/spec/unit/models/bxml/verbs/phone_number_spec.rb +56 -0
- data/spec/unit/models/bxml/verbs/play_audio_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/record_spec.rb +70 -0
- data/spec/unit/models/bxml/verbs/redirect_spec.rb +52 -0
- data/spec/unit/models/bxml/verbs/resume_recording_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/ring_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/send_dtmf_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/sip_uri_spec.rb +58 -0
- data/spec/unit/models/bxml/verbs/speak_sentence_spec.rb +40 -0
- data/spec/unit/models/bxml/verbs/start_gather_spec.rb +44 -0
- data/spec/unit/models/bxml/verbs/start_recording_spec.rb +54 -0
- data/spec/unit/models/bxml/verbs/start_stream_spec.rb +74 -0
- data/spec/unit/models/bxml/verbs/stop_gather_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/stop_recording_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/stop_stream_spec.rb +36 -0
- data/spec/unit/models/bxml/verbs/stream_param_spec.rb +38 -0
- data/spec/unit/models/bxml/verbs/tag_spec.rb +18 -0
- data/spec/unit/models/bxml/verbs/transfer_spec.rb +86 -0
- data/spec/unit/models/call_direction_enum_spec.rb +28 -0
- data/spec/unit/models/call_recording_metadata_spec.rb +136 -0
- data/spec/unit/models/call_state_enum_spec.rb +28 -0
- data/spec/unit/models/call_state_spec.rb +136 -0
- data/spec/unit/models/callback_method_enum_spec.rb +28 -0
- data/spec/unit/models/code_request_spec.rb +64 -0
- data/spec/unit/models/conference_completed_callback_spec.rb +58 -0
- data/spec/unit/models/conference_created_callback_spec.rb +58 -0
- data/spec/unit/models/conference_member_exit_callback_spec.rb +76 -0
- data/spec/unit/models/conference_member_join_callback_spec.rb +76 -0
- data/spec/unit/models/conference_member_spec.rb +64 -0
- data/spec/unit/models/conference_recording_available_callback_spec.rb +112 -0
- data/spec/unit/models/conference_recording_metadata_spec.rb +94 -0
- data/spec/unit/models/conference_redirect_callback_spec.rb +58 -0
- data/spec/unit/models/conference_spec.rb +76 -0
- data/spec/unit/models/conference_state_enum_spec.rb +28 -0
- data/spec/unit/models/create_call_response_spec.rb +154 -0
- data/spec/unit/models/create_call_spec.rb +142 -0
- data/spec/unit/models/create_lookup_response_spec.rb +40 -0
- data/spec/unit/models/create_message_request_error_spec.rb +46 -0
- data/spec/unit/models/deferred_result_spec.rb +40 -0
- data/spec/unit/models/disconnect_callback_spec.rb +130 -0
- data/spec/unit/models/diversion_spec.rb +70 -0
- data/spec/unit/models/dtmf_callback_spec.rb +130 -0
- data/spec/unit/models/field_error_spec.rb +40 -0
- data/spec/unit/models/file_format_enum_spec.rb +28 -0
- data/spec/unit/models/gather_callback_spec.rb +136 -0
- data/spec/unit/models/inbound_message_callback_message_spec.rb +100 -0
- data/spec/unit/models/inbound_message_callback_spec.rb +58 -0
- data/spec/unit/models/initiate_callback_spec.rb +100 -0
- data/spec/unit/models/list_message_direction_enum_spec.rb +28 -0
- data/spec/unit/models/list_message_item_spec.rb +124 -0
- data/spec/unit/models/lookup_request_spec.rb +34 -0
- data/spec/unit/models/lookup_result_spec.rb +82 -0
- data/spec/unit/models/lookup_status_enum_spec.rb +28 -0
- data/spec/unit/models/lookup_status_spec.rb +52 -0
- data/spec/unit/models/machine_detection_complete_callback_spec.rb +112 -0
- data/spec/unit/models/machine_detection_configuration_spec.rb +118 -0
- data/spec/unit/models/machine_detection_mode_enum_spec.rb +28 -0
- data/spec/unit/models/media_spec.rb +46 -0
- data/spec/unit/models/message_delivered_callback_message_spec.rb +100 -0
- data/spec/unit/models/message_delivered_callback_spec.rb +58 -0
- data/spec/unit/models/message_direction_enum_spec.rb +28 -0
- data/spec/unit/models/message_failed_callback_message_spec.rb +100 -0
- data/spec/unit/models/message_failed_callback_spec.rb +64 -0
- data/spec/unit/models/message_request_spec.rb +76 -0
- data/spec/unit/models/message_sending_callback_message_spec.rb +100 -0
- data/spec/unit/models/message_sending_callback_spec.rb +58 -0
- data/spec/unit/models/message_spec.rb +100 -0
- data/spec/unit/models/message_status_enum_spec.rb +28 -0
- data/spec/unit/models/message_type_enum_spec.rb +28 -0
- data/spec/unit/models/messages_list_spec.rb +46 -0
- data/spec/unit/models/messaging_code_response_spec.rb +34 -0
- data/spec/unit/models/messaging_request_error_spec.rb +40 -0
- data/spec/unit/models/mfa_forbidden_request_error_spec.rb +34 -0
- data/spec/unit/models/mfa_request_error_spec.rb +40 -0
- data/spec/unit/models/mfa_unauthorized_request_error_spec.rb +34 -0
- data/spec/unit/models/page_info_spec.rb +52 -0
- data/spec/unit/models/priority_enum_spec.rb +28 -0
- data/spec/unit/models/recording_available_callback_spec.rb +160 -0
- data/spec/unit/models/recording_complete_callback_spec.rb +160 -0
- data/spec/unit/models/recording_state_enum_spec.rb +28 -0
- data/spec/unit/models/redirect_callback_spec.rb +124 -0
- data/spec/unit/models/redirect_method_enum_spec.rb +28 -0
- data/spec/unit/models/stir_shaken_spec.rb +46 -0
- data/spec/unit/models/tag_spec.rb +40 -0
- data/spec/unit/models/tn_lookup_request_error_spec.rb +34 -0
- data/spec/unit/models/transcribe_recording_spec.rb +64 -0
- data/spec/unit/models/transcription_available_callback_spec.rb +154 -0
- data/spec/unit/models/transcription_list_spec.rb +34 -0
- data/spec/unit/models/transcription_metadata_spec.rb +52 -0
- data/spec/unit/models/transcription_spec.rb +40 -0
- data/spec/unit/models/transfer_answer_callback_spec.rb +118 -0
- data/spec/unit/models/transfer_complete_callback_spec.rb +136 -0
- data/spec/unit/models/transfer_disconnect_callback_spec.rb +148 -0
- data/spec/unit/models/update_call_recording_spec.rb +34 -0
- data/spec/unit/models/update_call_spec.rb +88 -0
- data/spec/unit/models/update_conference_member_spec.rb +46 -0
- data/spec/unit/models/update_conference_spec.rb +82 -0
- data/spec/unit/models/verify_code_request_spec.rb +52 -0
- data/spec/unit/models/verify_code_response_spec.rb +34 -0
- data/spec/unit/models/voice_api_error_spec.rb +46 -0
- data/spec/unit/models/voice_code_response_spec.rb +34 -0
- metadata +542 -280
- data/LICENSE +0 -28
- data/lib/bandwidth/api_helper.rb +0 -280
- data/lib/bandwidth/client.rb +0 -75
- data/lib/bandwidth/configuration.rb +0 -209
- data/lib/bandwidth/exceptions/api_exception.rb +0 -20
- data/lib/bandwidth/http/api_response.rb +0 -38
- data/lib/bandwidth/http/auth/messaging_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/multi_factor_auth_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/phone_number_lookup_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/voice_basic_auth.rb +0 -22
- data/lib/bandwidth/http/auth/web_rtc_basic_auth.rb +0 -22
- data/lib/bandwidth/http/faraday_client.rb +0 -73
- data/lib/bandwidth/http/http_call_back.rb +0 -24
- data/lib/bandwidth/http/http_client.rb +0 -104
- data/lib/bandwidth/http/http_method_enum.rb +0 -13
- data/lib/bandwidth/http/http_request.rb +0 -50
- data/lib/bandwidth/http/http_response.rb +0 -29
- data/lib/bandwidth/messaging_lib/messaging/client.rb +0 -60
- data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +0 -491
- data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/messaging_lib/messaging/exceptions/messaging_exception.rb +0 -37
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_callback_message.rb +0 -100
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +0 -164
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +0 -203
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_messages_list.rb +0 -79
- data/lib/bandwidth/messaging_lib/messaging/models/deferred_result.rb +0 -60
- data/lib/bandwidth/messaging_lib/messaging/models/media.rb +0 -70
- data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +0 -111
- data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +0 -82
- data/lib/bandwidth/messaging_lib/messaging/models/priority_enum.rb +0 -19
- data/lib/bandwidth/messaging_lib/messaging/models/tag.rb +0 -60
- data/lib/bandwidth/messaging_lib/messaging.rb +0 -25
- data/lib/bandwidth/models/base_model.rb +0 -58
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/client.rb +0 -60
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/controllers/mfa_controller.rb +0 -214
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/error_with_request_exception.rb +0 -37
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/forbidden_request_exception.rb +0 -32
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/unauthorized_request_exception.rb +0 -32
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_code_request_schema.rb +0 -103
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_messaging_response.rb +0 -50
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_verify_code_response.rb +0 -50
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_verify_request_schema.rb +0 -94
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/models/two_factor_voice_response.rb +0 -50
- data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth.rb +0 -23
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/client.rb +0 -60
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +0 -1553
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb +0 -32
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +0 -50
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +0 -61
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +0 -95
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +0 -132
- data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup.rb +0 -20
- data/lib/bandwidth/utilities/date_time_helper.rb +0 -156
- data/lib/bandwidth/utilities/file_wrapper.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/bxml.rb +0 -36
- data/lib/bandwidth/voice_lib/bxml/response.rb +0 -39
- data/lib/bandwidth/voice_lib/bxml/verbs/bridge.rb +0 -28
- data/lib/bandwidth/voice_lib/bxml/verbs/conference.rb +0 -32
- data/lib/bandwidth/voice_lib/bxml/verbs/forward.rb +0 -18
- data/lib/bandwidth/voice_lib/bxml/verbs/gather.rb +0 -49
- data/lib/bandwidth/voice_lib/bxml/verbs/hangup.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/pause.rb +0 -15
- data/lib/bandwidth/voice_lib/bxml/verbs/pause_recording.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/phone_number.rb +0 -24
- data/lib/bandwidth/voice_lib/bxml/verbs/play_audio.rb +0 -17
- data/lib/bandwidth/voice_lib/bxml/verbs/record.rb +0 -33
- data/lib/bandwidth/voice_lib/bxml/verbs/redirect.rb +0 -24
- data/lib/bandwidth/voice_lib/bxml/verbs/resume_recording.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/ring.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/verbs/send_dtmf.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/verbs/sip_uri.rb +0 -25
- data/lib/bandwidth/voice_lib/bxml/verbs/speak_sentence.rb +0 -18
- data/lib/bandwidth/voice_lib/bxml/verbs/start_gather.rb +0 -20
- data/lib/bandwidth/voice_lib/bxml/verbs/start_recording.rb +0 -25
- data/lib/bandwidth/voice_lib/bxml/verbs/start_stream.rb +0 -22
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_gather.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_recording.rb +0 -14
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_stream.rb +0 -16
- data/lib/bandwidth/voice_lib/bxml/verbs/tag.rb +0 -13
- data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +0 -48
- data/lib/bandwidth/voice_lib/bxml/verbs/xml_verb.rb +0 -26
- data/lib/bandwidth/voice_lib/voice/client.rb +0 -60
- data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +0 -1820
- data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/voice_lib/voice/exceptions/api_error_exception.rb +0 -42
- data/lib/bandwidth/voice_lib/voice/models/answer_fallback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/answer_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/call_callback.rb +0 -343
- data/lib/bandwidth/voice_lib/voice/models/call_recording_metadata.rb +0 -250
- data/lib/bandwidth/voice_lib/voice/models/call_state.rb +0 -301
- data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/conference_callback.rb +0 -211
- data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/conference_member_state.rb +0 -103
- data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata.rb +0 -173
- data/lib/bandwidth/voice_lib/voice/models/conference_state.rb +0 -153
- data/lib/bandwidth/voice_lib/voice/models/create_call_request.rb +0 -236
- data/lib/bandwidth/voice_lib/voice/models/create_call_response.rb +0 -266
- data/lib/bandwidth/voice_lib/voice/models/direction_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/disconnect_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/diversion.rb +0 -80
- data/lib/bandwidth/voice_lib/voice/models/fallback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/file_format_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/machine_detection_configuration.rb +0 -231
- data/lib/bandwidth/voice_lib/voice/models/mode_enum.rb +0 -20
- data/lib/bandwidth/voice_lib/voice/models/modify_call_recording_request.rb +0 -48
- data/lib/bandwidth/voice_lib/voice/models/modify_call_request.rb +0 -156
- data/lib/bandwidth/voice_lib/voice/models/modify_conference_request.rb +0 -144
- data/lib/bandwidth/voice_lib/voice/models/redirect_fallback_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/redirect_method_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +0 -20
- data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/status_enum.rb +0 -17
- data/lib/bandwidth/voice_lib/voice/models/transcribe_recording_request.rb +0 -108
- data/lib/bandwidth/voice_lib/voice/models/transcript.rb +0 -60
- data/lib/bandwidth/voice_lib/voice/models/transcription.rb +0 -80
- data/lib/bandwidth/voice_lib/voice/models/transcription_metadata.rb +0 -89
- data/lib/bandwidth/voice_lib/voice/models/transcription_response.rb +0 -59
- data/lib/bandwidth/voice_lib/voice.rb +0 -48
- data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +0 -18
- data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +0 -60
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +0 -703
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +0 -47
- data/lib/bandwidth/web_rtc_lib/web_rtc/exceptions/error_exception.rb +0 -37
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/accounts_participants_response.rb +0 -62
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/device_api_version_enum.rb +0 -17
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +0 -115
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant_subscription.rb +0 -48
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/publish_permission_enum.rb +0 -17
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/session.rb +0 -60
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/subscriptions.rb +0 -71
- data/lib/bandwidth/web_rtc_lib/web_rtc.rb +0 -22
- data/lib/bandwidth.rb +0 -73
- data/test/controllers/controller_test_base.rb +0 -21
- data/test/http_response_catcher.rb +0 -19
- data/test/integration/test_integration.rb +0 -721
- data/test/test_helper.rb +0 -94
data/ruby-notes.md
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
# Config and Basic Auth
|
2
|
+
|
3
|
+
## APIMatic
|
4
|
+
|
5
|
+
```ruby
|
6
|
+
bandwidth_client = Bandwidth::Client.new(
|
7
|
+
messaging_basic_auth_user_name: BW_USERNAME,
|
8
|
+
messaging_basic_auth_password: BW_PASSWORD
|
9
|
+
)
|
10
|
+
messaging_client = bandwidth_client.messaging_client.client
|
11
|
+
```
|
12
|
+
|
13
|
+
## OpenAPIGenerator
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
OpenapiClient.configure do |config|
|
17
|
+
config.username = BW_USERNAME
|
18
|
+
config.password = BW_PASSWORD
|
19
|
+
end
|
20
|
+
messaging_client = OpenapiClient::MessagesApi.new()
|
21
|
+
```
|
22
|
+
|
23
|
+
# Send SMS
|
24
|
+
|
25
|
+
## APIMatic
|
26
|
+
```ruby
|
27
|
+
account_id = BW_ACCOUNT_ID
|
28
|
+
|
29
|
+
body = MessageRequest.new
|
30
|
+
body.application_id = BW_MESSAGING_APPLICATION_ID
|
31
|
+
body.to = [USER_NUMBER]
|
32
|
+
body.from = BW_NUMBER
|
33
|
+
body.text = "Hello World!"
|
34
|
+
|
35
|
+
messaging_client.create_message(account_id, body)
|
36
|
+
```
|
37
|
+
|
38
|
+
## OpenAPIGenerator
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
account_id = BW_ACCOUNT_ID
|
42
|
+
|
43
|
+
body = OpenapiClient::MessageRequest.new(
|
44
|
+
application_id: BW_MESSAGING_APPLICATION_ID.to_s,
|
45
|
+
to: [USER_NUMBER],
|
46
|
+
from: BW_NUMBER,
|
47
|
+
text: "ruby new sdk test"
|
48
|
+
)
|
49
|
+
|
50
|
+
messaging_client.create_message(account_id, body)
|
51
|
+
```
|
52
|
+
|
53
|
+
# OpenApiGenerator Quirks
|
54
|
+
|
55
|
+
* To get a custom url, instead of setting the `environment` parameter in the config, you must make a custom operation in `configuration.rb`
|
56
|
+
``` ruby
|
57
|
+
"Pipedream": [
|
58
|
+
{
|
59
|
+
url: "https://d6979da481772c167be0edcd10eb64d7.m.pipedream.net",
|
60
|
+
description: "testing"
|
61
|
+
}
|
62
|
+
],
|
63
|
+
```
|
64
|
+
this must go in `operation_server_settings` and then `:operation => :"Pipedream",` must go in `new_options = opts.merge(` for the method you are calling within the `?_api.rb` file for the specific api
|
data/spec/call_utils.rb
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Helper functions for voice calls
|
2
|
+
# These are reused in multiple tests
|
3
|
+
|
4
|
+
def setup_manteca(type)
|
5
|
+
manteca_body = {
|
6
|
+
os: OPERATING_SYSTEM,
|
7
|
+
language: RUBY_VERSION,
|
8
|
+
type: type
|
9
|
+
}
|
10
|
+
manteca_test_url = URI(MANTECA_BASE_URL + "/tests")
|
11
|
+
manteca_header = { 'Content-Type': 'application/json' }
|
12
|
+
|
13
|
+
begin
|
14
|
+
test_id = Net::HTTP.post(manteca_test_url, manteca_body.to_json, manteca_header)
|
15
|
+
return test_id.body.to_s.gsub("\"", "")
|
16
|
+
rescue => e
|
17
|
+
puts e.inspect
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_manteca_call(tag = "ruby", answer_path = "/bxml/pause", calls_api)
|
22
|
+
manteca_call_body = Bandwidth::CreateCall.new(
|
23
|
+
application_id: MANTECA_APPLICATION_ID,
|
24
|
+
to: MANTECA_IDLE_NUMBER,
|
25
|
+
from: MANTECA_ACTIVE_NUMBER,
|
26
|
+
answer_url: MANTECA_BASE_URL + answer_path,
|
27
|
+
tag: tag
|
28
|
+
)
|
29
|
+
|
30
|
+
response = calls_api.create_call(BW_ACCOUNT_ID, manteca_call_body)
|
31
|
+
$active_calls.append(response.call_id)
|
32
|
+
return response.call_id
|
33
|
+
end
|
34
|
+
|
35
|
+
def get_manteca_test_status(test_id)
|
36
|
+
manteca_status_url = URI(MANTECA_BASE_URL + "/tests/" + test_id)
|
37
|
+
response = JSON.parse(Net::HTTP.get(manteca_status_url))
|
38
|
+
return response
|
39
|
+
end
|
40
|
+
|
41
|
+
def cleanup_calls(calls, calls_api)
|
42
|
+
attempts = 0
|
43
|
+
|
44
|
+
while (calls.length > 0 && attempts < 10)
|
45
|
+
calls.delete_if { |call_id| call_ended(call_id, calls_api) }
|
46
|
+
sleep(SLEEP_TIME_S)
|
47
|
+
attempts += 1
|
48
|
+
end
|
49
|
+
|
50
|
+
if (calls.length > 0)
|
51
|
+
error_message = "Failed to terminate all calls" + calls.to_s
|
52
|
+
raise StandardError.new error_message
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def call_ended(call_id, calls_api)
|
57
|
+
begin
|
58
|
+
response = calls_api.get_call_state(BW_ACCOUNT_ID, call_id)
|
59
|
+
rescue Bandwidth::ApiError
|
60
|
+
return false
|
61
|
+
end
|
62
|
+
|
63
|
+
if !(response.state == 'disconnected')
|
64
|
+
begin
|
65
|
+
calls_api.update_call(BW_ACCOUNT_ID, call_id, $complete_call_body)
|
66
|
+
return true
|
67
|
+
rescue Bandwidth::ApiError
|
68
|
+
end
|
69
|
+
else
|
70
|
+
return true
|
71
|
+
end
|
72
|
+
|
73
|
+
return false
|
74
|
+
end
|
Binary file
|
@@ -0,0 +1,181 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'json'
|
3
|
+
require_relative '../call_utils'
|
4
|
+
|
5
|
+
# Integration Tests for Bandwidth::CallsApi
|
6
|
+
describe 'CallsApi Integration Tests' do
|
7
|
+
before(:all) do
|
8
|
+
Bandwidth.configure do |config|
|
9
|
+
config.username = BW_USERNAME
|
10
|
+
config.password = BW_PASSWORD
|
11
|
+
end
|
12
|
+
@api_instance_calls = Bandwidth::CallsApi.new
|
13
|
+
$call_info_id = ""
|
14
|
+
end
|
15
|
+
|
16
|
+
# Create Call
|
17
|
+
describe 'create_call' do
|
18
|
+
it 'creates a call with amd' do
|
19
|
+
amd_config = Bandwidth::MachineDetectionConfiguration.new(
|
20
|
+
mode: "async",
|
21
|
+
detection_timeout: 5.0,
|
22
|
+
silence_timeout: 5.0,
|
23
|
+
speech_threshold: 5.0,
|
24
|
+
speech_end_threshold: 5.0,
|
25
|
+
delay_result: true,
|
26
|
+
callback_url: BASE_CALLBACK_URL + "/machineDetection",
|
27
|
+
callback_method: Bandwidth::CallbackMethodEnum::POST
|
28
|
+
)
|
29
|
+
|
30
|
+
call_body = Bandwidth::CreateCall.new(
|
31
|
+
application_id: BW_VOICE_APPLICATION_ID,
|
32
|
+
to: USER_NUMBER,
|
33
|
+
from: BW_NUMBER,
|
34
|
+
answer_url: BASE_CALLBACK_URL + "/callbacks/answer",
|
35
|
+
answer_method: "POST",
|
36
|
+
disconnect_url: BASE_CALLBACK_URL + "/callbacks/disconnect",
|
37
|
+
disconnect_method: "GET",
|
38
|
+
machine_detection: amd_config,
|
39
|
+
call_timeout: 30.0,
|
40
|
+
callback_timeout: 15.0
|
41
|
+
)
|
42
|
+
|
43
|
+
response = @api_instance_calls.create_call_with_http_info(BW_ACCOUNT_ID, call_body)
|
44
|
+
sleep(SLEEP_TIME_S)
|
45
|
+
|
46
|
+
expect(response[CODE]).to eq(201)
|
47
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::CreateCallResponse)
|
48
|
+
expect(response[DATA].call_id.length).to eq(47)
|
49
|
+
expect(response[DATA].account_id).to eq(BW_ACCOUNT_ID)
|
50
|
+
expect(response[DATA].application_id).to eq(BW_VOICE_APPLICATION_ID)
|
51
|
+
expect(response[DATA].to).to eq(USER_NUMBER)
|
52
|
+
expect(response[DATA].from).to eq(BW_NUMBER)
|
53
|
+
expect(response[DATA].call_id)
|
54
|
+
expect(response[DATA].call_timeout).to eq(30.0)
|
55
|
+
expect(response[DATA].callback_timeout).to eq(15.0)
|
56
|
+
expect(response[DATA].enqueued_time).to be_instance_of(Time)
|
57
|
+
expect(response[DATA].answer_method).to eq(Bandwidth::CallbackMethodEnum::POST)
|
58
|
+
expect(response[DATA].disconnect_method).to eq("GET")
|
59
|
+
expect(response[DATA].answer_url).to eq(BASE_CALLBACK_URL + "/callbacks/answer")
|
60
|
+
expect(response[DATA].disconnect_url).to eq(BASE_CALLBACK_URL + "/callbacks/disconnect")
|
61
|
+
|
62
|
+
$call_info_id = response[DATA].call_id
|
63
|
+
$active_calls.append($call_info_id)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
# Get Call State Information
|
68
|
+
describe 'get_call_state' do
|
69
|
+
it 'gets the call state' do
|
70
|
+
response = @api_instance_calls.get_call_state_with_http_info(BW_ACCOUNT_ID, $call_info_id)
|
71
|
+
|
72
|
+
expect(response[CODE]).to eq(200)
|
73
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::CallState)
|
74
|
+
expect(response[DATA].call_id).to eq($call_info_id)
|
75
|
+
expect(response[DATA].account_id).to eq(BW_ACCOUNT_ID)
|
76
|
+
expect(response[DATA].application_id).to eq(BW_VOICE_APPLICATION_ID)
|
77
|
+
expect(response[DATA].start_time).to be_instance_of(Time)
|
78
|
+
expect(response[DATA].last_update).to be_instance_of(Time)
|
79
|
+
expect(response[DATA].state).to be_instance_of(String)
|
80
|
+
expect(response[DATA].direction).to eq(Bandwidth::CallDirectionEnum::OUTBOUND)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
# Update Call
|
85
|
+
describe 'update_call' do
|
86
|
+
it 'creates and updates a call' do
|
87
|
+
update_call_body = Bandwidth::UpdateCall.new(
|
88
|
+
state: Bandwidth::CallStateEnum::ACTIVE,
|
89
|
+
redirect_url: MANTECA_BASE_URL + "/bxml/pause"
|
90
|
+
)
|
91
|
+
|
92
|
+
update_call_id = create_manteca_call(@api_instance_calls)
|
93
|
+
sleep(SLEEP_TIME_S)
|
94
|
+
|
95
|
+
update_response = @api_instance_calls.update_call_with_http_info(BW_ACCOUNT_ID, update_call_id, update_call_body)
|
96
|
+
expect(update_response[CODE]).to eq(200)
|
97
|
+
sleep(SLEEP_TIME_S)
|
98
|
+
|
99
|
+
complete_response = @api_instance_calls.update_call_with_http_info(BW_ACCOUNT_ID, update_call_id, $complete_call_body)
|
100
|
+
expect(complete_response[CODE]).to eq(200)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
# Update Call BXML
|
105
|
+
describe 'update_call_bxml' do
|
106
|
+
it 'updates a call using bxml' do
|
107
|
+
update_call_id = create_manteca_call(@api_instance_calls)
|
108
|
+
sleep(SLEEP_TIME_S)
|
109
|
+
|
110
|
+
update_bxml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Bxml><SpeakSentence locale=\"en_US\" gender=\"female\" voice=\"susan\">This is a test bxml response</SpeakSentence><Pause duration=\"3\"/></Bxml>";
|
111
|
+
update_response = @api_instance_calls.update_call_bxml_with_http_info(BW_ACCOUNT_ID, update_call_id, update_bxml)
|
112
|
+
expect(update_response[CODE]).to eq(204)
|
113
|
+
sleep(SLEEP_TIME_S)
|
114
|
+
|
115
|
+
complete_response = @api_instance_calls.update_call_with_http_info(BW_ACCOUNT_ID, update_call_id, $complete_call_body)
|
116
|
+
expect(complete_response[CODE]).to eq(200)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
# HTTP 4XX Errors
|
121
|
+
describe 'http error' do
|
122
|
+
it 'causes a 400 error' do
|
123
|
+
call_body_bad = Bandwidth::CreateCall.new(
|
124
|
+
application_id: BW_VOICE_APPLICATION_ID,
|
125
|
+
to: "+1invalid",
|
126
|
+
from: BW_NUMBER,
|
127
|
+
answer_url: BASE_CALLBACK_URL + "/callbacks/answer",
|
128
|
+
answer_method: "POST",
|
129
|
+
disconnect_url: BASE_CALLBACK_URL + "/callbacks/disconnect",
|
130
|
+
disconnect_method: "GET"
|
131
|
+
)
|
132
|
+
|
133
|
+
expect {
|
134
|
+
@api_instance_calls.create_call_with_http_info(BW_ACCOUNT_ID, call_body_bad)
|
135
|
+
}.to raise_error { |e|
|
136
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
137
|
+
expect(e.code).to eq(400)
|
138
|
+
}
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'causes a 404 error' do
|
142
|
+
dne_id = "does-not-exist"
|
143
|
+
|
144
|
+
expect {
|
145
|
+
@api_instance_calls.get_call_state_with_http_info(BW_ACCOUNT_ID, dne_id)
|
146
|
+
}.to raise_error { |e|
|
147
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
148
|
+
expect(e.code).to eq(404)
|
149
|
+
}
|
150
|
+
end
|
151
|
+
|
152
|
+
it 'causes a 401 error' do
|
153
|
+
Bandwidth.configure do |config|
|
154
|
+
config.username = 'bad_username'
|
155
|
+
config.password = 'bad_password'
|
156
|
+
end
|
157
|
+
|
158
|
+
expect {
|
159
|
+
@api_instance_calls.get_call_state_with_http_info(BW_ACCOUNT_ID, $call_info_id)
|
160
|
+
}.to raise_error { |e|
|
161
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
162
|
+
expect(e.code).to eq(401)
|
163
|
+
}
|
164
|
+
end
|
165
|
+
|
166
|
+
it 'causes a 403 error' do
|
167
|
+
Bandwidth.configure do |config|
|
168
|
+
config.username = FORBIDDEN_USERNAME
|
169
|
+
config.password = FORBIDDEN_PASSWORD
|
170
|
+
end
|
171
|
+
|
172
|
+
expect {
|
173
|
+
@api_instance_calls.get_call_state_with_http_info(BW_ACCOUNT_ID, $call_info_id)
|
174
|
+
}.to raise_error { |e|
|
175
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
176
|
+
expect(e.code).to eq(403)
|
177
|
+
}
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'json'
|
3
|
+
require_relative '../call_utils'
|
4
|
+
|
5
|
+
# Integration Tests for Bandwidth::ConferencesApi
|
6
|
+
describe 'ConferencesApi Integration Tests' do
|
7
|
+
before(:all) do
|
8
|
+
Bandwidth.configure do |config|
|
9
|
+
config.username = BW_USERNAME
|
10
|
+
config.password = BW_PASSWORD
|
11
|
+
config.return_binary_data = true
|
12
|
+
end
|
13
|
+
@api_instance_conferences = Bandwidth::ConferencesApi.new
|
14
|
+
@api_instance_calls = Bandwidth::CallsApi.new
|
15
|
+
$manteca_test_id = setup_manteca('conference')
|
16
|
+
$manteca_call_id = create_manteca_call($manteca_test_id, "/bxml/joinConferencePause", @api_instance_calls)
|
17
|
+
$conference_id = ""
|
18
|
+
$recording_id = ""
|
19
|
+
end
|
20
|
+
|
21
|
+
# Get Conferences
|
22
|
+
describe 'list_conferences' do
|
23
|
+
it 'list all conferences' do
|
24
|
+
conference_opts = {
|
25
|
+
name: $manteca_test_id
|
26
|
+
}
|
27
|
+
|
28
|
+
sleep(SLEEP_TIME_S)
|
29
|
+
response = @api_instance_conferences.list_conferences_with_http_info(BW_ACCOUNT_ID, conference_opts)
|
30
|
+
|
31
|
+
expect(response[CODE]).to eq(200)
|
32
|
+
expect(response[DATA][0]).to be_instance_of(Bandwidth::Conference)
|
33
|
+
expect(response[DATA][0].id).to be_instance_of(String)
|
34
|
+
$conference_id = response[DATA][0].id
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Get Conference Information
|
39
|
+
describe 'get_conference' do
|
40
|
+
it 'get a conference by id' do
|
41
|
+
response = @api_instance_conferences.get_conference_with_http_info(BW_ACCOUNT_ID, $conference_id)
|
42
|
+
|
43
|
+
expect(response[CODE]).to eq(200)
|
44
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::Conference)
|
45
|
+
expect(response[DATA].id).to eq($conference_id)
|
46
|
+
expect(response[DATA].name).to eq($manteca_test_id)
|
47
|
+
expect(response[DATA].tag).to eq($manteca_test_id)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Get Conference Member
|
52
|
+
describe 'get_conference_member' do
|
53
|
+
it 'gets a conference member by call id' do
|
54
|
+
response = @api_instance_conferences.get_conference_member_with_http_info(BW_ACCOUNT_ID, $conference_id, $manteca_call_id)
|
55
|
+
|
56
|
+
expect(response[CODE]).to eq(200)
|
57
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::ConferenceMember)
|
58
|
+
expect(response[DATA].conference_id).to eq($conference_id)
|
59
|
+
expect(response[DATA].call_id).to eq($manteca_call_id)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Update Conference Member
|
64
|
+
describe 'update_conference_member' do
|
65
|
+
it 'updates a conference member by call id' do
|
66
|
+
update_conference_member = Bandwidth::UpdateConferenceMember.new(
|
67
|
+
mute: false
|
68
|
+
)
|
69
|
+
|
70
|
+
response = @api_instance_conferences.update_conference_member_with_http_info(BW_ACCOUNT_ID, $conference_id, $manteca_call_id, update_conference_member)
|
71
|
+
expect(response[CODE]).to eq(204)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
# Update Conference
|
76
|
+
describe 'update_conference' do
|
77
|
+
it 'updates a conference' do
|
78
|
+
update_conference_body = Bandwidth::UpdateConference.new(
|
79
|
+
status: Bandwidth::ConferenceStateEnum::ACTIVE,
|
80
|
+
redirect_url: MANTECA_BASE_URL + "/bxml/pause",
|
81
|
+
redirect_method: Bandwidth::RedirectMethodEnum::POST,
|
82
|
+
username: "username",
|
83
|
+
password: "password",
|
84
|
+
redirect_fallback_url: MANTECA_BASE_URL + "/bxml/pause",
|
85
|
+
redirect_fallback_method: Bandwidth::RedirectMethodEnum::POST,
|
86
|
+
fallback_username: "username",
|
87
|
+
fallback_password: "password"
|
88
|
+
)
|
89
|
+
|
90
|
+
response = @api_instance_conferences.update_conference_with_http_info(BW_ACCOUNT_ID, $conference_id, update_conference_body)
|
91
|
+
expect(response[CODE]).to eq(204)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# Update Conference BXML
|
96
|
+
describe 'update_conference_bxml' do
|
97
|
+
it 'updates a conference using bxml' do
|
98
|
+
update_bxml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Bxml><StartRecording/><SpeakSentence locale=\"en_US\" gender=\"female\" voice=\"susan\">This should be a conference recording.</SpeakSentence><StopRecording/></Bxml>"
|
99
|
+
|
100
|
+
response = @api_instance_conferences.update_conference_bxml_with_http_info(BW_ACCOUNT_ID, $conference_id, update_bxml)
|
101
|
+
expect(response[CODE]).to eq(204)
|
102
|
+
|
103
|
+
retries = 0
|
104
|
+
recording_complete = false
|
105
|
+
begin
|
106
|
+
while !recording_complete && retries < MAX_RETRIES
|
107
|
+
recording_complete = get_manteca_test_status($manteca_test_id)["callRecorded"]
|
108
|
+
retries += 1
|
109
|
+
sleep(SLEEP_TIME_S)
|
110
|
+
end
|
111
|
+
rescue => e
|
112
|
+
puts e.inspect
|
113
|
+
end
|
114
|
+
|
115
|
+
expect(recording_complete).to be_instance_of(TrueClass)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
# Get Conference Recordings
|
120
|
+
describe 'list_conference_recordings' do
|
121
|
+
it 'lists recordings for a conference' do
|
122
|
+
response = @api_instance_conferences.list_conference_recordings_with_http_info(BW_ACCOUNT_ID, $conference_id)
|
123
|
+
|
124
|
+
expect(response[CODE]).to eq(200)
|
125
|
+
expect(response[DATA][0]).to be_instance_of(Bandwidth::ConferenceRecordingMetadata)
|
126
|
+
expect(response[DATA][0].conference_id).to eq($conference_id)
|
127
|
+
expect(response[DATA][0].account_id).to eq(BW_ACCOUNT_ID)
|
128
|
+
expect(response[DATA][0].name).to eq($manteca_test_id)
|
129
|
+
expect(response[DATA][0].status).to eq('complete').or eq('partial')
|
130
|
+
expect(response[DATA][0].recording_id).to be_instance_of(String)
|
131
|
+
expect(response[DATA][0].file_format).to eq(Bandwidth::FileFormatEnum::WAV)
|
132
|
+
|
133
|
+
$recording_id = response[DATA][0].recording_id
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
# Get Conference Recording Information
|
138
|
+
describe 'get_conference_recording' do
|
139
|
+
it 'gets a conference recording by id' do
|
140
|
+
response = @api_instance_conferences.get_conference_recording_with_http_info(BW_ACCOUNT_ID, $conference_id, $recording_id)
|
141
|
+
|
142
|
+
expect(response[CODE]).to eq(200)
|
143
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::ConferenceRecordingMetadata)
|
144
|
+
expect(response[DATA].conference_id).to eq($conference_id)
|
145
|
+
expect(response[DATA].account_id).to eq(BW_ACCOUNT_ID)
|
146
|
+
expect(response[DATA].name).to eq($manteca_test_id)
|
147
|
+
expect(response[DATA].status).to eq('complete').or eq('partial')
|
148
|
+
expect(response[DATA].recording_id).to be_instance_of(String)
|
149
|
+
expect(response[DATA].file_format).to eq(Bandwidth::FileFormatEnum::WAV)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
# Download Conference Recording
|
154
|
+
describe 'download_conference_recording test' do
|
155
|
+
it 'should work' do
|
156
|
+
response = @api_instance_conferences.download_conference_recording_with_http_info(BW_ACCOUNT_ID, $conference_id, $recording_id)
|
157
|
+
|
158
|
+
expect(response[CODE]).to eq(200)
|
159
|
+
expect(response[DATA]).to be_instance_of(String)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
# Integration Tests for Bandwidth::MediaApi
|
5
|
+
describe 'MediaApi Integration Tests' do
|
6
|
+
before(:all) do
|
7
|
+
Bandwidth.configure do |config|
|
8
|
+
config.username = BW_USERNAME
|
9
|
+
config.password = BW_PASSWORD
|
10
|
+
config.return_binary_data = true
|
11
|
+
end
|
12
|
+
@api_instance_media = Bandwidth::MediaApi.new
|
13
|
+
@binary_media_name = 'ruby_binary_media' + SecureRandom.uuid
|
14
|
+
@binary_media_data = '123456'
|
15
|
+
@media_file_name = 'ruby_media_file' + SecureRandom.uuid
|
16
|
+
@media_file_data = File.open("spec/fixtures/ruby_cat.jpeg").read
|
17
|
+
@media_file_md5 = Digest::MD5.hexdigest(@media_file_data)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Upload Media
|
21
|
+
describe 'upload_media' do
|
22
|
+
it 'uploads binary media' do
|
23
|
+
response = @api_instance_media.upload_media_with_http_info(BW_ACCOUNT_ID, @binary_media_name, @binary_media_data)
|
24
|
+
expect(response[CODE]).to eq(204)
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'uploads media file' do
|
28
|
+
response = @api_instance_media.upload_media_with_http_info(BW_ACCOUNT_ID, @media_file_name, @media_file_data)
|
29
|
+
expect(response[CODE]).to eq(204)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# List Media
|
34
|
+
describe 'list_media' do
|
35
|
+
it 'lists media' do
|
36
|
+
response = @api_instance_media.list_media_with_http_info(BW_ACCOUNT_ID)
|
37
|
+
expect(response[CODE]).to eq(200)
|
38
|
+
expect(response[DATA][0]).to be_instance_of(Bandwidth::Media)
|
39
|
+
expect(response[DATA][0].content).to be_instance_of(String)
|
40
|
+
expect(response[DATA][0].content_length).to be > 0
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# Get Media
|
45
|
+
describe 'get_media' do
|
46
|
+
it 'gets uploaded binary media' do
|
47
|
+
response = @api_instance_media.get_media_with_http_info(BW_ACCOUNT_ID, @binary_media_name, debug_return_type: 'String')
|
48
|
+
expect(response[CODE]).to eq(200)
|
49
|
+
expect(response[DATA]).to eq(@binary_media_data)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'gets uploaded media file' do
|
53
|
+
response = @api_instance_media.get_media_with_http_info(BW_ACCOUNT_ID, @media_file_name)
|
54
|
+
response_md5 = Digest::MD5.hexdigest(response[DATA])
|
55
|
+
|
56
|
+
expect(response[CODE]).to eq(200)
|
57
|
+
expect(response_md5).to eq(@media_file_md5)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
# Delete Media
|
62
|
+
describe 'delete_media' do
|
63
|
+
it 'deletes the binary media' do
|
64
|
+
response = @api_instance_media.delete_media_with_http_info(BW_ACCOUNT_ID, @binary_media_name)
|
65
|
+
expect(response[CODE]).to eq(204)
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'deletes the media file' do
|
69
|
+
response = @api_instance_media.delete_media_with_http_info(BW_ACCOUNT_ID, @media_file_name)
|
70
|
+
expect(response[CODE]).to eq(204)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# HTTP 4XX Errors
|
75
|
+
describe 'http error' do
|
76
|
+
it 'causes a 404 error' do
|
77
|
+
expect {
|
78
|
+
response = @api_instance_media.get_media_with_http_info(BW_ACCOUNT_ID, "does_not_exist")
|
79
|
+
}.to raise_error { |e|
|
80
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
81
|
+
expect(e.code).to eq(404)
|
82
|
+
}
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
# Integration Tests for Bandwidth::MessagesApi
|
5
|
+
describe 'MessagesApi Integration Tests' do
|
6
|
+
before(:all) do
|
7
|
+
Bandwidth.configure do |config|
|
8
|
+
config.username = BW_USERNAME
|
9
|
+
config.password = BW_PASSWORD
|
10
|
+
end
|
11
|
+
@api_instance_msg = Bandwidth::MessagesApi.new()
|
12
|
+
end
|
13
|
+
|
14
|
+
# Create Message
|
15
|
+
describe 'create_message' do
|
16
|
+
it 'creates an mms message' do
|
17
|
+
message_text = "ruby sdk test MMS"
|
18
|
+
body = Bandwidth::MessageRequest.new(
|
19
|
+
application_id: BW_MESSAGING_APPLICATION_ID,
|
20
|
+
to: [USER_NUMBER],
|
21
|
+
from: BW_NUMBER,
|
22
|
+
text: message_text,
|
23
|
+
media: ["https://cdn2.thecatapi.com/images/MTY3ODIyMQ.jpg"]
|
24
|
+
)
|
25
|
+
response = @api_instance_msg.create_message_with_http_info(BW_ACCOUNT_ID, body)
|
26
|
+
|
27
|
+
expect(response[CODE]).to eq(202)
|
28
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::Message)
|
29
|
+
expect(response[DATA].id.length).to eq(29)
|
30
|
+
expect(response[DATA].owner).to eq(BW_NUMBER)
|
31
|
+
expect(response[DATA].from).to eq(BW_NUMBER)
|
32
|
+
expect(response[DATA].to).to eq([USER_NUMBER])
|
33
|
+
expect(response[DATA].tag).to eq(body.tag)
|
34
|
+
expect(response[DATA].media).to eq(body.media)
|
35
|
+
expect(response[DATA].text).to eq(message_text)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# List Messages
|
40
|
+
describe 'list_messages' do
|
41
|
+
it 'lists messages' do
|
42
|
+
get_opts = {
|
43
|
+
:source_tn => BW_NUMBER,
|
44
|
+
:message_direction => "OUTBOUND"
|
45
|
+
}
|
46
|
+
response = @api_instance_msg.list_messages_with_http_info(BW_ACCOUNT_ID, get_opts)
|
47
|
+
|
48
|
+
expect(response[CODE]).to eq(200)
|
49
|
+
expect(response[DATA]).to be_instance_of(Bandwidth::MessagesList)
|
50
|
+
expect(response[DATA].messages[0]).to be_instance_of(Bandwidth::ListMessageItem)
|
51
|
+
expect(response[DATA].messages[0].account_id).to eq(BW_ACCOUNT_ID)
|
52
|
+
expect(response[DATA].messages[0].message_direction).to eq("OUTBOUND")
|
53
|
+
expect(response[DATA].messages[0].source_tn).to eq(BW_NUMBER)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# HTTP 4XX Errors
|
58
|
+
describe 'http error' do
|
59
|
+
it 'causes a 400 error' do
|
60
|
+
body = Bandwidth::MessageRequest.new(
|
61
|
+
application_id: BW_MESSAGING_APPLICATION_ID,
|
62
|
+
to: ["+1invalid"],
|
63
|
+
from: BW_NUMBER,
|
64
|
+
text: "ruby sdk 400 test"
|
65
|
+
)
|
66
|
+
|
67
|
+
expect {
|
68
|
+
$response = @api_instance_msg.create_message_with_http_info(BW_ACCOUNT_ID, body)
|
69
|
+
}.to raise_error { |e|
|
70
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
71
|
+
expect(e.code).to eq(400)
|
72
|
+
}
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'causes a 401 error' do
|
76
|
+
Bandwidth.configure do |config|
|
77
|
+
config.username = 'bad_username'
|
78
|
+
config.password = 'bad_password'
|
79
|
+
end
|
80
|
+
|
81
|
+
body = Bandwidth::MessageRequest.new(
|
82
|
+
application_id: BW_MESSAGING_APPLICATION_ID,
|
83
|
+
to: [USER_NUMBER],
|
84
|
+
from: BW_NUMBER,
|
85
|
+
text: "ruby sdk 401 test"
|
86
|
+
)
|
87
|
+
|
88
|
+
expect {
|
89
|
+
$response = @api_instance_msg.create_message_with_http_info(BW_ACCOUNT_ID, body)
|
90
|
+
}.to raise_error { |e|
|
91
|
+
expect(e).to be_instance_of(Bandwidth::ApiError)
|
92
|
+
expect(e.code).to eq(401)
|
93
|
+
}
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|