freeclimb 5.1.0 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/Gemfile +4 -5
  4. data/Gemfile.lock +20 -7
  5. data/README.md +17 -4
  6. data/Rakefile +1 -1
  7. data/docs/CallResult.md +2 -2
  8. data/docs/CreateConference.md +4 -2
  9. data/docs/CreateConferenceRequest.md +1 -1
  10. data/docs/DefaultApi.md +369 -2
  11. data/docs/ExportList.md +32 -0
  12. data/docs/ExportOutputType.md +16 -0
  13. data/docs/ExportRequest.md +24 -0
  14. data/docs/ExportRequestOutput.md +18 -0
  15. data/docs/ExportResourceType.md +17 -0
  16. data/docs/ExportResult.md +40 -0
  17. data/docs/ExportResultOutput.md +18 -0
  18. data/docs/ExportStatus.md +21 -0
  19. data/freeclimb.gemspec +21 -26
  20. data/lib/freeclimb/api/default_api.rb +1191 -878
  21. data/lib/freeclimb/api_client.rb +78 -83
  22. data/lib/freeclimb/api_error.rb +17 -19
  23. data/lib/freeclimb/configuration.rb +27 -29
  24. data/lib/freeclimb/models/account_request.rb +36 -41
  25. data/lib/freeclimb/models/account_result.rb +88 -92
  26. data/lib/freeclimb/models/account_status.rb +12 -14
  27. data/lib/freeclimb/models/account_type.rb +12 -14
  28. data/lib/freeclimb/models/add_to_conference.rb +81 -85
  29. data/lib/freeclimb/models/add_to_conference_notification_webhook.rb +99 -103
  30. data/lib/freeclimb/models/add_to_queue_notification_webhook.rb +78 -82
  31. data/lib/freeclimb/models/answered_by.rb +12 -14
  32. data/lib/freeclimb/models/application_list.rb +74 -78
  33. data/lib/freeclimb/models/application_request.rb +66 -70
  34. data/lib/freeclimb/models/application_result.rb +100 -104
  35. data/lib/freeclimb/models/available_number.rb +66 -70
  36. data/lib/freeclimb/models/available_number_list.rb +74 -78
  37. data/lib/freeclimb/models/barge_in_reason.rb +12 -14
  38. data/lib/freeclimb/models/buy_incoming_number_request.rb +41 -45
  39. data/lib/freeclimb/models/call_control_webhook.rb +56 -61
  40. data/lib/freeclimb/models/call_direction.rb +12 -14
  41. data/lib/freeclimb/models/call_ended_reason.rb +12 -14
  42. data/lib/freeclimb/models/call_list.rb +74 -78
  43. data/lib/freeclimb/models/call_result.rb +144 -148
  44. data/lib/freeclimb/models/call_status.rb +12 -14
  45. data/lib/freeclimb/models/call_status_webhook.rb +84 -88
  46. data/lib/freeclimb/models/capabilities.rb +55 -59
  47. data/lib/freeclimb/models/completion_request.rb +32 -36
  48. data/lib/freeclimb/models/completion_result.rb +36 -40
  49. data/lib/freeclimb/models/completion_result_status.rb +12 -14
  50. data/lib/freeclimb/models/conference_list.rb +74 -78
  51. data/lib/freeclimb/models/conference_participant_list.rb +74 -78
  52. data/lib/freeclimb/models/conference_participant_result.rb +88 -92
  53. data/lib/freeclimb/models/conference_recording_status_webhook.rb +99 -103
  54. data/lib/freeclimb/models/conference_result.rb +106 -110
  55. data/lib/freeclimb/models/conference_status.rb +12 -14
  56. data/lib/freeclimb/models/conference_status_webhook.rb +102 -106
  57. data/lib/freeclimb/models/create_conference.rb +71 -64
  58. data/lib/freeclimb/models/create_conference_request.rb +55 -54
  59. data/lib/freeclimb/models/create_conference_webhook.rb +102 -106
  60. data/lib/freeclimb/models/create_web_rtc_token.rb +42 -46
  61. data/lib/freeclimb/models/dequeue.rb +28 -33
  62. data/lib/freeclimb/models/dequeue_webhook.rb +89 -93
  63. data/lib/freeclimb/models/enqueue.rb +48 -52
  64. data/lib/freeclimb/models/export_list.rb +304 -0
  65. data/lib/freeclimb/models/export_output_type.rb +34 -0
  66. data/lib/freeclimb/models/export_request.rb +276 -0
  67. data/lib/freeclimb/models/export_request_output.rb +243 -0
  68. data/lib/freeclimb/models/export_resource_type.rb +35 -0
  69. data/lib/freeclimb/models/export_result.rb +405 -0
  70. data/lib/freeclimb/models/export_result_output.rb +243 -0
  71. data/lib/freeclimb/models/export_status.rb +39 -0
  72. data/lib/freeclimb/models/filter_logs_request.rb +31 -35
  73. data/lib/freeclimb/models/get_digits.rb +73 -77
  74. data/lib/freeclimb/models/get_digits_reason.rb +12 -14
  75. data/lib/freeclimb/models/get_digits_webhook.rb +93 -97
  76. data/lib/freeclimb/models/get_speech.rb +94 -97
  77. data/lib/freeclimb/models/get_speech_reason.rb +12 -14
  78. data/lib/freeclimb/models/get_speech_webhook.rb +118 -122
  79. data/lib/freeclimb/models/grammar_file_built_in.rb +12 -14
  80. data/lib/freeclimb/models/grammar_type.rb +12 -14
  81. data/lib/freeclimb/models/hangup.rb +34 -39
  82. data/lib/freeclimb/models/if_machine.rb +12 -14
  83. data/lib/freeclimb/models/inbound_call_webhook.rb +85 -89
  84. data/lib/freeclimb/models/incoming_number_list.rb +74 -78
  85. data/lib/freeclimb/models/incoming_number_request.rb +41 -45
  86. data/lib/freeclimb/models/incoming_number_result.rb +122 -126
  87. data/lib/freeclimb/models/language.rb +12 -14
  88. data/lib/freeclimb/models/leave_conference_webhook.rb +79 -83
  89. data/lib/freeclimb/models/log_level.rb +12 -14
  90. data/lib/freeclimb/models/log_list.rb +74 -78
  91. data/lib/freeclimb/models/log_result.rb +67 -71
  92. data/lib/freeclimb/models/machine_detected_webhook.rb +89 -93
  93. data/lib/freeclimb/models/machine_type.rb +12 -14
  94. data/lib/freeclimb/models/make_call_request.rb +77 -81
  95. data/lib/freeclimb/models/message_delivery_webhook.rb +81 -86
  96. data/lib/freeclimb/models/message_direction.rb +12 -14
  97. data/lib/freeclimb/models/message_request.rb +72 -75
  98. data/lib/freeclimb/models/message_result.rb +135 -139
  99. data/lib/freeclimb/models/message_status.rb +12 -14
  100. data/lib/freeclimb/models/message_status_webhook.rb +86 -90
  101. data/lib/freeclimb/models/messages_list.rb +74 -78
  102. data/lib/freeclimb/models/mutable_resource_model.rb +46 -51
  103. data/lib/freeclimb/models/out_dial.rb +80 -84
  104. data/lib/freeclimb/models/out_dial_api_connect_webhook.rb +84 -88
  105. data/lib/freeclimb/models/out_dial_connect_webhook.rb +84 -88
  106. data/lib/freeclimb/models/out_dial_start_webhook.rb +90 -94
  107. data/lib/freeclimb/models/pagination_model.rb +67 -71
  108. data/lib/freeclimb/models/park.rb +44 -48
  109. data/lib/freeclimb/models/pause.rb +33 -37
  110. data/lib/freeclimb/models/percl_command.rb +36 -40
  111. data/lib/freeclimb/models/percl_script.rb +32 -36
  112. data/lib/freeclimb/models/play.rb +44 -48
  113. data/lib/freeclimb/models/play_beep.rb +12 -14
  114. data/lib/freeclimb/models/play_early_media.rb +33 -37
  115. data/lib/freeclimb/models/queue_list.rb +74 -78
  116. data/lib/freeclimb/models/queue_member.rb +55 -59
  117. data/lib/freeclimb/models/queue_member_list.rb +74 -78
  118. data/lib/freeclimb/models/queue_request.rb +37 -42
  119. data/lib/freeclimb/models/queue_result.rb +88 -92
  120. data/lib/freeclimb/models/queue_result_status.rb +12 -14
  121. data/lib/freeclimb/models/queue_wait_webhook.rb +94 -98
  122. data/lib/freeclimb/models/record_utterance.rb +63 -67
  123. data/lib/freeclimb/models/record_utterance_term_reason.rb +12 -14
  124. data/lib/freeclimb/models/record_webhook.rb +119 -123
  125. data/lib/freeclimb/models/recording_list.rb +74 -78
  126. data/lib/freeclimb/models/recording_result.rb +76 -80
  127. data/lib/freeclimb/models/redirect.rb +33 -37
  128. data/lib/freeclimb/models/redirect_webhook.rb +84 -88
  129. data/lib/freeclimb/models/reject.rb +34 -39
  130. data/lib/freeclimb/models/remove_from_conference.rb +28 -33
  131. data/lib/freeclimb/models/remove_from_queue_notification_webhook.rb +89 -93
  132. data/lib/freeclimb/models/request_type.rb +12 -14
  133. data/lib/freeclimb/models/say.rb +49 -53
  134. data/lib/freeclimb/models/send_digits.rb +43 -47
  135. data/lib/freeclimb/models/set_dtmf_pass_through.rb +34 -39
  136. data/lib/freeclimb/models/set_listen.rb +34 -39
  137. data/lib/freeclimb/models/set_talk.rb +34 -39
  138. data/lib/freeclimb/models/sms.rb +48 -52
  139. data/lib/freeclimb/models/sms_ten_dlc_brand.rb +187 -190
  140. data/lib/freeclimb/models/sms_ten_dlc_brand_alt_business_id_type.rb +12 -14
  141. data/lib/freeclimb/models/sms_ten_dlc_brand_entity_type.rb +12 -14
  142. data/lib/freeclimb/models/sms_ten_dlc_brand_identity_status.rb +12 -14
  143. data/lib/freeclimb/models/sms_ten_dlc_brand_relationship.rb +12 -14
  144. data/lib/freeclimb/models/sms_ten_dlc_brand_stock_exchange.rb +12 -14
  145. data/lib/freeclimb/models/sms_ten_dlc_brands_list_result.rb +74 -78
  146. data/lib/freeclimb/models/sms_ten_dlc_campaign.rb +226 -229
  147. data/lib/freeclimb/models/sms_ten_dlc_campaign_status.rb +12 -14
  148. data/lib/freeclimb/models/sms_ten_dlc_campaigns_list_result.rb +74 -78
  149. data/lib/freeclimb/models/sms_ten_dlc_partner_campaign.rb +186 -189
  150. data/lib/freeclimb/models/sms_ten_dlc_partner_campaign_brand.rb +84 -87
  151. data/lib/freeclimb/models/sms_ten_dlc_partner_campaign_status.rb +12 -14
  152. data/lib/freeclimb/models/sms_ten_dlc_partner_campaigns_list_result.rb +74 -78
  153. data/lib/freeclimb/models/sms_toll_free_campaign.rb +61 -64
  154. data/lib/freeclimb/models/sms_toll_free_campaign_registration_status.rb +12 -14
  155. data/lib/freeclimb/models/sms_toll_free_campaigns_list_result.rb +74 -78
  156. data/lib/freeclimb/models/start_record_call.rb +28 -33
  157. data/lib/freeclimb/models/terminate_conference.rb +28 -33
  158. data/lib/freeclimb/models/tfn.rb +31 -35
  159. data/lib/freeclimb/models/tfn_campaign.rb +76 -79
  160. data/lib/freeclimb/models/transcribe_reason.rb +12 -14
  161. data/lib/freeclimb/models/transcribe_term_reason.rb +12 -14
  162. data/lib/freeclimb/models/transcribe_utterance.rb +61 -65
  163. data/lib/freeclimb/models/transcribe_utterance_record.rb +43 -47
  164. data/lib/freeclimb/models/transcribe_webhook.rb +150 -154
  165. data/lib/freeclimb/models/unpark.rb +28 -33
  166. data/lib/freeclimb/models/update_call_request.rb +31 -35
  167. data/lib/freeclimb/models/update_call_request_status.rb +12 -14
  168. data/lib/freeclimb/models/update_conference_participant_request.rb +41 -46
  169. data/lib/freeclimb/models/update_conference_request.rb +41 -45
  170. data/lib/freeclimb/models/update_conference_request_status.rb +12 -14
  171. data/lib/freeclimb/models/webhook.rb +32 -37
  172. data/lib/freeclimb/utils/request_verifier.rb +14 -14
  173. data/lib/freeclimb/utils/signature_information.rb +8 -8
  174. data/lib/freeclimb/version.rb +10 -12
  175. data/lib/freeclimb.rb +164 -158
  176. data/openapi.json +373 -2
  177. data/package.json +1 -1
  178. data/spec/api/default_api_spec.rb +631 -676
  179. data/spec/api_client_spec.rb +100 -102
  180. data/spec/configuration_spec.rb +16 -18
  181. data/spec/models/account_request_spec.rb +104 -233
  182. data/spec/models/account_result_spec.rb +393 -1013
  183. data/spec/models/account_status_spec.rb +27 -30
  184. data/spec/models/account_type_spec.rb +24 -27
  185. data/spec/models/add_to_conference_notification_webhook_spec.rb +464 -1197
  186. data/spec/models/add_to_conference_spec.rb +354 -850
  187. data/spec/models/add_to_queue_notification_webhook_spec.rb +341 -864
  188. data/spec/models/answered_by_spec.rb +24 -27
  189. data/spec/models/application_list_spec.rb +289 -646
  190. data/spec/models/application_request_spec.rb +265 -679
  191. data/spec/models/application_result_spec.rb +444 -1184
  192. data/spec/models/available_number_list_spec.rb +289 -646
  193. data/spec/models/available_number_spec.rb +271 -650
  194. data/spec/models/barge_in_reason_spec.rb +27 -30
  195. data/spec/models/buy_incoming_number_request_spec.rb +136 -322
  196. data/spec/models/call_control_webhook_spec.rb +203 -503
  197. data/spec/models/call_direction_spec.rb +27 -30
  198. data/spec/models/call_ended_reason_spec.rb +107 -110
  199. data/spec/models/call_list_spec.rb +289 -646
  200. data/spec/models/call_result_spec.rb +699 -1798
  201. data/spec/models/call_status_spec.rb +47 -50
  202. data/spec/models/call_status_webhook_spec.rb +413 -990
  203. data/spec/models/capabilities_spec.rb +202 -411
  204. data/spec/models/completion_request_spec.rb +75 -143
  205. data/spec/models/completion_result_spec.rb +104 -231
  206. data/spec/models/completion_result_status_spec.rb +24 -27
  207. data/spec/models/conference_list_spec.rb +289 -646
  208. data/spec/models/conference_participant_list_spec.rb +289 -646
  209. data/spec/models/conference_participant_result_spec.rb +384 -938
  210. data/spec/models/conference_recording_status_webhook_spec.rb +464 -1197
  211. data/spec/models/conference_result_spec.rb +489 -1263
  212. data/spec/models/conference_status_spec.rb +31 -34
  213. data/spec/models/conference_status_webhook_spec.rb +464 -1197
  214. data/spec/models/create_conference_request_spec.rb +204 -485
  215. data/spec/models/create_conference_spec.rb +289 -561
  216. data/spec/models/create_conference_webhook_spec.rb +464 -1197
  217. data/spec/models/create_web_rtc_token_spec.rb +136 -307
  218. data/spec/models/dequeue_spec.rb +14 -17
  219. data/spec/models/dequeue_webhook_spec.rb +400 -1021
  220. data/spec/models/enqueue_spec.rb +169 -412
  221. data/spec/models/export_list_spec.rb +502 -0
  222. data/spec/models/export_output_type_spec.rb +43 -0
  223. data/spec/models/export_request_output_spec.rb +162 -0
  224. data/spec/models/export_request_spec.rb +320 -0
  225. data/spec/models/export_resource_type_spec.rb +59 -0
  226. data/spec/models/export_result_output_spec.rb +162 -0
  227. data/spec/models/export_result_spec.rb +718 -0
  228. data/spec/models/export_status_spec.rb +123 -0
  229. data/spec/models/filter_logs_request_spec.rb +73 -145
  230. data/spec/models/get_digits_reason_spec.rb +31 -34
  231. data/spec/models/get_digits_spec.rb +326 -737
  232. data/spec/models/get_digits_webhook_spec.rb +435 -1127
  233. data/spec/models/get_speech_reason_spec.rb +39 -42
  234. data/spec/models/get_speech_spec.rb +399 -1036
  235. data/spec/models/get_speech_webhook_spec.rb +608 -1553
  236. data/spec/models/grammar_file_built_in_spec.rb +75 -78
  237. data/spec/models/grammar_type_spec.rb +24 -27
  238. data/spec/models/hangup_spec.rb +73 -145
  239. data/spec/models/if_machine_spec.rb +24 -27
  240. data/spec/models/inbound_call_webhook_spec.rb +371 -951
  241. data/spec/models/incoming_number_list_spec.rb +289 -646
  242. data/spec/models/incoming_number_request_spec.rb +136 -322
  243. data/spec/models/incoming_number_result_spec.rb +573 -1489
  244. data/spec/models/language_spec.rb +120 -123
  245. data/spec/models/leave_conference_webhook_spec.rb +341 -864
  246. data/spec/models/log_level_spec.rb +27 -30
  247. data/spec/models/log_list_spec.rb +289 -646
  248. data/spec/models/log_result_spec.rb +272 -667
  249. data/spec/models/machine_detected_webhook_spec.rb +401 -1036
  250. data/spec/models/machine_type_spec.rb +24 -27
  251. data/spec/models/make_call_request_spec.rb +353 -905
  252. data/spec/models/message_delivery_webhook_spec.rb +357 -942
  253. data/spec/models/message_direction_spec.rb +24 -27
  254. data/spec/models/message_request_spec.rb +324 -818
  255. data/spec/models/message_result_spec.rb +647 -1710
  256. data/spec/models/message_status_spec.rb +60 -63
  257. data/spec/models/message_status_webhook_spec.rb +405 -1045
  258. data/spec/models/messages_list_spec.rb +289 -646
  259. data/spec/models/mutable_resource_model_spec.rb +168 -395
  260. data/spec/models/out_dial_api_connect_webhook_spec.rb +371 -951
  261. data/spec/models/out_dial_connect_webhook_spec.rb +371 -951
  262. data/spec/models/out_dial_spec.rb +354 -903
  263. data/spec/models/out_dial_start_webhook_spec.rb +401 -1038
  264. data/spec/models/pagination_model_spec.rb +259 -577
  265. data/spec/models/park_spec.rb +136 -322
  266. data/spec/models/pause_spec.rb +72 -128
  267. data/spec/models/percl_command_spec.rb +76 -145
  268. data/spec/models/percl_script_spec.rb +73 -127
  269. data/spec/models/play_beep_spec.rb +31 -34
  270. data/spec/models/play_early_media_spec.rb +73 -145
  271. data/spec/models/play_spec.rb +135 -287
  272. data/spec/models/queue_list_spec.rb +289 -646
  273. data/spec/models/queue_member_list_spec.rb +289 -646
  274. data/spec/models/queue_member_spec.rb +199 -467
  275. data/spec/models/queue_request_spec.rb +103 -216
  276. data/spec/models/queue_result_spec.rb +388 -965
  277. data/spec/models/queue_result_status_spec.rb +31 -34
  278. data/spec/models/queue_wait_webhook_spec.rb +429 -1091
  279. data/spec/models/record_utterance_spec.rb +263 -591
  280. data/spec/models/record_utterance_term_reason_spec.rb +31 -34
  281. data/spec/models/record_webhook_spec.rb +605 -1548
  282. data/spec/models/recording_list_spec.rb +289 -646
  283. data/spec/models/recording_result_spec.rb +323 -819
  284. data/spec/models/redirect_spec.rb +73 -145
  285. data/spec/models/redirect_webhook_spec.rb +371 -951
  286. data/spec/models/reject_spec.rb +73 -145
  287. data/spec/models/remove_from_conference_spec.rb +14 -17
  288. data/spec/models/remove_from_queue_notification_webhook_spec.rb +404 -1023
  289. data/spec/models/request_type_spec.rb +107 -110
  290. data/spec/models/say_spec.rb +168 -377
  291. data/spec/models/send_digits_spec.rb +135 -287
  292. data/spec/models/set_dtmf_pass_through_spec.rb +74 -127
  293. data/spec/models/set_listen_spec.rb +74 -127
  294. data/spec/models/set_talk_spec.rb +74 -127
  295. data/spec/models/sms_spec.rb +169 -412
  296. data/spec/models/sms_ten_dlc_brand_alt_business_id_type_spec.rb +31 -34
  297. data/spec/models/sms_ten_dlc_brand_entity_type_spec.rb +35 -38
  298. data/spec/models/sms_ten_dlc_brand_identity_status_spec.rb +31 -34
  299. data/spec/models/sms_ten_dlc_brand_relationship_spec.rb +35 -38
  300. data/spec/models/sms_ten_dlc_brand_spec.rb +1082 -2746
  301. data/spec/models/sms_ten_dlc_brand_stock_exchange_spec.rb +124 -127
  302. data/spec/models/sms_ten_dlc_brands_list_result_spec.rb +289 -646
  303. data/spec/models/sms_ten_dlc_campaign_spec.rb +1139 -2881
  304. data/spec/models/sms_ten_dlc_campaign_status_spec.rb +24 -27
  305. data/spec/models/sms_ten_dlc_campaigns_list_result_spec.rb +289 -646
  306. data/spec/models/sms_ten_dlc_partner_campaign_brand_spec.rb +406 -1004
  307. data/spec/models/sms_ten_dlc_partner_campaign_spec.rb +961 -2393
  308. data/spec/models/sms_ten_dlc_partner_campaign_status_spec.rb +24 -27
  309. data/spec/models/sms_ten_dlc_partner_campaigns_list_result_spec.rb +289 -646
  310. data/spec/models/sms_toll_free_campaign_registration_status_spec.rb +35 -38
  311. data/spec/models/sms_toll_free_campaign_spec.rb +270 -666
  312. data/spec/models/sms_toll_free_campaigns_list_result_spec.rb +289 -646
  313. data/spec/models/start_record_call_spec.rb +14 -17
  314. data/spec/models/terminate_conference_spec.rb +14 -17
  315. data/spec/models/tfn_campaign_spec.rb +330 -858
  316. data/spec/models/tfn_spec.rb +73 -145
  317. data/spec/models/transcribe_reason_spec.rb +35 -38
  318. data/spec/models/transcribe_term_reason_spec.rb +24 -27
  319. data/spec/models/transcribe_utterance_record_spec.rb +134 -270
  320. data/spec/models/transcribe_utterance_spec.rb +236 -523
  321. data/spec/models/transcribe_webhook_spec.rb +749 -1918
  322. data/spec/models/unpark_spec.rb +14 -17
  323. data/spec/models/update_call_request_spec.rb +74 -143
  324. data/spec/models/update_call_request_status_spec.rb +24 -27
  325. data/spec/models/update_conference_participant_request_spec.rb +137 -268
  326. data/spec/models/update_conference_request_spec.rb +140 -321
  327. data/spec/models/update_conference_request_status_spec.rb +24 -27
  328. data/spec/models/webhook_spec.rb +68 -137
  329. data/spec/quickstart_spec.rb +5 -5
  330. data/spec/spec_helper.rb +92 -100
  331. data/spec/utils/request_verifier_spec.rb +70 -71
  332. data/spec/utils/signature_information_spec.rb +23 -23
  333. data/yarn.lock +38 -29
  334. metadata +27 -151
