twilio-ruby 5.0.0.alpha1 → 5.0.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +11 -2
- data/AUTHORS.md +32 -46
- data/CHANGES.md +1 -124
- data/Gemfile +2 -2
- data/LICENSE.md +12 -12
- data/Makefile +2 -15
- data/README.md +37 -29
- data/Rakefile +0 -54
- data/examples/examples.rb +57 -46
- data/examples/{print_call_log.rb → print-call-log.rb} +7 -7
- data/lib/rack/twilio_webhook_authentication.rb +6 -5
- data/lib/twilio-ruby.rb +16 -17
- data/lib/twilio-ruby/compatibility/v2010/account/call/feedback.rb +15 -0
- data/lib/twilio-ruby/compatibility/v2010/account/queue/member.rb +23 -0
- data/lib/twilio-ruby/framework/domain.rb +2 -2
- data/lib/twilio-ruby/framework/exception.rb +14 -0
- data/lib/twilio-ruby/framework/helper.rb +1 -1
- data/lib/twilio-ruby/framework/page.rb +30 -28
- data/lib/twilio-ruby/framework/resource.rb +2 -2
- data/lib/twilio-ruby/framework/serialize.rb +7 -58
- data/lib/twilio-ruby/framework/twilio_response.rb +1 -1
- data/lib/twilio-ruby/framework/version.rb +48 -43
- data/lib/twilio-ruby/http/http_client.rb +8 -8
- data/lib/twilio-ruby/rest/api.rb +33 -141
- data/lib/twilio-ruby/rest/api/v2010.rb +31 -50
- data/lib/twilio-ruby/rest/api/v2010/account.rb +239 -389
- data/lib/twilio-ruby/rest/api/v2010/account/address.rb +122 -145
- data/lib/twilio-ruby/rest/api/v2010/account/address/dependent_phone_number.rb +56 -76
- data/lib/twilio-ruby/rest/api/v2010/account/application.rb +127 -144
- data/lib/twilio-ruby/rest/api/v2010/account/authorized_connect_app.rb +83 -85
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number.rb +97 -92
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/local.rb +77 -142
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/mobile.rb +77 -142
- data/lib/twilio-ruby/rest/api/v2010/account/available_phone_number/toll_free.rb +77 -142
- data/lib/twilio-ruby/rest/api/v2010/account/call.rb +184 -232
- data/lib/twilio-ruby/rest/api/v2010/account/call/feedback.rb +84 -73
- data/lib/twilio-ruby/rest/api/v2010/account/call/feedback_summary.rb +80 -85
- data/lib/twilio-ruby/rest/api/v2010/account/call/notification.rb +115 -126
- data/lib/twilio-ruby/rest/api/v2010/account/call/recording.rb +99 -114
- data/lib/twilio-ruby/rest/api/v2010/account/conference.rb +112 -150
- data/lib/twilio-ruby/rest/api/v2010/account/conference/participant.rb +109 -228
- data/lib/twilio-ruby/rest/api/v2010/account/connect_app.rb +98 -101
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number.rb +164 -287
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/local.rb +90 -152
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/mobile.rb +90 -152
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/toll_free.rb +90 -152
- data/lib/twilio-ruby/rest/api/v2010/account/message.rb +138 -195
- data/lib/twilio-ruby/rest/api/v2010/account/message/media.rb +100 -90
- data/lib/twilio-ruby/rest/api/v2010/account/notification.rb +106 -118
- data/lib/twilio-ruby/rest/api/v2010/account/outgoing_caller_id.rb +105 -96
- data/lib/twilio-ruby/rest/api/v2010/account/queue.rb +117 -119
- data/lib/twilio-ruby/rest/api/v2010/account/queue/member.rb +95 -84
- data/lib/twilio-ruby/rest/api/v2010/account/recording.rb +103 -194
- data/lib/twilio-ruby/rest/api/v2010/account/recording/transcription.rb +93 -100
- data/lib/twilio-ruby/rest/api/v2010/account/sandbox.rb +304 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sip.rb +30 -42
- data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list.rb +113 -111
- data/lib/twilio-ruby/rest/api/v2010/account/sip/credential_list/credential.rb +115 -104
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain.rb +133 -159
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/credential_list_mapping.rb +96 -94
- data/lib/twilio-ruby/rest/api/v2010/account/sip/domain/ip_access_control_list_mapping.rb +96 -94
- data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list.rb +114 -111
- data/lib/twilio-ruby/rest/api/v2010/account/sip/ip_access_control_list/ip_address.rb +113 -108
- data/lib/twilio-ruby/rest/api/v2010/account/sms.rb +140 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sms/short_code.rb +431 -0
- data/lib/twilio-ruby/rest/api/v2010/account/sms/sms_message.rb +467 -0
- data/lib/twilio-ruby/rest/api/v2010/account/token.rb +34 -41
- data/lib/twilio-ruby/rest/api/v2010/account/transcription.rb +90 -98
- data/lib/twilio-ruby/rest/api/v2010/account/usage.rb +24 -21
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record.rb +118 -139
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/all_time.rb +62 -106
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/daily.rb +62 -106
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/last_month.rb +62 -106
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/monthly.rb +62 -106
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/this_month.rb +62 -106
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/today.rb +62 -106
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yearly.rb +62 -106
- data/lib/twilio-ruby/rest/api/v2010/account/usage/record/yesterday.rb +62 -106
- data/lib/twilio-ruby/rest/api/v2010/account/usage/trigger.rb +124 -130
- data/lib/twilio-ruby/rest/api/v2010/account/validation_request.rb +31 -35
- data/lib/twilio-ruby/rest/client.rb +88 -249
- data/lib/twilio-ruby/rest/{accounts.rb → conversations.rb} +14 -16
- data/lib/twilio-ruby/rest/conversations/v1.rb +35 -0
- data/lib/twilio-ruby/rest/conversations/v1/conversation.rb +270 -0
- data/lib/twilio-ruby/rest/{notify/v1/service/segment.rb → conversations/v1/conversation/completed.rb} +101 -101
- data/lib/twilio-ruby/rest/{preview/bulk_exports/export/day.rb → conversations/v1/conversation/in_progress.rb} +109 -95
- data/lib/twilio-ruby/rest/{messaging/v1/service/phone_number.rb → conversations/v1/conversation/participant.rb} +171 -178
- data/lib/twilio-ruby/rest/ip_messaging.rb +11 -26
- data/lib/twilio-ruby/rest/ip_messaging/v1.rb +7 -19
- data/lib/twilio-ruby/rest/ip_messaging/v1/credential.rb +112 -113
- data/lib/twilio-ruby/rest/ip_messaging/v1/service.rb +131 -542
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel.rb +132 -194
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/member.rb +103 -159
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/message.rb +102 -183
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/role.rb +112 -107
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user.rb +113 -186
- data/lib/twilio-ruby/rest/lookups.rb +8 -12
- data/lib/twilio-ruby/rest/lookups/v1.rb +7 -13
- data/lib/twilio-ruby/rest/lookups/v1/phone_number.rb +54 -71
- data/lib/twilio-ruby/rest/monitor.rb +11 -19
- data/lib/twilio-ruby/rest/monitor/v1.rb +7 -19
- data/lib/twilio-ruby/rest/monitor/v1/alert.rb +133 -121
- data/lib/twilio-ruby/rest/monitor/v1/event.rb +127 -116
- data/lib/twilio-ruby/rest/pricing.rb +11 -17
- data/lib/twilio-ruby/rest/pricing/v1.rb +9 -21
- data/lib/twilio-ruby/rest/pricing/v1/messaging.rb +23 -27
- data/lib/twilio-ruby/rest/pricing/v1/messaging/country.rb +74 -71
- data/lib/twilio-ruby/rest/pricing/v1/phone_number.rb +23 -27
- data/lib/twilio-ruby/rest/pricing/v1/phone_number/country.rb +79 -69
- data/lib/twilio-ruby/rest/pricing/v1/voice.rb +27 -33
- data/lib/twilio-ruby/rest/pricing/v1/voice/country.rb +74 -71
- data/lib/twilio-ruby/rest/pricing/v1/voice/number.rb +52 -47
- data/lib/twilio-ruby/rest/taskrouter.rb +8 -12
- data/lib/twilio-ruby/rest/taskrouter/v1.rb +5 -11
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace.rb +153 -260
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/activity.rb +114 -115
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/event.rb +101 -105
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task.rb +139 -216
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task/reservation.rb +106 -194
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue.rb +145 -187
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queue_statistics.rb +65 -57
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_queue/task_queues_statistics.rb +57 -62
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker.rb +135 -217
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_statistics.rb +60 -54
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/workers_statistics.rb +56 -52
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow.rb +123 -140
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workflow/workflow_statistics.rb +61 -57
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/workspace_statistics.rb +72 -52
- data/lib/twilio-ruby/rest/trunking.rb +8 -12
- data/lib/twilio-ruby/rest/trunking/v1.rb +5 -11
- data/lib/twilio-ruby/rest/trunking/v1/trunk.rb +134 -157
- data/lib/twilio-ruby/rest/trunking/v1/trunk/credential_list.rb +93 -89
- data/lib/twilio-ruby/rest/trunking/v1/trunk/ip_access_control_list.rb +93 -89
- data/lib/twilio-ruby/rest/trunking/v1/trunk/origination_url.rb +111 -114
- data/lib/twilio-ruby/rest/trunking/v1/trunk/phone_number.rb +112 -146
- data/lib/twilio-ruby/task_router.rb +0 -0
- data/lib/twilio-ruby/task_router/capability.rb +87 -0
- data/lib/twilio-ruby/twiml/response.rb +16 -0
- data/lib/twilio-ruby/util.rb +1 -1
- data/lib/twilio-ruby/util/access_token.rb +70 -0
- data/lib/twilio-ruby/util/capability.rb +64 -0
- data/lib/twilio-ruby/util/client_config.rb +29 -0
- data/lib/twilio-ruby/{security → util}/request_validator.rb +4 -21
- data/lib/twilio-ruby/version.rb +1 -1
- data/spec/holodeck/holodeck.rb +6 -6
- data/spec/holodeck/hologram.rb +1 -0
- data/spec/integration/api/v2010/account/address/dependent_phone_number_spec.rb +8 -8
- data/spec/integration/api/v2010/account/address_spec.rb +29 -37
- data/spec/integration/api/v2010/account/application_spec.rb +29 -29
- data/spec/integration/api/v2010/account/authorized_connect_app_spec.rb +13 -13
- data/spec/integration/api/v2010/account/available_phone_number/local_spec.rb +8 -9
- data/spec/integration/api/v2010/account/available_phone_number/mobile_spec.rb +8 -9
- data/spec/integration/api/v2010/account/available_phone_number/toll_free_spec.rb +8 -9
- data/spec/integration/api/v2010/account/available_phone_number_spec.rb +13 -13
- data/spec/integration/api/v2010/account/call/feedback_spec.rb +17 -17
- data/spec/integration/api/v2010/account/call/feedback_summary_spec.rb +19 -19
- data/spec/integration/api/v2010/account/call/notification_spec.rb +18 -18
- data/spec/integration/api/v2010/account/call/recording_spec.rb +20 -32
- data/spec/integration/api/v2010/account/call_spec.rb +29 -29
- data/spec/integration/api/v2010/account/conference/participant_spec.rb +35 -107
- data/spec/integration/api/v2010/account/conference_spec.rb +19 -58
- data/spec/integration/api/v2010/account/connect_app_spec.rb +18 -18
- data/spec/integration/api/v2010/account/incoming_phone_number/local_spec.rb +14 -16
- data/spec/integration/api/v2010/account/incoming_phone_number/mobile_spec.rb +14 -16
- data/spec/integration/api/v2010/account/incoming_phone_number/toll_free_spec.rb +14 -16
- data/spec/integration/api/v2010/account/incoming_phone_number_spec.rb +29 -41
- data/spec/integration/api/v2010/account/message/media_spec.rb +18 -18
- data/spec/integration/api/v2010/account/message_spec.rb +35 -41
- data/spec/integration/api/v2010/account/notification_spec.rb +18 -18
- data/spec/integration/api/v2010/account/outgoing_caller_id_spec.rb +23 -23
- data/spec/integration/api/v2010/account/queue/member_spec.rb +18 -18
- data/spec/integration/api/v2010/account/queue_spec.rb +32 -35
- data/spec/integration/api/v2010/account/recording/transcription_spec.rb +18 -18
- data/spec/integration/api/v2010/account/recording_spec.rb +21 -42
- data/spec/integration/api/v2010/account/sandbox_spec.rb +99 -0
- data/spec/integration/api/v2010/account/sip/credential_list/credential_spec.rb +36 -32
- data/spec/integration/api/v2010/account/sip/credential_list_spec.rb +29 -29
- data/spec/integration/api/v2010/account/sip/domain/credential_list_mapping_spec.rb +24 -24
- data/spec/integration/api/v2010/account/sip/domain/ip_access_control_list_mapping_spec.rb +24 -24
- data/spec/integration/api/v2010/account/sip/domain_spec.rb +29 -29
- data/spec/integration/api/v2010/account/sip/ip_access_control_list/ip_address_spec.rb +36 -32
- data/spec/integration/api/v2010/account/sip/ip_access_control_list_spec.rb +29 -29
- data/spec/integration/api/v2010/account/sip_spec.rb +1 -1
- data/spec/integration/api/v2010/account/{short_code_spec.rb → sms/short_code_spec.rb} +25 -18
- data/spec/integration/api/v2010/account/sms/sms_message_spec.rb +275 -0
- data/spec/integration/{accounts/v1/credential_spec.rb → api/v2010/account/sms_spec.rb} +2 -2
- data/spec/integration/api/v2010/account/token_spec.rb +7 -7
- data/spec/integration/api/v2010/account/transcription_spec.rb +18 -18
- data/spec/integration/api/v2010/account/usage/record/all_time_spec.rb +8 -8
- data/spec/integration/api/v2010/account/usage/record/daily_spec.rb +8 -8
- data/spec/integration/api/v2010/account/usage/record/last_month_spec.rb +8 -8
- data/spec/integration/api/v2010/account/usage/record/monthly_spec.rb +8 -8
- data/spec/integration/api/v2010/account/usage/record/this_month_spec.rb +8 -8
- data/spec/integration/api/v2010/account/usage/record/today_spec.rb +8 -8
- data/spec/integration/api/v2010/account/usage/record/yearly_spec.rb +8 -8
- data/spec/integration/api/v2010/account/usage/record/yesterday_spec.rb +8 -8
- data/spec/integration/api/v2010/account/usage/record_spec.rb +8 -8
- data/spec/integration/api/v2010/account/usage/trigger_spec.rb +32 -32
- data/spec/integration/api/v2010/account/usage_spec.rb +1 -1
- data/spec/integration/api/v2010/account/validation_request_spec.rb +4 -24
- data/spec/integration/api/v2010/account_spec.rb +28 -24
- data/spec/integration/conversations/v1/conversation/completed_spec.rb +89 -0
- data/spec/integration/conversations/v1/conversation/in_progress_spec.rb +89 -0
- data/spec/integration/conversations/v1/conversation/participant_spec.rb +174 -0
- data/spec/integration/conversations/v1/conversation_spec.rb +49 -0
- data/spec/integration/ip_messaging/v1/credential_spec.rb +24 -155
- data/spec/integration/ip_messaging/v1/service/channel/member_spec.rb +13 -217
- data/spec/integration/ip_messaging/v1/service/channel/message_spec.rb +10 -241
- data/spec/integration/ip_messaging/v1/service/channel_spec.rb +23 -205
- data/spec/integration/ip_messaging/v1/service/role_spec.rb +19 -184
- data/spec/integration/ip_messaging/v1/service/user_spec.rb +24 -194
- data/spec/integration/ip_messaging/v1/service_spec.rb +17 -229
- data/spec/integration/lookups/v1/phone_number_spec.rb +6 -17
- data/spec/integration/monitor/v1/alert_spec.rb +60 -60
- data/spec/integration/monitor/v1/event_spec.rb +13 -13
- data/spec/integration/pricing/v1/messaging/country_spec.rb +7 -103
- data/spec/integration/pricing/v1/messaging_spec.rb +1 -1
- data/spec/integration/pricing/v1/phone_number/country_spec.rb +13 -13
- data/spec/integration/pricing/v1/phone_number_spec.rb +1 -1
- data/spec/integration/pricing/v1/voice/country_spec.rb +13 -13
- data/spec/integration/pricing/v1/voice/number_spec.rb +6 -6
- data/spec/integration/pricing/v1/voice_spec.rb +1 -1
- data/spec/integration/taskrouter/v1/workspace/activity_spec.rb +38 -34
- data/spec/integration/taskrouter/v1/workspace/event_spec.rb +13 -13
- data/spec/integration/taskrouter/v1/workspace/task/reservation_spec.rb +24 -21
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queue_statistics_spec.rb +11 -13
- data/spec/integration/taskrouter/v1/workspace/task_queue/task_queues_statistics_spec.rb +17 -18
- data/spec/integration/taskrouter/v1/workspace/task_queue_spec.rb +41 -57
- data/spec/integration/taskrouter/v1/workspace/task_spec.rb +50 -113
- data/spec/integration/taskrouter/v1/workspace/worker/worker_statistics_spec.rb +6 -7
- data/spec/integration/taskrouter/v1/workspace/worker/workers_statistics_spec.rb +6 -7
- data/spec/integration/taskrouter/v1/workspace/worker_spec.rb +68 -96
- data/spec/integration/taskrouter/v1/workspace/workflow/workflow_statistics_spec.rb +12 -14
- data/spec/integration/taskrouter/v1/workspace/workflow_spec.rb +43 -54
- data/spec/integration/taskrouter/v1/workspace/workspace_statistics_spec.rb +9 -11
- data/spec/integration/taskrouter/v1/workspace_spec.rb +51 -71
- data/spec/integration/trunking/v1/trunk/credential_list_spec.rb +24 -24
- data/spec/integration/trunking/v1/trunk/ip_access_control_list_spec.rb +66 -66
- data/spec/integration/trunking/v1/trunk/origination_url_spec.rb +28 -28
- data/spec/integration/trunking/v1/trunk/phone_number_spec.rb +23 -23
- data/spec/integration/trunking/v1/trunk_spec.rb +28 -28
- data/spec/rack/twilio_webhook_authentication_spec.rb +23 -19
- data/spec/spec_helper.rb +2 -2
- data/spec/support/fakeweb.rb +1 -1
- data/spec/task_router_spec.rb +114 -0
- data/spec/util/access_token_spec.rb +103 -0
- data/spec/util/capability_spec.rb +186 -0
- data/spec/util/client_config_spec.rb +21 -0
- data/spec/{security → util}/request_validator_spec.rb +5 -5
- data/twilio-ruby.gemspec +8 -12
- metadata +90 -416
- data/.rubocop.yml +0 -21
- data/.rubocop_todo.yml +0 -187
- data/VERSIONS.md +0 -64
- data/lib/twilio-ruby/framework/error.rb +0 -30
- data/lib/twilio-ruby/framework/values.rb +0 -7
- data/lib/twilio-ruby/jwt/access_token.rb +0 -232
- data/lib/twilio-ruby/jwt/client_capability.rb +0 -102
- data/lib/twilio-ruby/jwt/jwt.rb +0 -50
- data/lib/twilio-ruby/jwt/task_router.rb +0 -174
- data/lib/twilio-ruby/rest/accounts/v1.rb +0 -39
- data/lib/twilio-ruby/rest/accounts/v1/credential.rb +0 -105
- data/lib/twilio-ruby/rest/accounts/v1/credential/public_key.rb +0 -370
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on.rb +0 -431
- data/lib/twilio-ruby/rest/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension.rb +0 -350
- data/lib/twilio-ruby/rest/api/v2010/account/key.rb +0 -336
- data/lib/twilio-ruby/rest/api/v2010/account/message/feedback.rb +0 -165
- data/lib/twilio-ruby/rest/api/v2010/account/new_key.rb +0 -153
- data/lib/twilio-ruby/rest/api/v2010/account/new_signing_key.rb +0 -153
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result.rb +0 -397
- data/lib/twilio-ruby/rest/api/v2010/account/recording/add_on_result/payload.rb +0 -378
- data/lib/twilio-ruby/rest/api/v2010/account/short_code.rb +0 -430
- data/lib/twilio-ruby/rest/api/v2010/account/signing_key.rb +0 -336
- data/lib/twilio-ruby/rest/chat.rb +0 -59
- data/lib/twilio-ruby/rest/chat/v1.rb +0 -56
- data/lib/twilio-ruby/rest/chat/v1/credential.rb +0 -403
- data/lib/twilio-ruby/rest/chat/v1/service.rb +0 -935
- data/lib/twilio-ruby/rest/chat/v1/service/channel.rb +0 -554
- data/lib/twilio-ruby/rest/chat/v1/service/channel/invite.rb +0 -386
- data/lib/twilio-ruby/rest/chat/v1/service/channel/member.rb +0 -431
- data/lib/twilio-ruby/rest/chat/v1/service/channel/message.rb +0 -447
- data/lib/twilio-ruby/rest/chat/v1/service/role.rb +0 -396
- data/lib/twilio-ruby/rest/chat/v1/service/user.rb +0 -467
- data/lib/twilio-ruby/rest/chat/v1/service/user/user_channel.rb +0 -244
- data/lib/twilio-ruby/rest/chat/v2.rb +0 -56
- data/lib/twilio-ruby/rest/chat/v2/credential.rb +0 -403
- data/lib/twilio-ruby/rest/chat/v2/service.rb +0 -688
- data/lib/twilio-ruby/rest/chat/v2/service/channel.rb +0 -554
- data/lib/twilio-ruby/rest/chat/v2/service/channel/invite.rb +0 -386
- data/lib/twilio-ruby/rest/chat/v2/service/channel/member.rb +0 -431
- data/lib/twilio-ruby/rest/chat/v2/service/channel/message.rb +0 -447
- data/lib/twilio-ruby/rest/chat/v2/service/role.rb +0 -396
- data/lib/twilio-ruby/rest/chat/v2/service/user.rb +0 -467
- data/lib/twilio-ruby/rest/chat/v2/service/user/user_channel.rb +0 -244
- data/lib/twilio-ruby/rest/fax.rb +0 -44
- data/lib/twilio-ruby/rest/fax/v1.rb +0 -41
- data/lib/twilio-ruby/rest/fax/v1/fax.rb +0 -541
- data/lib/twilio-ruby/rest/fax/v1/fax/fax_media.rb +0 -326
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/channel/invite.rb +0 -386
- data/lib/twilio-ruby/rest/ip_messaging/v1/service/user/user_channel.rb +0 -244
- data/lib/twilio-ruby/rest/ip_messaging/v2.rb +0 -56
- data/lib/twilio-ruby/rest/ip_messaging/v2/credential.rb +0 -403
- data/lib/twilio-ruby/rest/ip_messaging/v2/service.rb +0 -688
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel.rb +0 -554
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/invite.rb +0 -386
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/member.rb +0 -431
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/channel/message.rb +0 -447
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/role.rb +0 -396
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user.rb +0 -467
- data/lib/twilio-ruby/rest/ip_messaging/v2/service/user/user_channel.rb +0 -244
- data/lib/twilio-ruby/rest/messaging.rb +0 -44
- data/lib/twilio-ruby/rest/messaging/v1.rb +0 -41
- data/lib/twilio-ruby/rest/messaging/v1/service.rb +0 -637
- data/lib/twilio-ruby/rest/messaging/v1/service/alpha_sender.rb +0 -352
- data/lib/twilio-ruby/rest/messaging/v1/service/short_code.rb +0 -359
- data/lib/twilio-ruby/rest/notify.rb +0 -52
- data/lib/twilio-ruby/rest/notify/v1.rb +0 -56
- data/lib/twilio-ruby/rest/notify/v1/credential.rb +0 -403
- data/lib/twilio-ruby/rest/notify/v1/service.rb +0 -639
- data/lib/twilio-ruby/rest/notify/v1/service/binding.rb +0 -430
- data/lib/twilio-ruby/rest/notify/v1/service/notification.rb +0 -288
- data/lib/twilio-ruby/rest/notify/v1/service/user.rb +0 -445
- data/lib/twilio-ruby/rest/notify/v1/service/user/segment_memberships.rb +0 -254
- data/lib/twilio-ruby/rest/notify/v1/service/user/user_binding.rb +0 -434
- data/lib/twilio-ruby/rest/preview.rb +0 -145
- data/lib/twilio-ruby/rest/preview/bulk_exports.rb +0 -56
- data/lib/twilio-ruby/rest/preview/bulk_exports/export.rb +0 -203
- data/lib/twilio-ruby/rest/preview/bulk_exports/export_configuration.rb +0 -243
- data/lib/twilio-ruby/rest/preview/hosted_numbers.rb +0 -42
- data/lib/twilio-ruby/rest/preview/hosted_numbers/hosted_number_order.rb +0 -557
- data/lib/twilio-ruby/rest/preview/marketplace.rb +0 -58
- data/lib/twilio-ruby/rest/preview/marketplace/available_add_on.rb +0 -333
- data/lib/twilio-ruby/rest/preview/marketplace/available_add_on/available_add_on_extension.rb +0 -301
- data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on.rb +0 -440
- data/lib/twilio-ruby/rest/preview/marketplace/installed_add_on/installed_add_on_extension.rb +0 -341
- data/lib/twilio-ruby/rest/preview/proxy.rb +0 -41
- data/lib/twilio-ruby/rest/preview/proxy/service.rb +0 -500
- data/lib/twilio-ruby/rest/preview/proxy/service/phone_number.rb +0 -359
- data/lib/twilio-ruby/rest/preview/proxy/service/session.rb +0 -536
- data/lib/twilio-ruby/rest/preview/proxy/service/session/interaction.rb +0 -429
- data/lib/twilio-ruby/rest/preview/proxy/service/session/participant.rb +0 -506
- data/lib/twilio-ruby/rest/preview/proxy/service/session/participant/message_interaction.rb +0 -452
- data/lib/twilio-ruby/rest/preview/proxy/service/short_code.rb +0 -359
- data/lib/twilio-ruby/rest/preview/sync.rb +0 -41
- data/lib/twilio-ruby/rest/preview/sync/service.rb +0 -504
- data/lib/twilio-ruby/rest/preview/sync/service/document.rb +0 -445
- data/lib/twilio-ruby/rest/preview/sync/service/document/document_permission.rb +0 -395
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list.rb +0 -438
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_item.rb +0 -430
- data/lib/twilio-ruby/rest/preview/sync/service/sync_list/sync_list_permission.rb +0 -395
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map.rb +0 -438
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_item.rb +0 -432
- data/lib/twilio-ruby/rest/preview/sync/service/sync_map/sync_map_permission.rb +0 -395
- data/lib/twilio-ruby/rest/preview/wireless.rb +0 -71
- data/lib/twilio-ruby/rest/preview/wireless/command.rb +0 -382
- data/lib/twilio-ruby/rest/preview/wireless/rate_plan.rb +0 -435
- data/lib/twilio-ruby/rest/preview/wireless/sim.rb +0 -544
- data/lib/twilio-ruby/rest/preview/wireless/sim/usage.rb +0 -236
- data/lib/twilio-ruby/rest/sync.rb +0 -44
- data/lib/twilio-ruby/rest/sync/v1.rb +0 -41
- data/lib/twilio-ruby/rest/sync/v1/service.rb +0 -504
- data/lib/twilio-ruby/rest/sync/v1/service/document.rb +0 -445
- data/lib/twilio-ruby/rest/sync/v1/service/document/document_permission.rb +0 -395
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list.rb +0 -438
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_item.rb +0 -430
- data/lib/twilio-ruby/rest/sync/v1/service/sync_list/sync_list_permission.rb +0 -395
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map.rb +0 -438
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_item.rb +0 -432
- data/lib/twilio-ruby/rest/sync/v1/service/sync_map/sync_map_permission.rb +0 -395
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/task_channel.rb +0 -315
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/reservation.rb +0 -461
- data/lib/twilio-ruby/rest/taskrouter/v1/workspace/worker/worker_channel.rb +0 -406
- data/lib/twilio-ruby/rest/video.rb +0 -52
- data/lib/twilio-ruby/rest/video/v1.rb +0 -56
- data/lib/twilio-ruby/rest/video/v1/recording.rb +0 -382
- data/lib/twilio-ruby/rest/video/v1/room.rb +0 -485
- data/lib/twilio-ruby/rest/video/v1/room/recording.rb +0 -381
- data/lib/twilio-ruby/rest/wireless.rb +0 -60
- data/lib/twilio-ruby/rest/wireless/v1.rb +0 -71
- data/lib/twilio-ruby/rest/wireless/v1/command.rb +0 -367
- data/lib/twilio-ruby/rest/wireless/v1/rate_plan.rb +0 -452
- data/lib/twilio-ruby/rest/wireless/v1/sim.rb +0 -548
- data/lib/twilio-ruby/rest/wireless/v1/sim/usage_record.rb +0 -235
- data/lib/twilio-ruby/twiml/messaging_response.rb +0 -141
- data/lib/twilio-ruby/twiml/twiml.rb +0 -69
- data/lib/twilio-ruby/twiml/voice_response.rb +0 -916
- data/spec/framework/serialize_spec.rb +0 -59
- data/spec/integration/accounts/v1/credential/public_key_spec.rb +0 -226
- data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on/assigned_add_on_extension_spec.rb +0 -135
- data/spec/integration/api/v2010/account/incoming_phone_number/assigned_add_on_spec.rb +0 -223
- data/spec/integration/api/v2010/account/key_spec.rb +0 -178
- data/spec/integration/api/v2010/account/message/feedback_spec.rb +0 -48
- data/spec/integration/api/v2010/account/new_key_spec.rb +0 -45
- data/spec/integration/api/v2010/account/new_signing_key_spec.rb +0 -45
- data/spec/integration/api/v2010/account/recording/add_on_result/payload_spec.rb +0 -175
- data/spec/integration/api/v2010/account/recording/add_on_result_spec.rb +0 -166
- data/spec/integration/api/v2010/account/signing_key_spec.rb +0 -178
- data/spec/integration/chat/v1/credential_spec.rb +0 -223
- data/spec/integration/chat/v1/service/channel/invite_spec.rb +0 -210
- data/spec/integration/chat/v1/service/channel/member_spec.rb +0 -284
- data/spec/integration/chat/v1/service/channel/message_spec.rb +0 -294
- data/spec/integration/chat/v1/service/channel_spec.rb +0 -275
- data/spec/integration/chat/v1/service/role_spec.rb +0 -263
- data/spec/integration/chat/v1/service/user/user_channel_spec.rb +0 -92
- data/spec/integration/chat/v1/service/user_spec.rb +0 -266
- data/spec/integration/chat/v1/service_spec.rb +0 -299
- data/spec/integration/chat/v2/credential_spec.rb +0 -223
- data/spec/integration/chat/v2/service/channel/invite_spec.rb +0 -210
- data/spec/integration/chat/v2/service/channel/member_spec.rb +0 -284
- data/spec/integration/chat/v2/service/channel/message_spec.rb +0 -294
- data/spec/integration/chat/v2/service/channel_spec.rb +0 -275
- data/spec/integration/chat/v2/service/role_spec.rb +0 -263
- data/spec/integration/chat/v2/service/user/user_channel_spec.rb +0 -92
- data/spec/integration/chat/v2/service/user_spec.rb +0 -266
- data/spec/integration/chat/v2/service_spec.rb +0 -325
- data/spec/integration/fax/v1/fax/fax_media_spec.rb +0 -126
- data/spec/integration/fax/v1/fax_spec.rb +0 -272
- data/spec/integration/ip_messaging/v1/service/channel/invite_spec.rb +0 -210
- data/spec/integration/ip_messaging/v1/service/user/user_channel_spec.rb +0 -92
- data/spec/integration/ip_messaging/v2/credential_spec.rb +0 -223
- data/spec/integration/ip_messaging/v2/service/channel/invite_spec.rb +0 -210
- data/spec/integration/ip_messaging/v2/service/channel/member_spec.rb +0 -284
- data/spec/integration/ip_messaging/v2/service/channel/message_spec.rb +0 -294
- data/spec/integration/ip_messaging/v2/service/channel_spec.rb +0 -275
- data/spec/integration/ip_messaging/v2/service/role_spec.rb +0 -263
- data/spec/integration/ip_messaging/v2/service/user/user_channel_spec.rb +0 -92
- data/spec/integration/ip_messaging/v2/service/user_spec.rb +0 -266
- data/spec/integration/ip_messaging/v2/service_spec.rb +0 -325
- data/spec/integration/messaging/v1/service/alpha_sender_spec.rb +0 -170
- data/spec/integration/messaging/v1/service/phone_number_spec.rb +0 -201
- data/spec/integration/messaging/v1/service/short_code_spec.rb +0 -173
- data/spec/integration/messaging/v1/service_spec.rb +0 -263
- data/spec/integration/notify/v1/credential_spec.rb +0 -223
- data/spec/integration/notify/v1/service/binding_spec.rb +0 -227
- data/spec/integration/notify/v1/service/notification_spec.rb +0 -97
- data/spec/integration/notify/v1/service/segment_spec.rb +0 -84
- data/spec/integration/notify/v1/service/user/segment_memberships_spec.rb +0 -118
- data/spec/integration/notify/v1/service/user/user_binding_spec.rb +0 -269
- data/spec/integration/notify/v1/service/user_spec.rb +0 -213
- data/spec/integration/notify/v1/service_spec.rb +0 -280
- data/spec/integration/preview/bulk_exports/export/day_spec.rb +0 -56
- data/spec/integration/preview/bulk_exports/export_configuration_spec.rb +0 -79
- data/spec/integration/preview/bulk_exports/export_spec.rb +0 -43
- data/spec/integration/preview/hosted_numbers/hosted_number_order_spec.rb +0 -280
- data/spec/integration/preview/marketplace/available_add_on/available_add_on_extension_spec.rb +0 -121
- data/spec/integration/preview/marketplace/available_add_on_spec.rb +0 -142
- data/spec/integration/preview/marketplace/installed_add_on/installed_add_on_extension_spec.rb +0 -164
- data/spec/integration/preview/marketplace/installed_add_on_spec.rb +0 -252
- data/spec/integration/preview/proxy/service/phone_number_spec.rb +0 -173
- data/spec/integration/preview/proxy/service/session/interaction_spec.rb +0 -104
- data/spec/integration/preview/proxy/service/session/participant/message_interaction_spec.rb +0 -164
- data/spec/integration/preview/proxy/service/session/participant_spec.rb +0 -226
- data/spec/integration/preview/proxy/service/session_spec.rb +0 -216
- data/spec/integration/preview/proxy/service/short_code_spec.rb +0 -173
- data/spec/integration/preview/proxy/service_spec.rb +0 -200
- data/spec/integration/preview/sync/service/document/document_permission_spec.rb +0 -206
- data/spec/integration/preview/sync/service/document_spec.rb +0 -254
- data/spec/integration/preview/sync/service/sync_list/sync_list_item_spec.rb +0 -256
- data/spec/integration/preview/sync/service/sync_list/sync_list_permission_spec.rb +0 -206
- data/spec/integration/preview/sync/service/sync_list_spec.rb +0 -207
- data/spec/integration/preview/sync/service/sync_map/sync_map_item_spec.rb +0 -257
- data/spec/integration/preview/sync/service/sync_map/sync_map_permission_spec.rb +0 -206
- data/spec/integration/preview/sync/service/sync_map_spec.rb +0 -207
- data/spec/integration/preview/sync/service_spec.rb +0 -244
- data/spec/integration/preview/wireless/command_spec.rb +0 -169
- data/spec/integration/preview/wireless/rate_plan_spec.rb +0 -260
- data/spec/integration/preview/wireless/sim/usage_spec.rb +0 -49
- data/spec/integration/preview/wireless/sim_spec.rb +0 -208
- data/spec/integration/sync/v1/service/document/document_permission_spec.rb +0 -206
- data/spec/integration/sync/v1/service/document_spec.rb +0 -254
- data/spec/integration/sync/v1/service/sync_list/sync_list_item_spec.rb +0 -256
- data/spec/integration/sync/v1/service/sync_list/sync_list_permission_spec.rb +0 -206
- data/spec/integration/sync/v1/service/sync_list_spec.rb +0 -207
- data/spec/integration/sync/v1/service/sync_map/sync_map_item_spec.rb +0 -257
- data/spec/integration/sync/v1/service/sync_map/sync_map_permission_spec.rb +0 -206
- data/spec/integration/sync/v1/service/sync_map_spec.rb +0 -207
- data/spec/integration/sync/v1/service_spec.rb +0 -244
- data/spec/integration/taskrouter/v1/workspace/task_channel_spec.rb +0 -127
- data/spec/integration/taskrouter/v1/workspace/worker/reservation_spec.rb +0 -192
- data/spec/integration/taskrouter/v1/workspace/worker/worker_channel_spec.rb +0 -201
- data/spec/integration/video/v1/recording_spec.rb +0 -165
- data/spec/integration/video/v1/room/recording_spec.rb +0 -146
- data/spec/integration/video/v1/room_spec.rb +0 -237
- data/spec/integration/wireless/v1/command_spec.rb +0 -166
- data/spec/integration/wireless/v1/rate_plan_spec.rb +0 -268
- data/spec/integration/wireless/v1/sim/usage_record_spec.rb +0 -65
- data/spec/integration/wireless/v1/sim_spec.rb +0 -208
- data/spec/jwt/access_token_spec.rb +0 -130
- data/spec/jwt/client_capability_spec.rb +0 -104
- data/spec/jwt/task_router_spec.rb +0 -172
- data/spec/twiml/messaging_response_spec.rb +0 -90
- data/spec/twiml/voice_response_spec.rb +0 -474
@@ -2,19 +2,19 @@
|
|
2
2
|
# This code was generated by
|
3
3
|
# \ / _ _ _| _ _
|
4
4
|
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
-
# / /
|
5
|
+
# / /
|
6
6
|
|
7
7
|
require 'spec_helper.rb'
|
8
8
|
|
9
9
|
describe 'PhoneNumber' do
|
10
10
|
it "can fetch" do
|
11
11
|
@holodeck.mock(Twilio::TwilioResponse.new(500, ''))
|
12
|
-
|
12
|
+
|
13
13
|
expect {
|
14
14
|
@client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
15
15
|
.phone_numbers("PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").fetch()
|
16
|
-
}.to raise_exception(Twilio::REST::
|
17
|
-
|
16
|
+
}.to raise_exception(Twilio::REST::TwilioException)
|
17
|
+
|
18
18
|
values = {}
|
19
19
|
expect(
|
20
20
|
@holodeck.has_request?(Holodeck::Request.new(
|
@@ -63,21 +63,21 @@ describe 'PhoneNumber' do
|
|
63
63
|
}
|
64
64
|
]
|
65
65
|
))
|
66
|
-
|
66
|
+
|
67
67
|
actual = @client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
68
68
|
.phone_numbers("PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").fetch()
|
69
|
-
|
69
|
+
|
70
70
|
expect(actual).to_not eq(nil)
|
71
71
|
end
|
72
72
|
|
73
73
|
it "can delete" do
|
74
74
|
@holodeck.mock(Twilio::TwilioResponse.new(500, ''))
|
75
|
-
|
75
|
+
|
76
76
|
expect {
|
77
77
|
@client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
78
78
|
.phone_numbers("PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").delete()
|
79
|
-
}.to raise_exception(Twilio::REST::
|
80
|
-
|
79
|
+
}.to raise_exception(Twilio::REST::TwilioException)
|
80
|
+
|
81
81
|
values = {}
|
82
82
|
expect(
|
83
83
|
@holodeck.has_request?(Holodeck::Request.new(
|
@@ -91,21 +91,21 @@ describe 'PhoneNumber' do
|
|
91
91
|
204,
|
92
92
|
nil,
|
93
93
|
))
|
94
|
-
|
94
|
+
|
95
95
|
actual = @client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
96
96
|
.phone_numbers("PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").delete()
|
97
|
-
|
97
|
+
|
98
98
|
expect(actual).to eq(true)
|
99
99
|
end
|
100
100
|
|
101
101
|
it "can create" do
|
102
102
|
@holodeck.mock(Twilio::TwilioResponse.new(500, ''))
|
103
|
-
|
103
|
+
|
104
104
|
expect {
|
105
105
|
@client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
106
106
|
.phone_numbers.create(phone_number_sid: "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
|
107
|
-
}.to raise_exception(Twilio::REST::
|
108
|
-
|
107
|
+
}.to raise_exception(Twilio::REST::TwilioException)
|
108
|
+
|
109
109
|
values = {
|
110
110
|
'PhoneNumberSid' => "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
111
111
|
}
|
@@ -157,21 +157,21 @@ describe 'PhoneNumber' do
|
|
157
157
|
}
|
158
158
|
]
|
159
159
|
))
|
160
|
-
|
160
|
+
|
161
161
|
actual = @client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
162
162
|
.phone_numbers.create(phone_number_sid: "PNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
|
163
|
-
|
163
|
+
|
164
164
|
expect(actual).to_not eq(nil)
|
165
165
|
end
|
166
166
|
|
167
167
|
it "can read" do
|
168
168
|
@holodeck.mock(Twilio::TwilioResponse.new(500, ''))
|
169
|
-
|
169
|
+
|
170
170
|
expect {
|
171
171
|
@client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
172
172
|
.phone_numbers.list()
|
173
|
-
}.to raise_exception(Twilio::REST::
|
174
|
-
|
173
|
+
}.to raise_exception(Twilio::REST::TwilioException)
|
174
|
+
|
175
175
|
values = {}
|
176
176
|
expect(
|
177
177
|
@holodeck.has_request?(Holodeck::Request.new(
|
@@ -233,10 +233,10 @@ describe 'PhoneNumber' do
|
|
233
233
|
}
|
234
234
|
]
|
235
235
|
))
|
236
|
-
|
236
|
+
|
237
237
|
actual = @client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
238
238
|
.phone_numbers.list()
|
239
|
-
|
239
|
+
|
240
240
|
expect(actual).to_not eq(nil)
|
241
241
|
end
|
242
242
|
|
@@ -258,10 +258,10 @@ describe 'PhoneNumber' do
|
|
258
258
|
}
|
259
259
|
]
|
260
260
|
))
|
261
|
-
|
261
|
+
|
262
262
|
actual = @client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") \
|
263
263
|
.phone_numbers.list()
|
264
|
-
|
264
|
+
|
265
265
|
expect(actual).to_not eq(nil)
|
266
266
|
end
|
267
267
|
end
|
@@ -2,18 +2,18 @@
|
|
2
2
|
# This code was generated by
|
3
3
|
# \ / _ _ _| _ _
|
4
4
|
# | (_)\/(_)(_|\/| |(/_ v1.0.0
|
5
|
-
# / /
|
5
|
+
# / /
|
6
6
|
|
7
7
|
require 'spec_helper.rb'
|
8
8
|
|
9
9
|
describe 'Trunk' do
|
10
10
|
it "can fetch" do
|
11
11
|
@holodeck.mock(Twilio::TwilioResponse.new(500, ''))
|
12
|
-
|
12
|
+
|
13
13
|
expect {
|
14
14
|
@client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").fetch()
|
15
|
-
}.to raise_exception(Twilio::REST::
|
16
|
-
|
15
|
+
}.to raise_exception(Twilio::REST::TwilioException)
|
16
|
+
|
17
17
|
values = {}
|
18
18
|
expect(
|
19
19
|
@holodeck.has_request?(Holodeck::Request.new(
|
@@ -52,19 +52,19 @@ describe 'Trunk' do
|
|
52
52
|
}
|
53
53
|
]
|
54
54
|
))
|
55
|
-
|
55
|
+
|
56
56
|
actual = @client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").fetch()
|
57
|
-
|
57
|
+
|
58
58
|
expect(actual).to_not eq(nil)
|
59
59
|
end
|
60
60
|
|
61
61
|
it "can delete" do
|
62
62
|
@holodeck.mock(Twilio::TwilioResponse.new(500, ''))
|
63
|
-
|
63
|
+
|
64
64
|
expect {
|
65
65
|
@client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").delete()
|
66
|
-
}.to raise_exception(Twilio::REST::
|
67
|
-
|
66
|
+
}.to raise_exception(Twilio::REST::TwilioException)
|
67
|
+
|
68
68
|
values = {}
|
69
69
|
expect(
|
70
70
|
@holodeck.has_request?(Holodeck::Request.new(
|
@@ -78,19 +78,19 @@ describe 'Trunk' do
|
|
78
78
|
204,
|
79
79
|
nil,
|
80
80
|
))
|
81
|
-
|
81
|
+
|
82
82
|
actual = @client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").delete()
|
83
|
-
|
83
|
+
|
84
84
|
expect(actual).to eq(true)
|
85
85
|
end
|
86
86
|
|
87
87
|
it "can create" do
|
88
88
|
@holodeck.mock(Twilio::TwilioResponse.new(500, ''))
|
89
|
-
|
89
|
+
|
90
90
|
expect {
|
91
91
|
@client.trunking.v1.trunks.create()
|
92
|
-
}.to raise_exception(Twilio::REST::
|
93
|
-
|
92
|
+
}.to raise_exception(Twilio::REST::TwilioException)
|
93
|
+
|
94
94
|
values = {}
|
95
95
|
expect(
|
96
96
|
@holodeck.has_request?(Holodeck::Request.new(
|
@@ -129,19 +129,19 @@ describe 'Trunk' do
|
|
129
129
|
}
|
130
130
|
]
|
131
131
|
))
|
132
|
-
|
132
|
+
|
133
133
|
actual = @client.trunking.v1.trunks.create()
|
134
|
-
|
134
|
+
|
135
135
|
expect(actual).to_not eq(nil)
|
136
136
|
end
|
137
137
|
|
138
138
|
it "can read" do
|
139
139
|
@holodeck.mock(Twilio::TwilioResponse.new(500, ''))
|
140
|
-
|
140
|
+
|
141
141
|
expect {
|
142
142
|
@client.trunking.v1.trunks.list()
|
143
|
-
}.to raise_exception(Twilio::REST::
|
144
|
-
|
143
|
+
}.to raise_exception(Twilio::REST::TwilioException)
|
144
|
+
|
145
145
|
values = {}
|
146
146
|
expect(
|
147
147
|
@holodeck.has_request?(Holodeck::Request.new(
|
@@ -193,9 +193,9 @@ describe 'Trunk' do
|
|
193
193
|
}
|
194
194
|
]
|
195
195
|
))
|
196
|
-
|
196
|
+
|
197
197
|
actual = @client.trunking.v1.trunks.list()
|
198
|
-
|
198
|
+
|
199
199
|
expect(actual).to_not eq(nil)
|
200
200
|
end
|
201
201
|
|
@@ -217,19 +217,19 @@ describe 'Trunk' do
|
|
217
217
|
}
|
218
218
|
]
|
219
219
|
))
|
220
|
-
|
220
|
+
|
221
221
|
actual = @client.trunking.v1.trunks.list()
|
222
|
-
|
222
|
+
|
223
223
|
expect(actual).to_not eq(nil)
|
224
224
|
end
|
225
225
|
|
226
226
|
it "can update" do
|
227
227
|
@holodeck.mock(Twilio::TwilioResponse.new(500, ''))
|
228
|
-
|
228
|
+
|
229
229
|
expect {
|
230
230
|
@client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").update()
|
231
|
-
}.to raise_exception(Twilio::REST::
|
232
|
-
|
231
|
+
}.to raise_exception(Twilio::REST::TwilioException)
|
232
|
+
|
233
233
|
values = {}
|
234
234
|
expect(
|
235
235
|
@holodeck.has_request?(Holodeck::Request.new(
|
@@ -268,9 +268,9 @@ describe 'Trunk' do
|
|
268
268
|
}
|
269
269
|
]
|
270
270
|
))
|
271
|
-
|
271
|
+
|
272
272
|
actual = @client.trunking.v1.trunks("TRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").update()
|
273
|
-
|
273
|
+
|
274
274
|
expect(actual).to_not eq(nil)
|
275
275
|
end
|
276
276
|
end
|
@@ -3,38 +3,38 @@ require 'rack/mock'
|
|
3
3
|
|
4
4
|
describe Rack::TwilioWebhookAuthentication do
|
5
5
|
before do
|
6
|
-
@app =
|
6
|
+
@app = lambda {|env| [200, {'Content-Type' => 'text/plain'}, ['Hello']] }
|
7
7
|
end
|
8
8
|
|
9
9
|
describe 'new' do
|
10
10
|
it 'should initialize with an app, auth token and a path' do
|
11
|
-
expect
|
11
|
+
expect {
|
12
12
|
Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/)
|
13
|
-
|
13
|
+
}.not_to raise_error
|
14
14
|
end
|
15
15
|
|
16
16
|
it 'should initialize with an app, auth token and paths' do
|
17
|
-
expect
|
17
|
+
expect {
|
18
18
|
Rack::TwilioWebhookAuthentication.new(@app, 'ABC', /\/voice/, /\/sms/)
|
19
|
-
|
19
|
+
}.not_to raise_error
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'should initialize with an app, dynamic token and paths' do
|
23
|
-
expect
|
23
|
+
expect {
|
24
24
|
Rack::TwilioWebhookAuthentication.new(@app, nil, /\/voice/, /\/sms/)
|
25
|
-
|
25
|
+
}.not_to raise_error
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
29
|
describe 'calling against one path with dynamic auth token' do
|
30
30
|
it 'should allow a request through if it validates' do
|
31
31
|
auth_token = 'qwerty'
|
32
|
-
account_sid =
|
32
|
+
account_sid = 12345
|
33
33
|
expect_any_instance_of(Rack::Request).to receive(:post?).and_return(true)
|
34
|
-
expect_any_instance_of(Rack::Request).to receive(:POST).and_return({
|
35
|
-
@middleware = Rack::TwilioWebhookAuthentication.new(@app, nil, /\/voice/) { |asid| auth_token
|
34
|
+
expect_any_instance_of(Rack::Request).to receive(:POST).and_return({'AccountSid' => account_sid})
|
35
|
+
@middleware = Rack::TwilioWebhookAuthentication.new(@app, nil, /\/voice/) { |asid| auth_token}
|
36
36
|
request_validator = double('RequestValidator')
|
37
|
-
expect(Twilio::
|
37
|
+
expect(Twilio::Util::RequestValidator).to receive(:new).with(auth_token).and_return(request_validator)
|
38
38
|
expect(request_validator).to receive(:validate).and_return(true)
|
39
39
|
request = Rack::MockRequest.env_for('/voice')
|
40
40
|
status, headers, body = @middleware.call(request)
|
@@ -44,18 +44,20 @@ describe Rack::TwilioWebhookAuthentication do
|
|
44
44
|
|
45
45
|
describe 'calling against one path' do
|
46
46
|
before do
|
47
|
-
@middleware = Rack::TwilioWebhookAuthentication.new(
|
47
|
+
@middleware = Rack::TwilioWebhookAuthentication.new(
|
48
|
+
@app, 'ABC', /\/voice/
|
49
|
+
)
|
48
50
|
end
|
49
51
|
|
50
52
|
it 'should not intercept when the path doesn\'t match' do
|
51
|
-
expect(Twilio::
|
53
|
+
expect(Twilio::Util::RequestValidator).to_not receive(:validate)
|
52
54
|
request = Rack::MockRequest.env_for('/sms')
|
53
55
|
status, headers, body = @middleware.call(request)
|
54
56
|
expect(status).to be(200)
|
55
57
|
end
|
56
58
|
|
57
59
|
it 'should allow a request through if it validates' do
|
58
|
-
expect_any_instance_of(Twilio::
|
60
|
+
expect_any_instance_of(Twilio::Util::RequestValidator).to(
|
59
61
|
receive(:validate).and_return(true)
|
60
62
|
)
|
61
63
|
request = Rack::MockRequest.env_for('/voice')
|
@@ -64,7 +66,7 @@ describe Rack::TwilioWebhookAuthentication do
|
|
64
66
|
end
|
65
67
|
|
66
68
|
it 'should short circuit a request to 403 if it does not validate' do
|
67
|
-
expect_any_instance_of(Twilio::
|
69
|
+
expect_any_instance_of(Twilio::Util::RequestValidator).to(
|
68
70
|
receive(:validate).and_return(false)
|
69
71
|
)
|
70
72
|
request = Rack::MockRequest.env_for('/voice')
|
@@ -75,18 +77,20 @@ describe Rack::TwilioWebhookAuthentication do
|
|
75
77
|
|
76
78
|
describe 'calling against many paths' do
|
77
79
|
before do
|
78
|
-
@middleware = Rack::TwilioWebhookAuthentication.new(
|
80
|
+
@middleware = Rack::TwilioWebhookAuthentication.new(
|
81
|
+
@app, 'ABC', /\/voice/, /\/sms/
|
82
|
+
)
|
79
83
|
end
|
80
84
|
|
81
85
|
it 'should not intercept when the path doesn\'t match' do
|
82
|
-
expect(Twilio::
|
86
|
+
expect(Twilio::Util::RequestValidator).to_not receive(:validate)
|
83
87
|
request = Rack::MockRequest.env_for('icesms')
|
84
88
|
status, headers, body = @middleware.call(request)
|
85
89
|
expect(status).to be(200)
|
86
90
|
end
|
87
91
|
|
88
92
|
it 'shold allow a request through if it validates' do
|
89
|
-
expect_any_instance_of(Twilio::
|
93
|
+
expect_any_instance_of(Twilio::Util::RequestValidator).to(
|
90
94
|
receive(:validate).and_return(true)
|
91
95
|
)
|
92
96
|
request = Rack::MockRequest.env_for('/sms')
|
@@ -95,7 +99,7 @@ describe Rack::TwilioWebhookAuthentication do
|
|
95
99
|
end
|
96
100
|
|
97
101
|
it 'should short circuit a request to 403 if it does not validate' do
|
98
|
-
expect_any_instance_of(Twilio::
|
102
|
+
expect_any_instance_of(Twilio::Util::RequestValidator).to(
|
99
103
|
receive(:validate).and_return(false)
|
100
104
|
)
|
101
105
|
request = Rack::MockRequest.env_for('/sms')
|
data/spec/spec_helper.rb
CHANGED
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
3
3
|
require 'bundler'
|
4
4
|
Bundler.setup
|
5
5
|
|
6
|
-
Dir.glob(File.expand_path(
|
6
|
+
Dir.glob(File.expand_path("../support/**/*.rb", __FILE__), &method(:require))
|
7
7
|
|
8
8
|
require_relative './holodeck/holodeck.rb'
|
9
9
|
require_relative './holodeck/hologram.rb'
|
@@ -17,7 +17,7 @@ RSpec.configure do |config|
|
|
17
17
|
end
|
18
18
|
|
19
19
|
config.before(:each) do
|
20
|
-
@client = Twilio::REST::Client.new('AC' + 'a'
|
20
|
+
@client = Twilio::REST::Client.new('AC' + 'a'*32, 'AUTHTOKEN')
|
21
21
|
@holodeck = Holodeck.new
|
22
22
|
@client.http_client = @holodeck
|
23
23
|
end
|
data/spec/support/fakeweb.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
require 'fakeweb'
|
2
|
-
FakeWeb.allow_net_connect = false
|
2
|
+
FakeWeb.allow_net_connect = false
|
@@ -0,0 +1,114 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Twilio::TaskRouter::Capability do
|
4
|
+
describe 'with a capability' do
|
5
|
+
before :each do
|
6
|
+
@capability = Twilio::TaskRouter::Capability.new 'AC123', 'foobar', 'WS456', 'WK789'
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should return a valid jwt when #generate_token is called' do
|
10
|
+
token = @capability.generate_token
|
11
|
+
decoded, header = JWT.decode token, 'foobar'
|
12
|
+
expect(decoded['policies']).not_to be_nil
|
13
|
+
expect(decoded['iss']).not_to be_nil
|
14
|
+
expect(decoded['exp']).not_to be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should properly set the iss key in the payload' do
|
18
|
+
token = @capability.generate_token
|
19
|
+
decoded, header = JWT.decode token, 'foobar'
|
20
|
+
expect(decoded['iss']).to eq('AC123')
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should properly set exp based on the default 1-hour ttl' do
|
24
|
+
seconds = Time.now.to_i
|
25
|
+
token = @capability.generate_token
|
26
|
+
decoded, header = JWT.decode token, 'foobar'
|
27
|
+
expect(decoded['exp']).to eq(seconds + 3600)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should properly set exp based on the ttl arg to #generate_token' do
|
31
|
+
seconds = Time.now.to_i
|
32
|
+
ttl = rand 10000
|
33
|
+
token = @capability.generate_token ttl
|
34
|
+
decoded, header = JWT.decode token, 'foobar'
|
35
|
+
expect(decoded['exp']).to eq(seconds + ttl)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should allow websocket operations and activity list fetches by default' do
|
39
|
+
token = @capability.generate_token
|
40
|
+
decoded, header = JWT.decode token, 'foobar'
|
41
|
+
expect(decoded['policies'].size).to eq(3)
|
42
|
+
get_policy = {
|
43
|
+
"url" => 'https://event-bridge.twilio.com/v1/wschannels/AC123/WK789',
|
44
|
+
"method" => 'GET',
|
45
|
+
"query_filter" => {},
|
46
|
+
"post_filter" => {},
|
47
|
+
"allow" => true
|
48
|
+
}
|
49
|
+
expect(decoded['policies'][0]).to eq(get_policy)
|
50
|
+
post_policy = {
|
51
|
+
"url" => 'https://event-bridge.twilio.com/v1/wschannels/AC123/WK789',
|
52
|
+
"method" => 'POST',
|
53
|
+
"query_filter" => {},
|
54
|
+
"post_filter" => {},
|
55
|
+
"allow" => true
|
56
|
+
}
|
57
|
+
expect(decoded['policies'][1]).to eq(post_policy)
|
58
|
+
|
59
|
+
activities_policy = {
|
60
|
+
'url' => 'https://taskrouter.twilio.com/v1/Workspaces/WS456/Activities',
|
61
|
+
'method' => 'GET',
|
62
|
+
'query_filter' => {},
|
63
|
+
'post_filter' => {},
|
64
|
+
'allow' => true
|
65
|
+
}
|
66
|
+
expect(decoded['policies'][2]).to eq(activities_policy)
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'should add a policy when #allow_worker_activity_updates is called' do
|
70
|
+
@capability.allow_worker_activity_updates
|
71
|
+
token = @capability.generate_token
|
72
|
+
decoded, header = JWT.decode token, 'foobar'
|
73
|
+
expect(decoded['policies'].size).to eq(4)
|
74
|
+
activity_policy = {
|
75
|
+
'url' => 'https://taskrouter.twilio.com/v1/Workspaces/WS456/Workers/WK789',
|
76
|
+
'method' => 'POST',
|
77
|
+
'query_filter' => {},
|
78
|
+
'post_filter' => {'ActivitySid' => {'required' => true}},
|
79
|
+
'allow' => true
|
80
|
+
}
|
81
|
+
expect(decoded['policies'][-1]).to eq(activity_policy)
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should add a policy when #allow_worker_fetch_attributes is called' do
|
85
|
+
@capability.allow_worker_fetch_attributes
|
86
|
+
token = @capability.generate_token
|
87
|
+
decoded, header = JWT.decode token, 'foobar'
|
88
|
+
expect(decoded['policies'].size).to eq(4)
|
89
|
+
worker_policy = {
|
90
|
+
'url' => 'https://taskrouter.twilio.com/v1/Workspaces/WS456/Workers/WK789',
|
91
|
+
'method' => 'GET',
|
92
|
+
'query_filter' => {},
|
93
|
+
'post_filter' => {},
|
94
|
+
'allow' => true
|
95
|
+
}
|
96
|
+
expect(decoded['policies'][-1]).to eq(worker_policy)
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'should add a policy when #allow_task_reservation_updates is called' do
|
100
|
+
@capability.allow_task_reservation_updates
|
101
|
+
token = @capability.generate_token
|
102
|
+
decoded, header = JWT.decode token, 'foobar'
|
103
|
+
expect(decoded['policies'].size).to eq(4)
|
104
|
+
task_policy = {
|
105
|
+
'url' => 'https://taskrouter.twilio.com/v1/Workspaces/WS456/Tasks/**',
|
106
|
+
'method' => 'POST',
|
107
|
+
'query_filter' => {},
|
108
|
+
'post_filter' => {'ReservationStatus' => {'required' => true}},
|
109
|
+
'allow' => true
|
110
|
+
}
|
111
|
+
expect(decoded['policies'][-1]).to eq(task_policy)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|