onfido 2.9.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (378) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -4
  3. data/Gemfile +5 -4
  4. data/LICENSE +5 -7
  5. data/README.md +69 -51
  6. data/Rakefile +10 -0
  7. data/lib/onfido/api/default_api.rb +4233 -0
  8. data/lib/onfido/api_client.rb +431 -0
  9. data/lib/onfido/api_error.rb +58 -0
  10. data/lib/onfido/configuration.rb +420 -0
  11. data/lib/onfido/models/address.rb +422 -0
  12. data/lib/onfido/models/address_builder.rb +422 -0
  13. data/lib/onfido/models/address_shared.rb +415 -0
  14. data/lib/onfido/models/addresses_list.rb +216 -0
  15. data/lib/onfido/models/applicant.rb +390 -0
  16. data/lib/onfido/models/applicant_builder.rb +358 -0
  17. data/lib/onfido/models/applicant_create.rb +281 -0
  18. data/lib/onfido/models/applicant_request.rb +232 -0
  19. data/lib/onfido/models/applicant_response.rb +341 -0
  20. data/lib/onfido/models/applicant_shared.rb +246 -0
  21. data/lib/onfido/models/applicant_update.rb +267 -0
  22. data/lib/onfido/models/applicant_updater.rb +344 -0
  23. data/lib/onfido/models/applicants_list.rb +223 -0
  24. data/lib/onfido/models/check.rb +419 -0
  25. data/lib/onfido/models/check_builder.rb +360 -0
  26. data/lib/onfido/models/check_request.rb +301 -0
  27. data/lib/onfido/models/check_response.rb +350 -0
  28. data/lib/onfido/models/check_shared.rb +266 -0
  29. data/lib/onfido/models/checks_list.rb +223 -0
  30. data/lib/onfido/models/complete_task_builder.rb +221 -0
  31. data/lib/onfido/models/complete_task_data_builder.rb +106 -0
  32. data/lib/onfido/models/consent_item.rb +272 -0
  33. data/lib/onfido/models/consents_builder.rb +205 -0
  34. data/lib/onfido/models/country_codes.rb +289 -0
  35. data/lib/onfido/models/device_intelligence_breakdown.rb +223 -0
  36. data/lib/onfido/models/device_intelligence_breakdown_breakdown.rb +214 -0
  37. data/lib/onfido/models/device_intelligence_breakdown_breakdown_device.rb +215 -0
  38. data/lib/onfido/models/device_intelligence_breakdown_breakdown_device_breakdown.rb +232 -0
  39. data/lib/onfido/models/device_intelligence_breakdown_properties.rb +232 -0
  40. data/lib/onfido/models/device_intelligence_breakdown_properties_device.rb +468 -0
  41. data/lib/onfido/models/device_intelligence_breakdown_properties_geolocation.rb +257 -0
  42. data/lib/onfido/models/device_intelligence_breakdown_properties_ip.rb +245 -0
  43. data/lib/onfido/models/device_intelligence_report.rb +345 -0
  44. data/lib/onfido/models/document.rb +376 -0
  45. data/lib/onfido/models/document_breakdown.rb +286 -0
  46. data/lib/onfido/models/document_breakdown_age_validation.rb +224 -0
  47. data/lib/onfido/models/document_breakdown_age_validation_breakdown.rb +214 -0
  48. data/lib/onfido/models/document_breakdown_compromised_document.rb +224 -0
  49. data/lib/onfido/models/document_breakdown_compromised_document_breakdown.rb +223 -0
  50. data/lib/onfido/models/document_breakdown_data_comparison.rb +224 -0
  51. data/lib/onfido/models/document_breakdown_data_comparison_breakdown.rb +277 -0
  52. data/lib/onfido/models/document_breakdown_data_comparison_breakdown_issuing_country.rb +223 -0
  53. data/lib/onfido/models/document_breakdown_data_consistency.rb +224 -0
  54. data/lib/onfido/models/document_breakdown_data_consistency_breakdown.rb +295 -0
  55. data/lib/onfido/models/document_breakdown_data_validation.rb +224 -0
  56. data/lib/onfido/models/document_breakdown_data_validation_breakdown.rb +268 -0
  57. data/lib/onfido/models/document_breakdown_data_validation_breakdown_document_expiration.rb +224 -0
  58. data/lib/onfido/models/document_breakdown_data_validation_breakdown_expiry_date.rb +224 -0
  59. data/lib/onfido/models/document_breakdown_image_integrity.rb +224 -0
  60. data/lib/onfido/models/document_breakdown_image_integrity_breakdown.rb +241 -0
  61. data/lib/onfido/models/document_breakdown_image_integrity_breakdown_colour_picture.rb +224 -0
  62. data/lib/onfido/models/document_breakdown_image_integrity_breakdown_conclusive_document_quality.rb +224 -0
  63. data/lib/onfido/models/document_breakdown_image_integrity_breakdown_image_quality.rb +224 -0
  64. data/lib/onfido/models/document_breakdown_image_integrity_breakdown_supported_document.rb +224 -0
  65. data/lib/onfido/models/document_breakdown_issuing_authority.rb +224 -0
  66. data/lib/onfido/models/document_breakdown_issuing_authority_breakdown.rb +223 -0
  67. data/lib/onfido/models/document_breakdown_issuing_authority_breakdown_nfc_active_authentication.rb +224 -0
  68. data/lib/onfido/models/document_breakdown_issuing_authority_breakdown_nfc_passive_authentication.rb +224 -0
  69. data/lib/onfido/models/document_breakdown_police_record.rb +215 -0
  70. data/lib/onfido/models/document_breakdown_visual_authenticity.rb +224 -0
  71. data/lib/onfido/models/document_breakdown_visual_authenticity_breakdown.rb +277 -0
  72. data/lib/onfido/models/document_breakdown_visual_authenticity_breakdown_digital_tampering.rb +224 -0
  73. data/lib/onfido/models/document_breakdown_visual_authenticity_breakdown_face_detection.rb +224 -0
  74. data/lib/onfido/models/document_breakdown_visual_authenticity_breakdown_fonts.rb +224 -0
  75. data/lib/onfido/models/document_breakdown_visual_authenticity_breakdown_original_document_present.rb +224 -0
  76. data/lib/onfido/models/document_breakdown_visual_authenticity_breakdown_other.rb +224 -0
  77. data/lib/onfido/models/document_breakdown_visual_authenticity_breakdown_picture_face_integrity.rb +224 -0
  78. data/lib/onfido/models/document_breakdown_visual_authenticity_breakdown_security_features.rb +224 -0
  79. data/lib/onfido/models/document_breakdown_visual_authenticity_breakdown_template.rb +224 -0
  80. data/lib/onfido/models/document_cdq_reasons.rb +285 -0
  81. data/lib/onfido/models/document_iq_reasons.rb +305 -0
  82. data/lib/onfido/models/document_odp_reasons.rb +245 -0
  83. data/lib/onfido/models/document_properties.rb +461 -0
  84. data/lib/onfido/models/document_properties_address_lines.rb +259 -0
  85. data/lib/onfido/models/document_properties_barcode_inner.rb +367 -0
  86. data/lib/onfido/models/document_properties_document_classification.rb +232 -0
  87. data/lib/onfido/models/document_properties_document_numbers_inner.rb +223 -0
  88. data/lib/onfido/models/document_properties_driving_licence_information.rb +241 -0
  89. data/lib/onfido/models/document_properties_extracted_data.rb +394 -0
  90. data/lib/onfido/models/document_properties_nfc.rb +322 -0
  91. data/lib/onfido/models/document_report.rb +354 -0
  92. data/lib/onfido/models/document_response.rb +272 -0
  93. data/lib/onfido/models/document_shared.rb +301 -0
  94. data/lib/onfido/models/document_types.rb +64 -0
  95. data/lib/onfido/models/document_video_report.rb +354 -0
  96. data/lib/onfido/models/document_video_with_address_information_report.rb +354 -0
  97. data/lib/onfido/models/document_with_address_information_report.rb +354 -0
  98. data/lib/onfido/models/document_with_driver_verification_report.rb +354 -0
  99. data/lib/onfido/models/document_with_driver_verification_report_all_of_properties.rb +529 -0
  100. data/lib/onfido/models/document_with_driver_verification_report_all_of_properties_all_of_passenger_vehicle.rb +236 -0
  101. data/lib/onfido/models/document_with_driver_verification_report_all_of_properties_all_of_vehicle_class_details_inner.rb +245 -0
  102. data/lib/onfido/models/document_with_driving_licence_information_report.rb +354 -0
  103. data/lib/onfido/models/documents_list.rb +223 -0
  104. data/lib/onfido/models/error.rb +214 -0
  105. data/lib/onfido/models/error1.rb +224 -0
  106. data/lib/onfido/models/error_properties.rb +234 -0
  107. data/lib/onfido/models/error_properties1.rb +223 -0
  108. data/lib/onfido/models/extract_request.rb +222 -0
  109. data/lib/onfido/models/extraction.rb +233 -0
  110. data/lib/onfido/models/extraction_document_classification.rb +289 -0
  111. data/lib/onfido/models/extraction_extracted_data.rb +530 -0
  112. data/lib/onfido/models/facial_similarity_motion_breakdown.rb +232 -0
  113. data/lib/onfido/models/facial_similarity_motion_breakdown_face_comparison.rb +224 -0
  114. data/lib/onfido/models/facial_similarity_motion_breakdown_image_integrity.rb +224 -0
  115. data/lib/onfido/models/facial_similarity_motion_breakdown_image_integrity_breakdown.rb +223 -0
  116. data/lib/onfido/models/facial_similarity_motion_breakdown_image_integrity_breakdown_face_detected.rb +224 -0
  117. data/lib/onfido/models/facial_similarity_motion_breakdown_image_integrity_breakdown_source_integrity.rb +224 -0
  118. data/lib/onfido/models/facial_similarity_motion_breakdown_visual_authenticity.rb +224 -0
  119. data/lib/onfido/models/facial_similarity_motion_breakdown_visual_authenticity_breakdown.rb +223 -0
  120. data/lib/onfido/models/facial_similarity_motion_breakdown_visual_authenticity_breakdown_spoofing_detection.rb +224 -0
  121. data/lib/onfido/models/facial_similarity_motion_properties.rb +215 -0
  122. data/lib/onfido/models/facial_similarity_motion_report.rb +354 -0
  123. data/lib/onfido/models/facial_similarity_photo_breakdown.rb +232 -0
  124. data/lib/onfido/models/facial_similarity_photo_breakdown_face_comparison.rb +224 -0
  125. data/lib/onfido/models/facial_similarity_photo_breakdown_face_comparison_breakdown.rb +214 -0
  126. data/lib/onfido/models/facial_similarity_photo_breakdown_face_comparison_breakdown_face_match.rb +224 -0
  127. data/lib/onfido/models/facial_similarity_photo_breakdown_face_comparison_breakdown_face_match_properties.rb +225 -0
  128. data/lib/onfido/models/facial_similarity_photo_breakdown_image_integrity.rb +224 -0
  129. data/lib/onfido/models/facial_similarity_photo_breakdown_image_integrity_breakdown.rb +223 -0
  130. data/lib/onfido/models/facial_similarity_photo_breakdown_image_integrity_breakdown_face_detected.rb +224 -0
  131. data/lib/onfido/models/facial_similarity_photo_breakdown_image_integrity_breakdown_source_integrity.rb +224 -0
  132. data/lib/onfido/models/facial_similarity_photo_breakdown_visual_authenticity.rb +224 -0
  133. data/lib/onfido/models/facial_similarity_photo_breakdown_visual_authenticity_breakdown.rb +214 -0
  134. data/lib/onfido/models/facial_similarity_photo_breakdown_visual_authenticity_breakdown_spoofing_detection.rb +224 -0
  135. data/lib/onfido/models/facial_similarity_photo_breakdown_visual_authenticity_breakdown_spoofing_detection_properties.rb +215 -0
  136. data/lib/onfido/models/facial_similarity_photo_fully_auto_breakdown.rb +232 -0
  137. data/lib/onfido/models/facial_similarity_photo_fully_auto_breakdown_image_integrity.rb +224 -0
  138. data/lib/onfido/models/facial_similarity_photo_fully_auto_breakdown_image_integrity_breakdown.rb +223 -0
  139. data/lib/onfido/models/facial_similarity_photo_fully_auto_breakdown_image_integrity_breakdown_source_integrity.rb +224 -0
  140. data/lib/onfido/models/facial_similarity_photo_fully_auto_properties.rb +215 -0
  141. data/lib/onfido/models/facial_similarity_photo_fully_auto_report.rb +354 -0
  142. data/lib/onfido/models/facial_similarity_photo_properties.rb +215 -0
  143. data/lib/onfido/models/facial_similarity_photo_report.rb +354 -0
  144. data/lib/onfido/models/facial_similarity_video_breakdown.rb +232 -0
  145. data/lib/onfido/models/facial_similarity_video_breakdown_face_comparison.rb +224 -0
  146. data/lib/onfido/models/facial_similarity_video_breakdown_image_integrity.rb +224 -0
  147. data/lib/onfido/models/facial_similarity_video_breakdown_image_integrity_breakdown.rb +223 -0
  148. data/lib/onfido/models/facial_similarity_video_breakdown_image_integrity_breakdown_face_detected.rb +224 -0
  149. data/lib/onfido/models/facial_similarity_video_breakdown_image_integrity_breakdown_source_integrity.rb +224 -0
  150. data/lib/onfido/models/facial_similarity_video_breakdown_visual_authenticity.rb +224 -0
  151. data/lib/onfido/models/facial_similarity_video_breakdown_visual_authenticity_breakdown.rb +223 -0
  152. data/lib/onfido/models/facial_similarity_video_breakdown_visual_authenticity_breakdown_liveness_detected.rb +224 -0
  153. data/lib/onfido/models/facial_similarity_video_breakdown_visual_authenticity_breakdown_spoofing_detection.rb +224 -0
  154. data/lib/onfido/models/facial_similarity_video_properties.rb +215 -0
  155. data/lib/onfido/models/facial_similarity_video_report.rb +354 -0
  156. data/lib/onfido/models/id_number.rb +269 -0
  157. data/lib/onfido/models/id_photo.rb +289 -0
  158. data/lib/onfido/models/id_photo_response.rb +282 -0
  159. data/lib/onfido/models/id_photos_list.rb +223 -0
  160. data/lib/onfido/models/identity_enhanced_breakdown.rb +241 -0
  161. data/lib/onfido/models/identity_enhanced_breakdown_address.rb +224 -0
  162. data/lib/onfido/models/identity_enhanced_breakdown_address_breakdown.rb +232 -0
  163. data/lib/onfido/models/identity_enhanced_breakdown_address_breakdown_credit_agencies.rb +224 -0
  164. data/lib/onfido/models/identity_enhanced_breakdown_address_breakdown_credit_agencies_properties.rb +214 -0
  165. data/lib/onfido/models/identity_enhanced_breakdown_address_breakdown_telephone_database.rb +224 -0
  166. data/lib/onfido/models/identity_enhanced_breakdown_address_breakdown_voting_register.rb +224 -0
  167. data/lib/onfido/models/identity_enhanced_breakdown_date_of_birth.rb +224 -0
  168. data/lib/onfido/models/identity_enhanced_breakdown_date_of_birth_breakdown.rb +223 -0
  169. data/lib/onfido/models/identity_enhanced_breakdown_date_of_birth_breakdown_credit_agencies.rb +224 -0
  170. data/lib/onfido/models/identity_enhanced_breakdown_date_of_birth_breakdown_voting_register.rb +224 -0
  171. data/lib/onfido/models/identity_enhanced_breakdown_mortality.rb +215 -0
  172. data/lib/onfido/models/identity_enhanced_breakdown_sources.rb +224 -0
  173. data/lib/onfido/models/identity_enhanced_breakdown_sources_breakdown.rb +214 -0
  174. data/lib/onfido/models/identity_enhanced_breakdown_sources_breakdown_total_sources.rb +224 -0
  175. data/lib/onfido/models/identity_enhanced_breakdown_sources_breakdown_total_sources_properties.rb +214 -0
  176. data/lib/onfido/models/identity_enhanced_properties.rb +227 -0
  177. data/lib/onfido/models/identity_enhanced_properties_matched_addresses_inner.rb +227 -0
  178. data/lib/onfido/models/identity_enhanced_report.rb +354 -0
  179. data/lib/onfido/models/india_pan_report.rb +354 -0
  180. data/lib/onfido/models/india_pan_report_all_of_breakdown.rb +214 -0
  181. data/lib/onfido/models/india_pan_report_all_of_breakdown_device.rb +214 -0
  182. data/lib/onfido/models/india_pan_report_all_of_breakdown_device_breakdown.rb +223 -0
  183. data/lib/onfido/models/india_pan_report_all_of_breakdown_device_breakdown_pan_valid.rb +214 -0
  184. data/lib/onfido/models/india_pan_report_all_of_properties.rb +214 -0
  185. data/lib/onfido/models/india_pan_report_all_of_properties_device.rb +225 -0
  186. data/lib/onfido/models/known_faces_breakdown.rb +223 -0
  187. data/lib/onfido/models/known_faces_breakdown_image_integrity.rb +215 -0
  188. data/lib/onfido/models/known_faces_breakdown_previously_seen_faces.rb +215 -0
  189. data/lib/onfido/models/known_faces_properties.rb +217 -0
  190. data/lib/onfido/models/known_faces_properties_matches_inner.rb +255 -0
  191. data/lib/onfido/models/known_faces_report.rb +354 -0
  192. data/lib/onfido/models/live_photo.rb +289 -0
  193. data/lib/onfido/models/live_photo_response.rb +282 -0
  194. data/lib/onfido/models/live_photos_list.rb +223 -0
  195. data/lib/onfido/models/live_video.rb +287 -0
  196. data/lib/onfido/models/live_videos_list.rb +223 -0
  197. data/lib/onfido/models/location.rb +254 -0
  198. data/lib/onfido/models/location_builder.rb +254 -0
  199. data/lib/onfido/models/location_shared.rb +247 -0
  200. data/lib/onfido/models/motion_capture.rb +275 -0
  201. data/lib/onfido/models/motion_captures_list.rb +223 -0
  202. data/lib/onfido/models/photo_auto_reasons.rb +255 -0
  203. data/lib/onfido/models/photo_reasons.rb +255 -0
  204. data/lib/onfido/models/proof_of_address_breakdown.rb +232 -0
  205. data/lib/onfido/models/proof_of_address_breakdown_data_comparison.rb +224 -0
  206. data/lib/onfido/models/proof_of_address_breakdown_data_comparison_breakdown.rb +232 -0
  207. data/lib/onfido/models/proof_of_address_breakdown_document_classification.rb +224 -0
  208. data/lib/onfido/models/proof_of_address_breakdown_document_classification_breakdown.rb +214 -0
  209. data/lib/onfido/models/proof_of_address_breakdown_image_integrity.rb +224 -0
  210. data/lib/onfido/models/proof_of_address_breakdown_image_integrity_breakdown.rb +214 -0
  211. data/lib/onfido/models/proof_of_address_properties.rb +319 -0
  212. data/lib/onfido/models/proof_of_address_report.rb +354 -0
  213. data/lib/onfido/models/repeat_attempts_list.rb +292 -0
  214. data/lib/onfido/models/repeat_attempts_list_repeat_attempts_inner.rb +333 -0
  215. data/lib/onfido/models/report.rb +93 -0
  216. data/lib/onfido/models/report_document.rb +222 -0
  217. data/lib/onfido/models/report_name.rb +60 -0
  218. data/lib/onfido/models/report_result.rb +42 -0
  219. data/lib/onfido/models/report_shared.rb +329 -0
  220. data/lib/onfido/models/report_status.rb +44 -0
  221. data/lib/onfido/models/report_sub_result.rb +43 -0
  222. data/lib/onfido/models/reports_list.rb +223 -0
  223. data/lib/onfido/models/results_feedback.rb +279 -0
  224. data/lib/onfido/models/sdk_token.rb +229 -0
  225. data/lib/onfido/models/sdk_token_builder.rb +259 -0
  226. data/lib/onfido/models/sdk_token_request.rb +252 -0
  227. data/lib/onfido/models/sdk_token_response.rb +222 -0
  228. data/lib/onfido/models/task.rb +329 -0
  229. data/lib/onfido/models/task_item.rb +287 -0
  230. data/lib/onfido/models/timeline_file_reference.rb +239 -0
  231. data/lib/onfido/models/us_driving_licence_breakdown.rb +232 -0
  232. data/lib/onfido/models/us_driving_licence_breakdown_address.rb +224 -0
  233. data/lib/onfido/models/us_driving_licence_breakdown_address_breakdown.rb +259 -0
  234. data/lib/onfido/models/us_driving_licence_breakdown_document.rb +224 -0
  235. data/lib/onfido/models/us_driving_licence_breakdown_document_breakdown.rb +241 -0
  236. data/lib/onfido/models/us_driving_licence_breakdown_personal.rb +224 -0
  237. data/lib/onfido/models/us_driving_licence_breakdown_personal_breakdown.rb +322 -0
  238. data/lib/onfido/models/us_driving_licence_builder.rb +505 -0
  239. data/lib/onfido/models/us_driving_licence_report.rb +354 -0
  240. data/lib/onfido/models/us_driving_licence_shared.rb +499 -0
  241. data/lib/onfido/models/video_reasons.rb +245 -0
  242. data/lib/onfido/models/watchlist_aml_breakdown.rb +241 -0
  243. data/lib/onfido/models/watchlist_aml_breakdown_adverse_media.rb +215 -0
  244. data/lib/onfido/models/watchlist_aml_breakdown_legal_and_regulatory_warnings.rb +215 -0
  245. data/lib/onfido/models/watchlist_aml_breakdown_politically_exposed_person.rb +215 -0
  246. data/lib/onfido/models/watchlist_aml_breakdown_sanction.rb +215 -0
  247. data/lib/onfido/models/watchlist_aml_properties.rb +217 -0
  248. data/lib/onfido/models/watchlist_aml_report.rb +354 -0
  249. data/lib/onfido/models/watchlist_enhanced_breakdown.rb +241 -0
  250. data/lib/onfido/models/watchlist_enhanced_properties.rb +217 -0
  251. data/lib/onfido/models/watchlist_enhanced_report.rb +354 -0
  252. data/lib/onfido/models/watchlist_monitor.rb +342 -0
  253. data/lib/onfido/models/watchlist_monitor_builder.rb +292 -0
  254. data/lib/onfido/models/watchlist_monitor_match.rb +225 -0
  255. data/lib/onfido/models/watchlist_monitor_matches_list.rb +223 -0
  256. data/lib/onfido/models/watchlist_monitor_matches_updater.rb +227 -0
  257. data/lib/onfido/models/watchlist_monitor_response.rb +254 -0
  258. data/lib/onfido/models/watchlist_monitor_shared.rb +285 -0
  259. data/lib/onfido/models/watchlist_monitors_list.rb +223 -0
  260. data/lib/onfido/models/watchlist_peps_only_report.rb +354 -0
  261. data/lib/onfido/models/watchlist_sanctions_only_report.rb +354 -0
  262. data/lib/onfido/models/watchlist_standard_breakdown.rb +232 -0
  263. data/lib/onfido/models/watchlist_standard_properties.rb +217 -0
  264. data/lib/onfido/models/watchlist_standard_report.rb +354 -0
  265. data/lib/onfido/models/webhook.rb +304 -0
  266. data/lib/onfido/models/webhook_builder.rb +274 -0
  267. data/lib/onfido/models/webhook_create.rb +222 -0
  268. data/lib/onfido/models/webhook_event.rb +214 -0
  269. data/lib/onfido/models/webhook_event_payload.rb +273 -0
  270. data/lib/onfido/models/webhook_event_payload_object.rb +260 -0
  271. data/lib/onfido/models/webhook_event_type.rb +56 -0
  272. data/lib/onfido/models/webhook_resend.rb +216 -0
  273. data/lib/onfido/models/webhook_response.rb +252 -0
  274. data/lib/onfido/models/webhook_shared.rb +249 -0
  275. data/lib/onfido/models/webhook_update.rb +215 -0
  276. data/lib/onfido/models/webhook_updater.rb +267 -0
  277. data/lib/onfido/models/webhooks_list.rb +223 -0
  278. data/lib/onfido/models/webhooks_resend_item.rb +261 -0
  279. data/lib/onfido/models/workflow_run.rb +416 -0
  280. data/lib/onfido/models/workflow_run_builder.rb +316 -0
  281. data/lib/onfido/models/workflow_run_request.rb +217 -0
  282. data/lib/onfido/models/workflow_run_response.rb +317 -0
  283. data/lib/onfido/models/workflow_run_response_error.rb +226 -0
  284. data/lib/onfido/models/workflow_run_shared.rb +296 -0
  285. data/lib/onfido/models/workflow_run_shared_link.rb +290 -0
  286. data/lib/onfido/version.rb +12 -2
  287. data/lib/onfido/webhook_event_verifier.rb +20 -0
  288. data/lib/onfido.rb +309 -25
  289. data/onfido.gemspec +42 -33
  290. data/spec/integrations/address_picker_spec.rb +16 -0
  291. data/spec/integrations/applicant_spec.rb +73 -95
  292. data/spec/integrations/check_spec.rb +60 -41
  293. data/spec/integrations/document_spec.rb +28 -57
  294. data/spec/integrations/extraction_spec.rb +27 -12
  295. data/spec/integrations/id_photo_spec.rb +55 -0
  296. data/spec/integrations/live_photo_spec.rb +28 -45
  297. data/spec/integrations/live_video_spec.rb +33 -19
  298. data/spec/integrations/media/sample_driving_licence.png +0 -0
  299. data/spec/integrations/media/sample_photo.png +0 -0
  300. data/spec/integrations/motion_capture_spec.rb +30 -24
  301. data/spec/integrations/report_schema_spec.rb +45 -0
  302. data/spec/integrations/report_spec.rb +34 -25
  303. data/spec/integrations/sdk_token_spec.rb +12 -10
  304. data/spec/integrations/tasks_spec.rb +45 -0
  305. data/spec/integrations/watchlist_monitor_spec.rb +73 -0
  306. data/spec/integrations/webhook_spec.rb +40 -88
  307. data/spec/integrations/workflow_run_output_spec.rb +117 -0
  308. data/spec/integrations/workflow_run_spec.rb +64 -34
  309. data/spec/shared_contexts/with_applicant.rb +24 -0
  310. data/spec/shared_contexts/with_check.rb +18 -0
  311. data/spec/shared_contexts/with_document.rb +13 -0
  312. data/spec/shared_contexts/with_live_photo.rb +18 -0
  313. data/spec/shared_contexts/with_onfido.rb +14 -0
  314. data/spec/shared_contexts/with_workflow_run.rb +19 -0
  315. data/spec/spec_helper.rb +73 -11
  316. data/spec/webhook_event_verifier_spec.rb +29 -0
  317. metadata +367 -157
  318. data/.github/workflows/gem-push.yml +0 -31
  319. data/.github/workflows/ruby.yml +0 -25
  320. data/.gitignore +0 -19
  321. data/.rspec +0 -2
  322. data/.rubocop.yml +0 -13
  323. data/lib/onfido/api.rb +0 -65
  324. data/lib/onfido/errors/connection_error.rb +0 -6
  325. data/lib/onfido/errors/onfido_error.rb +0 -30
  326. data/lib/onfido/errors/request_error.rb +0 -6
  327. data/lib/onfido/errors/server_error.rb +0 -6
  328. data/lib/onfido/options.rb +0 -38
  329. data/lib/onfido/resource.rb +0 -153
  330. data/lib/onfido/resources/address.rb +0 -9
  331. data/lib/onfido/resources/applicant.rb +0 -29
  332. data/lib/onfido/resources/check.rb +0 -28
  333. data/lib/onfido/resources/document.rb +0 -28
  334. data/lib/onfido/resources/extraction.rb +0 -11
  335. data/lib/onfido/resources/live_photo.rb +0 -27
  336. data/lib/onfido/resources/live_video.rb +0 -17
  337. data/lib/onfido/resources/monitor.rb +0 -32
  338. data/lib/onfido/resources/motion_capture.rb +0 -21
  339. data/lib/onfido/resources/report.rb +0 -21
  340. data/lib/onfido/resources/sdk_token.rb +0 -10
  341. data/lib/onfido/resources/webhook.rb +0 -40
  342. data/lib/onfido/resources/workflow_run.rb +0 -21
  343. data/spec/integrations/address_spec.rb +0 -13
  344. data/spec/integrations/monitor_spec.rb +0 -100
  345. data/spec/integrations/resource_spec.rb +0 -106
  346. data/spec/onfido/api_spec.rb +0 -22
  347. data/spec/onfido/connection_error_spec.rb +0 -20
  348. data/spec/onfido/options_spec.rb +0 -39
  349. data/spec/onfido/request_error_spec.rb +0 -36
  350. data/spec/support/fake_onfido_api.rb +0 -295
  351. data/spec/support/fixtures/4xx_response.json +0 -14
  352. data/spec/support/fixtures/addresses.json +0 -24
  353. data/spec/support/fixtures/applicant.json +0 -28
  354. data/spec/support/fixtures/applicants.json +0 -12
  355. data/spec/support/fixtures/check.json +0 -12
  356. data/spec/support/fixtures/checks.json +0 -16
  357. data/spec/support/fixtures/document.json +0 -10
  358. data/spec/support/fixtures/documents.json +0 -23
  359. data/spec/support/fixtures/extraction.json +0 -23
  360. data/spec/support/fixtures/live_photo.json +0 -9
  361. data/spec/support/fixtures/live_photos.json +0 -22
  362. data/spec/support/fixtures/live_video.json +0 -23
  363. data/spec/support/fixtures/live_videos.json +0 -27
  364. data/spec/support/fixtures/monitor.json +0 -8
  365. data/spec/support/fixtures/monitor_matches.json +0 -12
  366. data/spec/support/fixtures/monitors.json +0 -12
  367. data/spec/support/fixtures/motion_capture.json +0 -9
  368. data/spec/support/fixtures/motion_captures.json +0 -13
  369. data/spec/support/fixtures/not_scheduled_for_deletion_error.json +0 -7
  370. data/spec/support/fixtures/report.json +0 -10
  371. data/spec/support/fixtures/reports.json +0 -24
  372. data/spec/support/fixtures/sdk_token.json +0 -3
  373. data/spec/support/fixtures/signed_workflow_run.pdf +0 -0
  374. data/spec/support/fixtures/unexpected_error_format.json +0 -3
  375. data/spec/support/fixtures/webhook.json +0 -14
  376. data/spec/support/fixtures/webhooks.json +0 -31
  377. data/spec/support/fixtures/workflow_run.json +0 -20
  378. data/spec/support/fixtures/workflow_runs.json +0 -42
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe Onfido::Address do
4
- include_context 'fake onfido api'
5
-
6
- describe '#all' do
7
- it 'returns the addresses matching the postcode' do
8
- response = onfido.address.all('SW1 4NG')
9
-
10
- expect(response['addresses'].count).to eq(2)
11
- end
12
- end
13
- end
@@ -1,100 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe Onfido::Monitor do
4
- include_context 'fake onfido api'
5
-
6
- subject(:monitor) { onfido.monitor }
7
-
8
- let(:monitor_id) { '2748c4fc-c6b8-4c1e-a383-21efa241ce1e' }
9
-
10
- describe '#create' do
11
- let(:applicant_id) { '61f659cb-c90b-4067-808a-6136b5c01351' }
12
- let(:report_name) { 'watchlist_standard' }
13
-
14
- it 'creates a monitor for the applicant' do
15
- response = monitor.create(applicant_id: applicant_id, report_name: report_name)
16
- expect(response).to be_a(Hash).and include('id' => monitor_id, 'report_name' => report_name)
17
- end
18
- end
19
-
20
- describe '#find' do
21
- it 'returns the expected monitor' do
22
- response = monitor.find(monitor_id)
23
-
24
- expect(response).to be_a(Hash).and include('id' => monitor_id)
25
- end
26
- end
27
-
28
- describe '#all' do
29
- it 'returns a list of monitors' do
30
- applicant_id = '1030303-123123-123123'
31
- response = monitor.all(applicant_id)
32
-
33
- expect(response['monitors']).to be_an(Array).and contain_exactly(an_instance_of(Hash))
34
- end
35
- end
36
-
37
- describe '#destroy' do
38
- it 'returns success code' do
39
- expect { monitor.destroy(monitor_id) }.not_to raise_error
40
- end
41
- end
42
-
43
- describe '#list_matches' do
44
- subject(:list_matches) { monitor.list_matches(monitor_id) }
45
-
46
- it do
47
- is_expected
48
- .to include('matches' => [hash_including('id' => anything, 'enabled' => true), anything])
49
- end
50
-
51
- context 'when the monitor_id does not exist' do
52
- let(:monitor_id) { '00000000-c6b8-4c1e-a383-21efa241ce1e' }
53
-
54
- it 'raises an error' do
55
- expect { list_matches }.to raise_error(Onfido::RequestError, /404/)
56
- end
57
- end
58
- end
59
-
60
- describe '#set_match_status' do
61
- subject(:set_match_status) { monitor.set_match_status(monitor_id, **payload) }
62
-
63
- let(:payload) do
64
- {
65
- disabled: ['925e47d3-9e21-48d4-b570-9564c4282cec'],
66
- enabled: ['37afcacb-5ff0-4b09-831d-5bcc672ca1fb']
67
- }
68
- end
69
-
70
- it do
71
- is_expected
72
- .to include('matches' => [hash_including('id' => anything, 'enabled' => true), anything])
73
- end
74
-
75
- context 'when a match id is both in enabled and disabled' do
76
- before { payload[:disabled] << payload[:enabled][0] }
77
-
78
- it 'raises an error' do
79
- expect { set_match_status }
80
- .to raise_error(
81
- an_instance_of(Onfido::RequestError).and(having_attributes(response_code: 422))
82
- )
83
- end
84
- end
85
-
86
- context 'when not passing any enabled or disabled ids' do
87
- let(:payload) { {} }
88
-
89
- it { is_expected.to be_nil }
90
- end
91
-
92
- context 'when the monitor_id does not exist' do
93
- let(:monitor_id) { '00000000-c6b8-4c1e-a383-21efa241ce1e' }
94
-
95
- it 'raises an error' do
96
- expect { set_match_status }.to raise_error(Onfido::RequestError, /404/)
97
- end
98
- end
99
- end
100
- end
@@ -1,106 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class TestResource < Onfido::Resource
4
- def get(path:)
5
- super(path: path)
6
- end
7
- end
8
-
9
- describe Onfido::Resource do
10
- include_context 'fake onfido api'
11
-
12
- subject(:resource) { TestResource.new(Onfido::Options.new(api_key: 'test', region: :eu)) }
13
-
14
- context '4xx response' do
15
- it 'raises a custom error' do
16
- path = '4xx_response'
17
-
18
- expect { resource.get(path: path) }
19
- .to raise_error(Onfido::RequestError, 'Something went wrong')
20
- end
21
- end
22
-
23
- context 'unexpected error format' do
24
- it 'raises a custom error' do
25
- path = 'unexpected_error_format'
26
-
27
- expect { resource.get(path: path) }
28
- .to raise_error(Onfido::RequestError, /response code was 400/)
29
- end
30
- end
31
-
32
- context 'unparseable JSON 5xx' do
33
- it 'raises a server error' do
34
- path = 'unparseable_response'
35
-
36
- expect { resource.get(path: path) }
37
- .to raise_error(Onfido::ServerError, /response code was 504/)
38
- end
39
- end
40
-
41
- context 'timeout' do
42
- before do
43
- allow(RestClient::Request)
44
- .to receive(:execute)
45
- .and_raise(RestClient::RequestTimeout)
46
- end
47
-
48
- it 'raises a ConnectionError' do
49
- expect { resource.get(path: '') }
50
- .to raise_error(Onfido::ConnectionError, /Could not connect/)
51
- end
52
- end
53
-
54
- context 'RestClient : BadGateway' do
55
- before do
56
- allow(RestClient::Request)
57
- .to receive(:execute)
58
- .and_raise(RestClient::BadGateway)
59
- end
60
-
61
- it 'raises a ConnectionError' do
62
- expect { resource.get(path: '') }
63
- .to raise_error(Onfido::ConnectionError, /Could not connect/)
64
- end
65
- end
66
-
67
- context 'broken connection' do
68
- before do
69
- allow(RestClient::Request)
70
- .to receive(:execute)
71
- .and_raise(RestClient::ServerBrokeConnection)
72
- end
73
-
74
- it 'raises a ConnectionError' do
75
- expect { resource.get(path: '') }
76
- .to raise_error(Onfido::ConnectionError, /connection to the server/)
77
- end
78
- end
79
-
80
- context 'bad SSL certificate' do
81
- before do
82
- allow(RestClient::Request)
83
- .to receive(:execute)
84
- .and_raise(RestClient::SSLCertificateNotVerified.new(nil))
85
- end
86
-
87
- it 'raises a ConnectionError' do
88
- expect { resource.get(path: '') }
89
- .to raise_error(Onfido::ConnectionError, /SSL certificate/)
90
- end
91
- end
92
-
93
- context 'with a timeout error response' do
94
- before do
95
- allow_any_instance_of(RestClient::ExceptionWithResponse)
96
- .to receive(:response).and_return(double(body: '', code: '408'))
97
- expect(RestClient::Request).to receive(:execute)
98
- .and_raise(RestClient::ExceptionWithResponse)
99
- end
100
-
101
- it 'raises a ConnectionError' do
102
- expect { resource.get(path: '') }
103
- .to raise_error(Onfido::ConnectionError)
104
- end
105
- end
106
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe Onfido::API do
4
- before do
5
- allow(Onfido::Options).to receive(:new).and_call_original
6
- end
7
-
8
- let(:options) do
9
- {
10
- api_key: 'test',
11
- region: :eu,
12
- open_timeout: 1,
13
- read_timeout: 2
14
- }
15
- end
16
-
17
- it 'passes through options' do
18
- described_class.new(**options)
19
-
20
- expect(Onfido::Options).to have_received(:new).with(**options)
21
- end
22
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe Onfido::ConnectionError do
4
- subject(:error) do
5
- described_class.new(
6
- 'Invalid response object from API',
7
- response_code: response_code,
8
- response_body: response_body
9
- )
10
- end
11
-
12
- let(:response_code) { nil }
13
- let(:response_body) { nil }
14
-
15
- context 'without a response_body' do
16
- its(:json_body) { is_expected.to be_nil }
17
- its(:type) { is_expected.to be_nil }
18
- its(:fields) { is_expected.to be_nil }
19
- end
20
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe Onfido::Options do
4
- subject(:options) do
5
- described_class.new(
6
- api_key: 'test',
7
- region: :us,
8
- open_timeout: 1,
9
- read_timeout: 2
10
- )
11
- end
12
-
13
- it 'checks region is valid' do
14
- expect { described_class.new(api_key: 'test', region: :aa) }.to raise_error 'Unknown region aa'
15
- end
16
-
17
- context 'when creating rest client resource' do
18
- let(:rest_client) { options.rest_client }
19
-
20
- it 'configures with headers' do
21
- expect(rest_client.options[:headers]).to eq(
22
- 'Accept' => 'application/json',
23
- 'Authorization' => 'Token token=test',
24
- 'User-Agent' => "onfido-ruby/#{Onfido::VERSION}"
25
- )
26
- end
27
-
28
- it 'configures with region' do
29
- expect(rest_client.url).to eq 'https://api.us.onfido.com/v3.6/'
30
- end
31
-
32
- it 'configures with timeouts' do
33
- expect(rest_client.options).to include(
34
- open_timeout: 1,
35
- read_timeout: 2
36
- )
37
- end
38
- end
39
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe Onfido::RequestError do
4
- subject(:error) do
5
- described_class.new(
6
- failed_response['error']['message'],
7
- response_code: 401,
8
- response_body: failed_response.to_json
9
- )
10
- end
11
-
12
- let(:failed_response) do
13
- {
14
- 'error' =>
15
- {
16
- 'id' => '551722cc964860653c00c202',
17
- 'type' => 'authorization_error',
18
- 'message' => 'Authorization error: please re-check your credentials',
19
- 'fields' => { 'name' => { 'messages' => ['cannot be blank'] } }
20
- }
21
- }
22
- end
23
-
24
- it 'returns the right message' do
25
- expect { raise error }
26
- .to raise_error('Authorization error: please re-check your credentials')
27
- end
28
-
29
- its(:type) { is_expected.to eq('authorization_error') }
30
- its(:response_code) { is_expected.to eq(401) }
31
- its(:response_body) { is_expected.to eq(failed_response.to_json) }
32
- its(:json_body) { is_expected.to eq(failed_response) }
33
- its(:fields) do
34
- is_expected.to eq('name' => { 'messages' => ['cannot be blank'] })
35
- end
36
- end
@@ -1,295 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'sinatra/base'
4
-
5
- RSpec.shared_context 'fake onfido api' do
6
- let(:onfido) { Onfido::API.new(api_key: 'test', region: :eu) }
7
-
8
- before { stub_request(:any, /api.eu.onfido.com/).to_rack(FakeOnfidoAPI) }
9
- end
10
-
11
- class FakeOnfidoAPI < Sinatra::Base # rubocop:disable Metrics/ClassLength
12
- before do
13
- begin
14
- if request.content_type == 'application/json; charset=utf-8'
15
- body_parameters = JSON.parse(request.body.read)
16
- params.merge!(body_parameters) if body_parameters
17
- end
18
- rescue JSON::ParserError
19
- end
20
- end
21
-
22
- get '/v3.6/addresses/pick' do
23
- json_response(200, 'addresses.json')
24
- end
25
-
26
- post '/v3.6/applicants' do
27
- json_response(201, 'applicant.json')
28
- end
29
-
30
- put '/v3.6/applicants/:id' do
31
- json_response(200, 'applicant.json')
32
- end
33
-
34
- get '/v3.6/applicants/:id' do
35
- json_response(200, 'applicant.json')
36
- end
37
-
38
- get '/v3.6/applicants' do
39
- response = json_response(200, 'applicants.json')
40
- { applicants: JSON.parse(response)['applicants'][pagination_range] }.to_json
41
- end
42
-
43
- delete '/v3.6/applicants/:id' do
44
- status 204
45
- end
46
-
47
- post '/v3.6/applicants/:id/restore' do
48
- if params['id'] == 'a2fb9c62-ab10-4898-a8ec-342c4b552ad5'
49
- json_response(422, 'not_scheduled_for_deletion_error.json')
50
- else
51
- status 204
52
- end
53
- end
54
-
55
- post '/v3.6/documents' do
56
- json_response(201, 'document.json')
57
- end
58
-
59
- post '/v3.6/extractions' do
60
- json_response(201, 'extraction.json')
61
- end
62
-
63
- get '/v3.6/documents/:id' do
64
- json_response(200, 'document.json')
65
- end
66
-
67
- get '/v3.6/documents' do
68
- json_response(200, 'documents.json')
69
- end
70
-
71
- get '/v3.6/documents/:id/download' do
72
- status 200
73
- content_type 'application/octet-stream'
74
- "\x01\x02\x03" # acts as binary file data
75
- end
76
-
77
- post '/v3.6/live_photos' do
78
- json_response(201, 'live_photo.json')
79
- end
80
-
81
- get '/v3.6/live_photos/:id' do
82
- json_response(200, 'live_photo.json')
83
- end
84
-
85
- get '/v3.6/live_photos' do
86
- if params['applicant_id'] == '1030303-123123-123123'
87
- json_response(200, 'live_photos.json')
88
- else
89
- status 404
90
- end
91
- end
92
-
93
- get '/v3.6/live_photos/:id/download' do
94
- status 200
95
- content_type 'image/jpeg'
96
- "\x01\x02\x03" # acts as binary file data
97
- end
98
-
99
- get '/v3.6/live_videos/:id' do
100
- json_response(200, 'live_video.json')
101
- end
102
-
103
- get '/v3.6/live_videos' do
104
- if params['applicant_id'] == '1030303-123123-123123'
105
- json_response(200, 'live_videos.json')
106
- else
107
- status 404
108
- end
109
- end
110
-
111
- get '/v3.6/live_videos/:id/download' do
112
- status 200
113
- content_type 'video/quicktime'
114
- "\x01\x02\x03" # acts as binary file data
115
- end
116
-
117
- post '/v3.6/watchlist_monitors' do
118
- json_response(201, 'monitor.json')
119
- end
120
-
121
- get '/v3.6/watchlist_monitors/:id' do
122
- json_response(200, 'monitor.json')
123
- end
124
-
125
- get '/v3.6/watchlist_monitors' do
126
- if params['applicant_id'] == '1030303-123123-123123'
127
- json_response(200, 'monitors.json')
128
- else
129
- status 404
130
- end
131
- end
132
-
133
- delete '/v3.6/watchlist_monitors/:id' do
134
- status 204
135
- end
136
-
137
- get '/v3.6/watchlist_monitors/:monitor_id/matches' do
138
- if params['monitor_id'] == '2748c4fc-c6b8-4c1e-a383-21efa241ce1e'
139
- json_response(200, 'monitor_matches.json')
140
- else
141
- status 404
142
- end
143
- end
144
-
145
- patch '/v3.6/watchlist_monitors/:monitor_id/matches' do
146
- if params['monitor_id'] == '2748c4fc-c6b8-4c1e-a383-21efa241ce1e'
147
- enabled, disabled = params.values_at('enabled', 'disabled')
148
- if enabled&.any? || disabled&.any?
149
- if (enabled.to_a & disabled.to_a).any?
150
- json_response(422, '4xx_response.json')
151
- else
152
- json_response(200, 'monitor_matches.json')
153
- end
154
- else
155
- status 204
156
- end
157
- else
158
- status 404
159
- end
160
- end
161
-
162
- get '/v3.6/motion_captures/:id' do
163
- json_response(200, 'motion_capture.json')
164
- end
165
-
166
- get '/v3.6/motion_captures' do
167
- if params['applicant_id'] == '1030303-123123-123123'
168
- json_response(200, 'motion_captures.json')
169
- else
170
- status 404
171
- end
172
- end
173
-
174
- get '/v3.6/motion_captures/:id/download' do
175
- status 200
176
- content_type 'video/mp4'
177
- "\x01\x02\x03" # acts as binary file data
178
- end
179
-
180
- get '/v3.6/motion_captures/:id/frame' do
181
- status 200
182
- content_type 'image/jpeg'
183
- "\x01\x02\x03" # acts as binary file data
184
- end
185
-
186
- post '/v3.6/checks' do
187
- params['applicant_id'].nil? ? status(422) : json_response(201, 'check.json')
188
- end
189
-
190
- get '/v3.6/checks/:id' do
191
- json_response(200, 'check.json')
192
- end
193
-
194
- get '/v3.6/checks' do
195
- json_response(200, 'checks.json')
196
- end
197
-
198
- post '/v3.6/checks/:id/resume' do
199
- status 204 # no_content
200
- end
201
-
202
- get '/v3.6/checks/:id/download' do
203
- status 200
204
- content_type 'application/pdf'
205
- "\x01\x02\x03" # acts as binary file data
206
- end
207
-
208
- get '/v3.6/reports' do
209
- json_response(200, 'reports.json')
210
- end
211
-
212
- get '/v3.6/reports/:id' do
213
- json_response(200, 'report.json')
214
- end
215
-
216
- post '/v3.6/reports/:id/resume' do
217
- status 204
218
- end
219
-
220
- post '/v3.6/reports/:id/cancel' do
221
- status 204
222
- end
223
-
224
- post '/v3.6/sdk_token' do
225
- json_response(201, 'sdk_token.json')
226
- end
227
-
228
- post '/v3.6/webhooks' do
229
- json_response(201, 'webhook.json')
230
- end
231
-
232
- get '/v3.6/webhooks/:id' do
233
- json_response(200, 'webhook.json')
234
- end
235
-
236
- delete '/v3.6/webhooks/:id' do
237
- status 204
238
- end
239
-
240
- get '/v3.6/webhooks' do
241
- json_response(200, 'webhooks.json')
242
- end
243
-
244
- post '/v3.6/workflow_runs' do
245
- json_response(201, 'workflow_run.json')
246
- end
247
-
248
- get '/v3.6/workflow_runs/:id' do
249
- json_response(200, 'workflow_run.json')
250
- end
251
-
252
- get '/v3.6/workflow_runs/:id/signed_evidence_file' do
253
- pdf_response(200, 'signed_workflow_run.pdf')
254
- end
255
-
256
- get '/v3.6/workflow_runs' do
257
- json_response(200, 'workflow_runs.json')
258
- end
259
-
260
- get '/v3.6/4xx_response' do
261
- json_response(422, '4xx_response.json')
262
- end
263
-
264
- get '/v3.6/unexpected_error_format' do
265
- json_response(400, 'unexpected_error_format.json')
266
- end
267
-
268
- get '/v3.6/unparseable_response' do
269
- content_type :json
270
- status 504
271
- ''
272
- end
273
-
274
- private
275
-
276
- def json_response(response_code, file_name)
277
- fixture_response(response_code, file_name, 'application/json')
278
- end
279
-
280
- def fixture_response(response_code, file_name, custom_content_type)
281
- content_type "#{custom_content_type}; charset=utf-8"
282
- status response_code
283
- File.binread("#{File.dirname(__FILE__)}/fixtures/#{file_name}")
284
- end
285
-
286
- def pdf_response(response_code, file_name)
287
- fixture_response(response_code, file_name, 'application/pdf')
288
- end
289
-
290
- def pagination_range
291
- start = (params.fetch('page').to_i - 1) * 20
292
- limit = start + params.fetch('per_page').to_i - 1
293
- start..limit
294
- end
295
- end
@@ -1,14 +0,0 @@
1
- {
2
- "error": {
3
- "id": "544f95539648607d03001542",
4
- "type": "validation_error",
5
- "message": "Something went wrong",
6
- "fields": {
7
- "email": {
8
- "messages": [
9
- "invalid format"
10
- ]
11
- }
12
- }
13
- }
14
- }
@@ -1,24 +0,0 @@
1
- {
2
- "addresses": [
3
- {
4
- "flat_number": "",
5
- "building_number": "100",
6
- "building_name": "",
7
- "street": "Main Street",
8
- "sub_street": "",
9
- "town": "London",
10
- "postcode": "SW4 6EH",
11
- "country": "GBR"
12
- },
13
- {
14
- "flat_number": "",
15
- "building_number": "101",
16
- "building_name": "",
17
- "street": "Main Street",
18
- "sub_street": "",
19
- "town": "London",
20
- "postcode": "SW4 6EH",
21
- "country": "GBR"
22
- }
23
- ]
24
- }
@@ -1,28 +0,0 @@
1
- {
2
- "id":"61f659cb-c90b-4067-808a-6136b5c01351",
3
- "created_at":"2015-04-10T13:16:01Z",
4
- "title":"Mr",
5
- "first_name":"Chandler",
6
- "middle_name":"Muriel",
7
- "last_name":"Bing",
8
- "email":"chandler_bing_6@friends.com",
9
- "dob":"1968-04-08",
10
- "href":"/v3.6/applicants/61f659cb-c90b-4067-808a-6136b5c01351",
11
- "id_numbers":[],
12
- "address": {
13
- "flat_number":"4",
14
- "building_number":"100",
15
- "building_name":"Awesome Building",
16
- "street":"Main Street",
17
- "sub_street":"A sub street",
18
- "town":"London",
19
- "state":"",
20
- "postcode":"SW4 6EH",
21
- "country":"GBR"
22
- },
23
- "location": {
24
- "ip_address": "127.0.0.1",
25
- "country_of_residence": "GBR"
26
- },
27
- "phone_number": "910100100"
28
- }