@@ -1,21 +1,21 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
- describe 'RequestVerifier' do
3
+ describe "RequestVerifier" do
4
4
  before do
5
- @request_verifier_object = Freeclimb::RequestVerifier.new()
5
+ @request_verifier_object = Freeclimb::RequestVerifier.new
6
6
  end
7
7
 
8
- describe '#check_request_body' do
9
- context 'Request Body is empty' do
8
+ describe "#check_request_body" do
9
+ context "Request Body is empty" do
10
10
  it 'throws "Request Body cannot be empty or null"' do
11
- request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
12
- signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
13
- tolerance = 5 * 60
14
- request_body = ""
15
- expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Request Body cannot be empty or null")
16
- end
11
+ request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
12
+ signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
13
+ tolerance = 5 * 60
14
+ request_body = ""
15
+ expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Request Body cannot be empty or null")
16
+ end
17
17
  end
18
- context 'Request Body is nil' do
18
+ context "Request Body is nil" do
19
19
  it 'throws "Request Body cannot be empty or null"' do
20
20
  request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
21
21
  signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
@@ -26,17 +26,17 @@ describe 'RequestVerifier' do
26
26
  end
27
27
  end
28
28
 
29
- describe '#check_request_header' do
30
- context 'signatures are not present' do
29
+ describe "#check_request_header" do
30
+ context "signatures are not present" do
31
31
  it 'throws "Error with request header, signatures are not present"' do
