freeclimb 4.5.0 → 4.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/Gemfile.lock +58 -43
- data/LICENSE.txt +10 -0
- data/README.md +204 -202
- data/lib/freeclimb/models/transcribe_utterance.rb +10 -2
- data/lib/freeclimb/utils/signature_information.rb +1 -1
- data/lib/freeclimb/version.rb +1 -1
- data/openapi.json +68 -277
- data/spec/utils/request_verifier_spec.rb +5 -4
- data/spec/utils/signature_information_spec.rb +7 -1
- metadata +79 -78
@@ -111,11 +111,12 @@ describe 'RequestVerifier' do
|
|
111
111
|
context 'Request plus tolerance is not less than the current datetime' do
|
112
112
|
it 'throws "Request time exceeded tolerance threshold. Request: 1900871395, CurrentTime: currentTimeValue, tolerance, toleranceValue"' do
|
113
113
|
currentTime = DateTime.now.strftime('%s').to_i
|
114
|
-
|
114
|
+
timeCalculation = currentTime - (6 * 60)
|
115
|
+
request_header = "t=#{timeCalculation},v1=1d798c86e977ff734dec3a8b8d67fe8621dcc1df46ef4212e0bfe2e122b01bfd,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
|
115
116
|
signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
|
116
117
|
tolerance = (5 * 60)
|
117
118
|
request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
|
118
|
-
expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Request time exceeded tolerance threshold. Request:
|
119
|
+
expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Request time exceeded tolerance threshold. Request: #{timeCalculation}" + ", CurrentTime: " + currentTime.to_s + ", tolerance: " + tolerance.to_s)
|
119
120
|
end
|
120
121
|
end
|
121
122
|
end
|
@@ -124,7 +125,7 @@ describe 'RequestVerifier' do
|
|
124
125
|
context 'Signature request is unverified, signing secret does not exist in signatures, potential typo' do
|
125
126
|
it 'throws "Unverified signature request, If this request was unexpected, it may be from a bad actor. Please proceed with caution. If the request was exepected, please check any typos or issues with the signingSecret"' do
|
126
127
|
currentTime = DateTime.now.strftime('%s').to_i
|
127
|
-
request_header = "t
|
128
|
+
request_header = "t=#{currentTime},v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
|
128
129
|
signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7794"
|
129
130
|
tolerance = (5 * 60)
|
130
131
|
request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
|
@@ -136,7 +137,7 @@ describe 'RequestVerifier' do
|
|
136
137
|
describe '#verify_request_signature' do
|
137
138
|
context 'Request is valid' do
|
138
139
|
it 'No errors are thrown' do
|
139
|
-
request_header = "t=
|
140
|
+
request_header = "t=2130000000,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=6835006e70c9b9f610e8fb3a8b36b52b3f28c12d0a2dab75091c46ca7ec11b20"
|
140
141
|
signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
|
141
142
|
tolerance = (5 * 60)
|
142
143
|
request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
|
@@ -9,13 +9,19 @@ describe 'SignatureInformation' do
|
|
9
9
|
describe '#is_request_time_valid' do
|
10
10
|
context 'request time is within tolerance threshold' do
|
11
11
|
it 'returns true' do
|
12
|
+
@time_calculation = DateTime.now.strftime('%s').to_i
|
13
|
+
@request_header = "t=#{@time_calculation},v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
|
14
|
+
@signature_information_object = Freeclimb::SignatureInformation.new(@request_header)
|
12
15
|
tolerance = 5 * 60
|
13
16
|
expect(@signature_information_object.is_request_time_valid(tolerance)).to be true
|
14
17
|
end
|
15
18
|
end
|
16
19
|
context 'request time is not within tolerance threshold' do
|
17
20
|
it 'returns false since it does not match condition of request time being within tolerance threshold' do
|
18
|
-
|
21
|
+
@time_calculation = DateTime.now.strftime('%s').to_i - (600 * 60)
|
22
|
+
@request_header = "t=#{@time_calculation},v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
|
23
|
+
@signature_information_object = Freeclimb::SignatureInformation.new(@request_header)
|
24
|
+
tolerance = 500 * 60
|
19
25
|
expect(@signature_information_object.is_request_time_valid(tolerance)).to be false
|
20
26
|
end
|
21
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: freeclimb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.5.
|
4
|
+
version: 4.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenAPI-Generator
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- CHANGELOG.md
|
68
68
|
- Gemfile
|
69
69
|
- Gemfile.lock
|
70
|
+
- LICENSE.txt
|
70
71
|
- README.md
|
71
72
|
- Rakefile
|
72
73
|
- docs/AccountRequest.md
|
@@ -488,100 +489,100 @@ test_files:
|
|
488
489
|
- spec/api_client_spec.rb
|
489
490
|
- spec/configuration_spec.rb
|
490
491
|
- spec/factories.rb
|
491
|
-
- spec/models/
|
492
|
+
- spec/models/mutable_resource_model_spec.rb
|
493
|
+
- spec/models/create_conference_request_spec.rb
|
494
|
+
- spec/models/record_utterance_spec.rb
|
495
|
+
- spec/models/out_dial_spec.rb
|
496
|
+
- spec/models/grammar_type_spec.rb
|
492
497
|
- spec/models/queue_list_spec.rb
|
493
|
-
- spec/models/
|
494
|
-
- spec/models/transcribe_utterance_record_spec.rb
|
495
|
-
- spec/models/percl_command_spec.rb
|
496
|
-
- spec/models/log_result_spec.rb
|
497
|
-
- spec/models/set_talk_spec.rb
|
498
|
-
- spec/models/buy_incoming_number_request_spec.rb
|
499
|
-
- spec/models/get_speech_reason_spec.rb
|
500
|
-
- spec/models/update_conference_request_spec.rb
|
501
|
-
- spec/models/enqueue_spec.rb
|
502
|
-
- spec/models/queue_member_list_spec.rb
|
503
|
-
- spec/models/play_early_media_spec.rb
|
498
|
+
- spec/models/create_conference_spec.rb
|
504
499
|
- spec/models/get_speech_spec.rb
|
505
|
-
- spec/models/
|
506
|
-
- spec/models/
|
507
|
-
- spec/models/
|
508
|
-
- spec/models/redirect_spec.rb
|
509
|
-
- spec/models/record_utterance_term_reason_spec.rb
|
510
|
-
- spec/models/mutable_resource_model_spec.rb
|
511
|
-
- spec/models/queue_result_status_spec.rb
|
512
|
-
- spec/models/incoming_number_result_spec.rb
|
500
|
+
- spec/models/update_call_request_status_spec.rb
|
501
|
+
- spec/models/application_request_spec.rb
|
502
|
+
- spec/models/available_number_spec.rb
|
513
503
|
- spec/models/update_call_request_spec.rb
|
514
|
-
- spec/models/
|
504
|
+
- spec/models/application_result_spec.rb
|
505
|
+
- spec/models/pause_spec.rb
|
506
|
+
- spec/models/redirect_spec.rb
|
507
|
+
- spec/models/pagination_model_spec.rb
|
508
|
+
- spec/models/play_beep_spec.rb
|
509
|
+
- spec/models/message_request_spec.rb
|
510
|
+
- spec/models/answered_by_spec.rb
|
515
511
|
- spec/models/call_list_spec.rb
|
516
|
-
- spec/models/
|
512
|
+
- spec/models/conference_result_spec.rb
|
513
|
+
- spec/models/sms_ten_dlc_campaigns_list_result_spec.rb
|
517
514
|
- spec/models/account_type_spec.rb
|
515
|
+
- spec/models/update_conference_request_status_spec.rb
|
516
|
+
- spec/models/conference_status_spec.rb
|
517
|
+
- spec/models/queue_result_status_spec.rb
|
518
|
+
- spec/models/transcribe_utterance_record_spec.rb
|
519
|
+
- spec/models/sms_ten_dlc_brands_list_result_spec.rb
|
520
|
+
- spec/models/call_result_spec.rb
|
521
|
+
- spec/models/enqueue_spec.rb
|
522
|
+
- spec/models/play_early_media_spec.rb
|
523
|
+
- spec/models/queue_request_spec.rb
|
518
524
|
- spec/models/terminate_conference_spec.rb
|
519
|
-
- spec/models/
|
520
|
-
- spec/models/
|
521
|
-
- spec/models/
|
522
|
-
- spec/models/make_call_request_spec.rb
|
523
|
-
- spec/models/call_direction_spec.rb
|
524
|
-
- spec/models/call_status_spec.rb
|
525
|
-
- spec/models/conference_list_spec.rb
|
526
|
-
- spec/models/pagination_model_spec.rb
|
527
|
-
- spec/models/application_result_spec.rb
|
528
|
-
- spec/models/create_conference_spec.rb
|
529
|
-
- spec/models/account_result_spec.rb
|
530
|
-
- spec/models/capabilities_spec.rb
|
525
|
+
- spec/models/set_talk_spec.rb
|
526
|
+
- spec/models/if_machine_spec.rb
|
527
|
+
- spec/models/message_direction_spec.rb
|
531
528
|
- spec/models/start_record_call_spec.rb
|
532
|
-
- spec/models/account_status_spec.rb
|
533
|
-
- spec/models/available_number_list_spec.rb
|
534
|
-
- spec/models/sms_ten_dlc_brand_spec.rb
|
535
|
-
- spec/models/queue_request_spec.rb
|
536
529
|
- spec/models/send_digits_spec.rb
|
537
|
-
- spec/models/
|
538
|
-
- spec/models/
|
539
|
-
- spec/models/
|
540
|
-
- spec/models/
|
541
|
-
- spec/models/
|
542
|
-
- spec/models/
|
543
|
-
- spec/models/
|
544
|
-
- spec/models/
|
530
|
+
- spec/models/update_conference_participant_request_spec.rb
|
531
|
+
- spec/models/queue_result_spec.rb
|
532
|
+
- spec/models/message_status_spec.rb
|
533
|
+
- spec/models/recording_result_spec.rb
|
534
|
+
- spec/models/unpark_spec.rb
|
535
|
+
- spec/models/incoming_number_result_spec.rb
|
536
|
+
- spec/models/log_level_spec.rb
|
537
|
+
- spec/models/add_to_conference_spec.rb
|
538
|
+
- spec/models/sms_spec.rb
|
545
539
|
- spec/models/message_result_spec.rb
|
546
|
-
- spec/models/
|
547
|
-
- spec/models/
|
548
|
-
- spec/models/conference_participant_list_spec.rb
|
549
|
-
- spec/models/set_listen_spec.rb
|
550
|
-
- spec/models/available_number_spec.rb
|
551
|
-
- spec/models/answered_by_spec.rb
|
552
|
-
- spec/models/filter_logs_request_spec.rb
|
553
|
-
- spec/models/recording_list_spec.rb
|
540
|
+
- spec/models/log_list_spec.rb
|
541
|
+
- spec/models/sms_ten_dlc_partner_campaign_spec.rb
|
554
542
|
- spec/models/hangup_spec.rb
|
555
|
-
- spec/models/
|
543
|
+
- spec/models/play_spec.rb
|
544
|
+
- spec/models/buy_incoming_number_request_spec.rb
|
556
545
|
- spec/models/get_digits_spec.rb
|
557
|
-
- spec/models/
|
558
|
-
- spec/models/
|
559
|
-
- spec/models/
|
560
|
-
- spec/models/
|
546
|
+
- spec/models/remove_from_conference_spec.rb
|
547
|
+
- spec/models/update_conference_request_spec.rb
|
548
|
+
- spec/models/language_spec.rb
|
549
|
+
- spec/models/percl_command_spec.rb
|
561
550
|
- spec/models/reject_spec.rb
|
562
|
-
- spec/models/
|
551
|
+
- spec/models/queue_member_list_spec.rb
|
552
|
+
- spec/models/sms_ten_dlc_partner_campaigns_list_result_spec.rb
|
553
|
+
- spec/models/conference_participant_list_spec.rb
|
563
554
|
- spec/models/grammar_file_built_in_spec.rb
|
564
|
-
- spec/models/
|
555
|
+
- spec/models/conference_list_spec.rb
|
556
|
+
- spec/models/transcribe_utterance_spec.rb
|
557
|
+
- spec/models/dequeue_spec.rb
|
565
558
|
- spec/models/say_spec.rb
|
566
|
-
- spec/models/
|
567
|
-
- spec/models/
|
568
|
-
- spec/models/
|
569
|
-
- spec/models/
|
559
|
+
- spec/models/percl_script_spec.rb
|
560
|
+
- spec/models/call_direction_spec.rb
|
561
|
+
- spec/models/call_status_spec.rb
|
562
|
+
- spec/models/account_status_spec.rb
|
563
|
+
- spec/models/record_utterance_term_reason_spec.rb
|
570
564
|
- spec/models/request_type_spec.rb
|
571
|
-
- spec/models/
|
572
|
-
- spec/models/
|
573
|
-
- spec/models/
|
574
|
-
- spec/models/if_machine_spec.rb
|
575
|
-
- spec/models/application_request_spec.rb
|
576
|
-
- spec/models/conference_status_spec.rb
|
565
|
+
- spec/models/capabilities_spec.rb
|
566
|
+
- spec/models/incoming_number_list_spec.rb
|
567
|
+
- spec/models/filter_logs_request_spec.rb
|
577
568
|
- spec/models/queue_member_spec.rb
|
578
|
-
- spec/models/
|
579
|
-
- spec/models/
|
580
|
-
- spec/models/
|
581
|
-
- spec/models/
|
582
|
-
- spec/models/
|
569
|
+
- spec/models/make_call_request_spec.rb
|
570
|
+
- spec/models/account_request_spec.rb
|
571
|
+
- spec/models/set_listen_spec.rb
|
572
|
+
- spec/models/conference_participant_result_spec.rb
|
573
|
+
- spec/models/log_result_spec.rb
|
574
|
+
- spec/models/available_number_list_spec.rb
|
575
|
+
- spec/models/machine_type_spec.rb
|
576
|
+
- spec/models/park_spec.rb
|
577
|
+
- spec/models/application_list_spec.rb
|
578
|
+
- spec/models/sms_ten_dlc_partner_campaign_brand_spec.rb
|
579
|
+
- spec/models/account_result_spec.rb
|
580
|
+
- spec/models/messages_list_spec.rb
|
583
581
|
- spec/models/sms_ten_dlc_campaign_spec.rb
|
584
582
|
- spec/models/incoming_number_request_spec.rb
|
583
|
+
- spec/models/recording_list_spec.rb
|
584
|
+
- spec/models/get_speech_reason_spec.rb
|
585
|
+
- spec/models/sms_ten_dlc_brand_spec.rb
|
585
586
|
- spec/quickstart_spec.rb
|
586
587
|
- spec/spec_helper.rb
|
587
588
|
- spec/utils/request_verifier_spec.rb
|