32
- request_header = "t=1679944186,"
33
- signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
34
- tolerance = 5 * 60
35
- request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
36
- expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Error with request header, signatures are not present")
37
- end
32
+ request_header = "t=1679944186,"
33
+ signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
34
+ tolerance = 5 * 60
35
+ request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
36
+ expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Error with request header, signatures are not present")
37
+ end
38
38
  end
39
- context 'timestamp is not present' do
39
+ context "timestamp is not present" do
40
40
  it 'throws "Error with request header, timestamp is not present"' do
41
41
  request_header = "v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
42
42
  signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
@@ -45,7 +45,7 @@ describe 'RequestVerifier' do
45
45
  expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Error with request header, timestamp is not present")
46
46
  end
47
47
  end
48
- context 'Request header is empty' do
48
+ context "Request header is empty" do
49
49
  it 'throws "Error with request header, Request header is empty"' do
50
50
  request_header = ""
51
51
  signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
@@ -56,17 +56,17 @@ describe 'RequestVerifier' do
56
56
  end
57
57
  end
58
58
 
59
- describe '#check_signing_secret' do
60
- context 'Signing secret is empty' do
59
+ describe "#check_signing_secret" do
60
+ context "Signing secret is empty" do
61
61
  it 'throws "Signing secret cannot be empty or null"' do
62
- request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
63
- signing_secret = ""
64
- tolerance = 5 * 60
65
- request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
66
- expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Signing secret cannot be empty or null")
67
- end
62
+ request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
63
+ signing_secret = ""
64
+ tolerance = 5 * 60
65
+ request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
66
+ expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Signing secret cannot be empty or null")
67
+ end
68
68
  end
69
- context 'Signing secret is nil' do
69
+ context "Signing secret is nil" do
70
70
  it 'throws "Signing secret cannot be empty or null"' do
71
71
  request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
72
72
  signing_secret = nil
@@ -77,17 +77,17 @@ describe 'RequestVerifier' do
77
77
  end
78
78
  end
79
79
 
80
- describe '#check_tolerance' do
81
- context 'Tolerance value is a negative value' do
80
+ describe "#check_tolerance" do
81
+ context "Tolerance value is a negative value" do
82
82
  it 'throws "Tolerance value must be a positive integer"' do
83
- request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
84
- signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
85
- tolerance = -5
86
- request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
87
- expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Tolerance value must be a positive integer")
88
- end
83
+ request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
84
+ signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
85
+ tolerance = -5
86
+ request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
87
+ expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Tolerance value must be a positive integer")
88
+ end
89
89
  end
90
- context 'Tolerance value is 0' do
90
+ context "Tolerance value is 0" do
91
91
  it 'throws "Tolerance value must be a positive integer"' do
92
92
  request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
93
93
  signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
@@ -96,7 +96,7 @@ describe 'RequestVerifier' do
96
96
  expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("Tolerance value must be a positive integer")
97
97
  end
98
98
  end
99
- context 'Tolerance value is NaN' do
99
+ context "Tolerance value is NaN" do
100
100
  it 'throws "Tolerance value must be a positive integer"' do
101
101
  request_header = "t=1679944186,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
102
102
  signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
@@ -107,43 +107,42 @@ describe 'RequestVerifier' do
107
107
  end
108
108
  end
109
109
 
110
- describe '#verify_tolerance' do
111
- context 'Request plus tolerance is not less than the current datetime' do
110
+ describe "#verify_tolerance" do
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
- currentTime = DateTime.now.strftime('%s').to_i
114
- timeCalculation = currentTime - (6 * 60)
115
- request_header = "t=#{timeCalculation},v1=1d798c86e977ff734dec3a8b8d67fe8621dcc1df46ef4212e0bfe2e122b01bfd,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
116
- signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
117
- tolerance = (5 * 60)
118
- request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
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)
120
- end
113
+ currentTime = DateTime.now.strftime("%s").to_i
114
+ timeCalculation = currentTime - (6 * 60)
115
+ request_header = "t=#{timeCalculation},v1=1d798c86e977ff734dec3a8b8d67fe8621dcc1df46ef4212e0bfe2e122b01bfd,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
116
+ signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
117
+ tolerance = (5 * 60)
118
+ request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
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)
120
+ end
121
121
  end
122
122
  end
123
123
 
124
- describe '#verify_signature' do
125
- context 'Signature request is unverified, signing secret does not exist in signatures, potential typo' do
124
+ describe "#verify_signature" do
125
+ context "Signature request is unverified, signing secret does not exist in signatures, potential typo" do
126
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
127
- currentTime = DateTime.now.strftime('%s').to_i
128
- request_header = "t=#{currentTime},v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
129
- signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7794"
130
- tolerance = (5 * 60)
131
- request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
132
- expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("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")
133
- end
127
+ currentTime = DateTime.now.strftime("%s").to_i
128
+ request_header = "t=#{currentTime},v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
129
+ signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7794"
130
+ tolerance = (5 * 60)
131
+ request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
132
+ expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.to raise_error("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")
133
+ end
134
134
  end
135
135
  end
136
136
 
137
- describe '#verify_request_signature' do
138
- context 'Request is valid' do
139
- it 'No errors are thrown' do
140
- request_header = "t=2130000000,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=6835006e70c9b9f610e8fb3a8b36b52b3f28c12d0a2dab75091c46ca7ec11b20"
141
- signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
142
- tolerance = (5 * 60)
143
- request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
144
- expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.not_to raise_error
145
- end
137
+ describe "#verify_request_signature" do
138
+ context "Request is valid" do
139
+ it "No errors are thrown" do
140
+ request_header = "t=2130000000,v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=6835006e70c9b9f610e8fb3a8b36b52b3f28c12d0a2dab75091c46ca7ec11b20"
141
+ signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
142
+ tolerance = (5 * 60)
143
+ request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
144
+ expect { Freeclimb::RequestVerifier.verify_request_signature(request_body, request_header, signing_secret, tolerance) }.not_to raise_error
145
+ end
146
146
  end
147
147
  end
148
-
149
- end
148
+ end
@@ -1,24 +1,24 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
  $time_stamp = 1679944186
3
3
  $FIXNUM_MAX = (2**(0.size * 8 - 2) - 1)
4
- describe 'SignatureInformation' do
4
+ describe "SignatureInformation" do
5
5
  before do
6
6
  @request_header = "t=#{$time_stamp},v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
7
7
  @signature_information_object = Freeclimb::SignatureInformation.new(@request_header)
8
8
  end
9
- describe '#is_request_time_valid' do
10
- context 'request time is within tolerance threshold' do
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)
15
- tolerance = 5 * 60
16
- expect(@signature_information_object.is_request_time_valid(tolerance)).to be true
17
- end
9
+ describe "#is_request_time_valid" do
10
+ context "request time is within tolerance threshold" do
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)
15
+ tolerance = 5 * 60
16
+ expect(@signature_information_object.is_request_time_valid(tolerance)).to be true
17
+ end
18
18
  end
19
- context 'request time is not within tolerance threshold' do
20
- it 'returns false since it does not match condition of request time being within tolerance threshold' do
21
- @time_calculation = DateTime.now.strftime('%s').to_i - (600 * 60)
19
+ context "request time is not within tolerance threshold" do
20
+ it "returns false since it does not match condition of request time being within tolerance threshold" do
21
+ @time_calculation = DateTime.now.strftime("%s").to_i - (600 * 60)
22
22
  @request_header = "t=#{@time_calculation},v1=c3957749baf61df4b1506802579cc69a74c77a1ae21447b930e5a704f9ec4120,v1=1ba18712726898fbbe48cd862dd096a709f7ad761a5bab14bda9ac24d963a6a8"
23
23
  @signature_information_object = Freeclimb::SignatureInformation.new(@request_header)
24
24
  tolerance = 500 * 60
@@ -26,16 +26,16 @@ describe 'SignatureInformation' do
26
26
  end
27
27
  end
28
28
  end
29
- describe '#is_signature_safe' do
30
- context 'signingSecret exists in signature array' do
31
- it 'returns true' do
32
- request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
33
- signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
34
- expect(@signature_information_object.is_signature_safe(request_body, signing_secret)).to be true
35
- end
29
+ describe "#is_signature_safe" do
30
+ context "signingSecret exists in signature array" do
31
+ it "returns true" do
32
+ request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
33
+ signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7793"
34
+ expect(@signature_information_object.is_signature_safe(request_body, signing_secret)).to be true
35
+ end
36
36
  end
37
- context 'signingSecret does not exists in signature array' do
38
- it 'returns false since it does not match condition of signingSecret being within signature array' do
37
+ context "signingSecret does not exists in signature array" do
38
+ it "returns false since it does not match condition of signingSecret being within signature array" do
39
39
  request_body = "{\"accountId\":\"AC1334ffb694cd8d969f51cddf5f7c9b478546d50c\",\"callId\":\"CAccb0b00506553cda09b51c5477f672a49e0b2213\",\"callStatus\":\"ringing\",\"conferenceId\":null,\"direction\":\"inbound\",\"from\":\"+13121000109\",\"parentCallId\":null,\"queueId\":null,\"requestType\":\"inboundCall\",\"to\":\"+13121000096\"}"
40
40
  signing_secret = "sigsec_ead6d3b6904196c60835d039e91b3341c77a7794"
41
41
  expect(@signature_information_object.is_signature_safe(request_body, signing_secret)).to be false
data/yarn.lock CHANGED
@@ -145,9 +145,9 @@
145
145
  tslib "^2.3.1"
146
146
 
147
147
  "@stoplight/prism-http-server@^5.6.0":
148
- version "5.12.0"
149
- resolved "https://registry.yarnpkg.com/@stoplight/prism-http-server/-/prism-http-server-5.12.0.tgz#c1fdc86bcb7d42d3420b9b84f05f9ae8977bc953"
150
- integrity sha512-rnACUB950kvgDGXk1MsVk1v8nAZNCRaxdrTlACoJpQA0qzF8eBszYikoDsVmx2BbGsOrCC/49+nQc+HyFFpMdQ==
148
+ version "5.12.2"
149
+ resolved "https://registry.yarnpkg.com/@stoplight/prism-http-server/-/prism-http-server-5.12.2.tgz#d8de94f6b3506b464a5c89ff049b1e0fc9822ef9"
150
+ integrity sha512-h7MpOuv/WPvf4MhQmXw3CygAZp64Ts0SOM4BdoafcgAOJZyvRAOjUNJeelGJsHYdPK0aB9NZsqsaKBtNfkYj+A==
151
151
  dependencies:
152
152
  "@stoplight/prism-core" "^5.8.0"
153
153
  "@stoplight/prism-http" "^5.12.0"
@@ -252,11 +252,11 @@
252
252
  integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
253
253
 
254
254
  "@types/node@*":
255
- version "22.10.5"
256
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.5.tgz#95af89a3fb74a2bb41ef9927f206e6472026e48b"
257
- integrity sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==
255
+ version "24.5.2"
256
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-24.5.2.tgz#52ceb83f50fe0fcfdfbd2a9fab6db2e9e7ef6446"
257
+ integrity sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==
258
258
  dependencies:
259
- undici-types "~6.20.0"
259
+ undici-types "~7.12.0"
260
260
 
261
261
  "@types/swagger-schema-official@~2.0.22":
262
262
  version "2.0.25"
@@ -264,9 +264,9 @@
264
264
  integrity sha512-T92Xav+Gf/Ik1uPW581nA+JftmjWPgskw/WBf4TJzxRG/SJ+DfNnNE+WuZ4mrXuzflQMqMkm1LSYjzYW7MB1Cg==
265
265
 
266
266
  "@types/type-is@^1.6.3":
267
- version "1.6.6"
268
- resolved "https://registry.yarnpkg.com/@types/type-is/-/type-is-1.6.6.tgz#0adeafa0d6879f0ce17c81228d487270e8b80d7d"
269
- integrity sha512-fs1KHv/f9OvmTMsu4sBNaUu32oyda9Y9uK25naJG8gayxNrfqGIjPQsbLIYyfe7xFkppnPlJB+BuTldOaX9bXw==
267
+ version "1.6.7"
268
+ resolved "https://registry.yarnpkg.com/@types/type-is/-/type-is-1.6.7.tgz#4d7934d2c795749800e767cd9af7ffbd4f16cf1c"
269
+ integrity sha512-gEsh7n8824nusZ2Sidh6POxNsIdTSvIAl5gXbeFj+TUaD1CO2r4i7MQYNMfEQkChU42s2bVWAda6x6BzIhtFbQ==
270
270
  dependencies:
271
271
  "@types/node" "*"
272
272
 
@@ -475,9 +475,9 @@ cross-fetch@^3.1.5:
475
475
  node-fetch "^2.7.0"
476
476
 
477
477
  debug@4:
478
- version "4.4.0"
479
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
480
- integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
478
+ version "4.4.3"
479
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
480
+ integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
481
481
  dependencies:
482
482
  ms "^2.1.3"
483
483
 
@@ -487,9 +487,9 @@ emoji-regex@^8.0.0:
487
487
  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
488
488
 
489
489
  error-ex@^1.3.1:
490
- version "1.3.2"
491
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
492
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
490
+ version "1.3.4"
491
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414"
492
+ integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==
493
493
  dependencies:
494
494
  is-arrayish "^0.2.1"
495
495
 
@@ -524,9 +524,9 @@ fast-safe-stringify@^2.0.8:
524
524
  integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
525
525
 
526
526
  fast-uri@^3.0.1:
527
- version "3.0.5"
528
- resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.5.tgz#19f5f9691d0dab9b85861a7bb5d98fca961da9cd"
529
- integrity sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==
527
+ version "3.1.0"
528
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa"
529
+ integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==
530
530
 
531
531
  fast-xml-parser@^4.2.0, fast-xml-parser@^4.5.0:
532
532
  version "4.5.1"
@@ -587,9 +587,9 @@ format-util@^1.0.3:
587
587
  integrity sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==
588
588
 
589
589
  fp-ts@^2.11.5:
590
- version "2.16.9"
591
- resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.16.9.tgz#99628fc5e0bb3b432c4a16d8f4455247380bae8a"
592
- integrity sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ==
590
+ version "2.16.11"
591
+ resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.16.11.tgz#831a10514bf4e22adf12065732fc5a20c85d9623"
592
+ integrity sha512-LaI+KaX2NFkfn1ZGHoKCmcfv7yrZsC3b8NtWsTVQeHkq4F27vI5igUuO53sxqDEa2gNQMHFPmpojDw/1zmUK7w==
593
593
 
594
594
  fsevents@~2.3.2:
595
595
  version "2.3.3"
@@ -792,6 +792,15 @@ jsonpath-plus@^10.0.0, jsonpath-plus@^10.1.0, jsonpath-plus@^7.2.0:
792
792
  "@jsep-plugin/regex" "^1.0.4"
793
793
  jsep "^1.4.0"
794
794
 
795
+ jsonpath-plus@^10.3.0:
796
+ version "10.3.0"
797
+ resolved "https://registry.yarnpkg.com/jsonpath-plus/-/jsonpath-plus-10.3.0.tgz#59e22e4fa2298c68dfcd70659bb47f0cad525238"
798
+ integrity sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==
799
+ dependencies:
800
+ "@jsep-plugin/assignment" "^1.3.0"
801
+ "@jsep-plugin/regex" "^1.0.4"
802
+ jsep "^1.4.0"
803
+
795
804
  liquid-json@0.3.1:
796
805
  version "0.3.1"
797
806
  resolved "https://registry.yarnpkg.com/liquid-json/-/liquid-json-0.3.1.tgz#9155a18136d8a6b2615e5f16f9a2448ab6b50eea"
@@ -1147,9 +1156,9 @@ strip-bom@^3.0.0:
1147
1156
  integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
1148
1157
 
1149
1158
  strnum@^1.0.5:
1150
- version "1.0.5"
1151
- resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
1152
- integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
1159
+ version "1.1.2"
1160
+ resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.1.2.tgz#57bca4fbaa6f271081715dbc9ed7cee5493e28e4"
1161
+ integrity sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==
1153
1162
 
1154
1163
  supports-color@^5.3.0:
1155
1164
  version "5.5.0"
@@ -1190,10 +1199,10 @@ type-is@^1.6.18:
1190
1199
  media-typer "0.3.0"
1191
1200
  mime-types "~2.1.24"
1192
1201
 
1193
- undici-types@~6.20.0:
1194
- version "6.20.0"
1195
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.20.0.tgz#8171bf22c1f588d1554d55bf204bc624af388433"
1196
- integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==
1202
+ undici-types@~7.12.0:
1203
+ version "7.12.0"
1204
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.12.0.tgz#15c5c7475c2a3ba30659529f5cdb4674b622fafb"
1205
+ integrity sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==
1197
1206
 
1198
1207
  uri-template-lite@^22.9.0:
1199
1208
  version "22.9.0"
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: 5.1.0
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-11 00:00:00.000000000 Z
11
+ date: 2025-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -111,6 +111,14 @@ files:
111
111
  - docs/Dequeue.md
112
112
  - docs/DequeueWebhook.md
113
113
  - docs/Enqueue.md
114
+ - docs/ExportList.md
115
+ - docs/ExportOutputType.md
116
+ - docs/ExportRequest.md
117
+ - docs/ExportRequestOutput.md
118
+ - docs/ExportResourceType.md
119
+ - docs/ExportResult.md
120
+ - docs/ExportResultOutput.md
121
+ - docs/ExportStatus.md
114
122
  - docs/FilterLogsRequest.md
115
123
  - docs/GetDigits.md
116
124
  - docs/GetDigitsReason.md
@@ -257,6 +265,14 @@ files:
257
265
  - lib/freeclimb/models/dequeue.rb
258
266
  - lib/freeclimb/models/dequeue_webhook.rb
259
267
  - lib/freeclimb/models/enqueue.rb
268
+ - lib/freeclimb/models/export_list.rb
269
+ - lib/freeclimb/models/export_output_type.rb
270
+ - lib/freeclimb/models/export_request.rb
271
+ - lib/freeclimb/models/export_request_output.rb
272
+ - lib/freeclimb/models/export_resource_type.rb
273
+ - lib/freeclimb/models/export_result.rb
274
+ - lib/freeclimb/models/export_result_output.rb
275
+ - lib/freeclimb/models/export_status.rb
260
276
  - lib/freeclimb/models/filter_logs_request.rb
261
277
  - lib/freeclimb/models/get_digits.rb
262
278
  - lib/freeclimb/models/get_digits_reason.rb
@@ -406,6 +422,14 @@ files:
406
422
  - spec/models/dequeue_spec.rb
407
423
  - spec/models/dequeue_webhook_spec.rb
408
424
  - spec/models/enqueue_spec.rb
425
+ - spec/models/export_list_spec.rb
426
+ - spec/models/export_output_type_spec.rb
427
+ - spec/models/export_request_output_spec.rb
428
+ - spec/models/export_request_spec.rb
429
+ - spec/models/export_resource_type_spec.rb
430
+ - spec/models/export_result_output_spec.rb
431
+ - spec/models/export_result_spec.rb
432
+ - spec/models/export_status_spec.rb
409
433
  - spec/models/filter_logs_request_spec.rb
410
434
  - spec/models/get_digits_reason_spec.rb
411
435
  - spec/models/get_digits_spec.rb
@@ -534,152 +558,4 @@ rubygems_version: 3.3.3
534
558
  signing_key:
535
559
  specification_version: 4
536
560
  summary: FreeClimb API Ruby Gem
537
- test_files:
538
- - spec/api/default_api_spec.rb
539
- - spec/api_client_spec.rb
540
- - spec/configuration_spec.rb
541
- - spec/factories.rb
542
- - spec/models/redirect_spec.rb
543
- - spec/models/sms_ten_dlc_campaign_status_spec.rb
544
- - spec/models/out_dial_api_connect_webhook_spec.rb
545
- - spec/models/call_status_spec.rb
546
- - spec/models/if_machine_spec.rb
547
- - spec/models/queue_list_spec.rb
548
- - spec/models/completion_request_spec.rb
549
- - spec/models/account_result_spec.rb
550
- - spec/models/queue_member_spec.rb
551
- - spec/models/out_dial_connect_webhook_spec.rb
552
- - spec/models/transcribe_utterance_spec.rb
553
- - spec/models/redirect_webhook_spec.rb
554
- - spec/models/percl_command_spec.rb
555
- - spec/models/out_dial_start_webhook_spec.rb
556
- - spec/models/play_beep_spec.rb
557
- - spec/models/available_number_spec.rb
558
- - spec/models/incoming_number_result_spec.rb
559
- - spec/models/park_spec.rb
560
- - spec/models/call_direction_spec.rb
561
- - spec/models/sms_ten_dlc_partner_campaign_brand_spec.rb
562
- - spec/models/set_dtmf_pass_through_spec.rb
563
- - spec/models/set_listen_spec.rb
564
- - spec/models/message_direction_spec.rb
565
- - spec/models/completion_result_status_spec.rb
566
- - spec/models/call_control_webhook_spec.rb
567
- - spec/models/create_web_rtc_token_spec.rb
568
- - spec/models/transcribe_utterance_record_spec.rb
569
- - spec/models/transcribe_webhook_spec.rb
570
- - spec/models/message_status_webhook_spec.rb
571
- - spec/models/remove_from_conference_spec.rb
572
- - spec/models/conference_list_spec.rb
573
- - spec/models/play_spec.rb
574
- - spec/models/percl_script_spec.rb
575
- - spec/models/sms_ten_dlc_brand_identity_status_spec.rb
576
- - spec/models/queue_request_spec.rb
577
- - spec/models/sms_ten_dlc_brand_stock_exchange_spec.rb
578
- - spec/models/machine_detected_webhook_spec.rb
579
- - spec/models/conference_status_webhook_spec.rb
580
- - spec/models/queue_result_spec.rb
581
- - spec/models/message_status_spec.rb
582
- - spec/models/application_request_spec.rb
583
- - spec/models/play_early_media_spec.rb
584
- - spec/models/add_to_conference_spec.rb
585
- - spec/models/conference_participant_list_spec.rb
586
- - spec/models/message_result_spec.rb
587
- - spec/models/tfn_campaign_spec.rb
588
- - spec/models/get_speech_spec.rb
589
- - spec/models/record_utterance_term_reason_spec.rb
590
- - spec/models/log_list_spec.rb
591
- - spec/models/incoming_number_list_spec.rb
592
- - spec/models/call_ended_reason_spec.rb
593
- - spec/models/webhook_spec.rb
594
- - spec/models/create_conference_spec.rb
595
- - spec/models/available_number_list_spec.rb
596
- - spec/models/pause_spec.rb
597
- - spec/models/account_request_spec.rb
598
- - spec/models/answered_by_spec.rb
599
- - spec/models/call_result_spec.rb
600
- - spec/models/message_request_spec.rb
601
- - spec/models/queue_result_status_spec.rb
602
- - spec/models/get_speech_webhook_spec.rb
603
- - spec/models/sms_ten_dlc_brands_list_result_spec.rb
604
- - spec/models/sms_spec.rb
605
- - spec/models/filter_logs_request_spec.rb
606
- - spec/models/inbound_call_webhook_spec.rb
607
- - spec/models/get_digits_reason_spec.rb
608
- - spec/models/application_result_spec.rb
609
- - spec/models/update_call_request_spec.rb
610
- - spec/models/grammar_type_spec.rb
611
- - spec/models/dequeue_spec.rb
612
- - spec/models/create_conference_webhook_spec.rb
613
- - spec/models/update_call_request_status_spec.rb
614
- - spec/models/conference_status_spec.rb
615
- - spec/models/language_spec.rb
616
- - spec/models/add_to_conference_notification_webhook_spec.rb
617
- - spec/models/application_list_spec.rb
618
- - spec/models/recording_result_spec.rb
619
- - spec/models/conference_result_spec.rb
620
- - spec/models/sms_toll_free_campaign_spec.rb
621
- - spec/models/transcribe_reason_spec.rb
622
- - spec/models/queue_member_list_spec.rb
623
- - spec/models/hangup_spec.rb
624
- - spec/models/sms_ten_dlc_brand_entity_type_spec.rb
625
- - spec/models/recording_list_spec.rb
626
- - spec/models/sms_ten_dlc_campaign_spec.rb
627
- - spec/models/incoming_number_request_spec.rb
628
- - spec/models/pagination_model_spec.rb
629
- - spec/models/sms_ten_dlc_brand_spec.rb
630
- - spec/models/sms_ten_dlc_campaigns_list_result_spec.rb
631
- - spec/models/update_conference_participant_request_spec.rb
632
- - spec/models/buy_incoming_number_request_spec.rb
633
- - spec/models/messages_list_spec.rb
634
- - spec/models/create_conference_request_spec.rb
635
- - spec/models/sms_toll_free_campaign_registration_status_spec.rb
636
- - spec/models/out_dial_spec.rb
637
- - spec/models/log_result_spec.rb
638
- - spec/models/say_spec.rb
639
- - spec/models/record_utterance_spec.rb
640
- - spec/models/update_conference_request_status_spec.rb
641
- - spec/models/terminate_conference_spec.rb
642
- - spec/models/sms_ten_dlc_partner_campaign_status_spec.rb
643
- - spec/models/account_status_spec.rb
644
- - spec/models/remove_from_queue_notification_webhook_spec.rb
645
- - spec/models/sms_ten_dlc_partner_campaign_spec.rb
646
- - spec/models/get_speech_reason_spec.rb
647
- - spec/models/sms_toll_free_campaigns_list_result_spec.rb
648
- - spec/models/set_talk_spec.rb
649
- - spec/models/unpark_spec.rb
650
- - spec/models/call_status_webhook_spec.rb
651
- - spec/models/log_level_spec.rb
652
- - spec/models/leave_conference_webhook_spec.rb
653
- - spec/models/sms_ten_dlc_brand_alt_business_id_type_spec.rb
654
- - spec/models/machine_type_spec.rb
655
- - spec/models/get_digits_webhook_spec.rb
656
- - spec/models/barge_in_reason_spec.rb
657
- - spec/models/mutable_resource_model_spec.rb
658
- - spec/models/message_delivery_webhook_spec.rb
659
- - spec/models/start_record_call_spec.rb
660
- - spec/models/update_conference_request_spec.rb
661
- - spec/models/sms_ten_dlc_partner_campaigns_list_result_spec.rb
662
- - spec/models/queue_wait_webhook_spec.rb
663
- - spec/models/get_digits_spec.rb
664
- - spec/models/enqueue_spec.rb
665
- - spec/models/send_digits_spec.rb
666
- - spec/models/sms_ten_dlc_brand_relationship_spec.rb
667
- - spec/models/dequeue_webhook_spec.rb
668
- - spec/models/grammar_file_built_in_spec.rb
669
- - spec/models/add_to_queue_notification_webhook_spec.rb
670
- - spec/models/capabilities_spec.rb
671
- - spec/models/conference_recording_status_webhook_spec.rb
672
- - spec/models/completion_result_spec.rb
673
- - spec/models/transcribe_term_reason_spec.rb
674
- - spec/models/tfn_spec.rb
675
- - spec/models/make_call_request_spec.rb
676
- - spec/models/conference_participant_result_spec.rb
677
- - spec/models/account_type_spec.rb
678
- - spec/models/record_webhook_spec.rb
679
- - spec/models/call_list_spec.rb
680
- - spec/models/reject_spec.rb
681
- - spec/models/request_type_spec.rb
682
- - spec/quickstart_spec.rb
683
- - spec/spec_helper.rb
684
- - spec/utils/request_verifier_spec.rb
685
- - spec/utils/signature_information_spec.rb
561
+ test_files: []