usps-imis-api 1.0.0.pre.rc.7 → 1.0.0.pre.rc.9

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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +20 -2
  5. data/Readme.md +12 -2
  6. data/lib/usps/imis/api.rb +16 -12
  7. data/lib/usps/imis/business_object.rb +17 -8
  8. data/lib/usps/imis/data.rb +4 -0
  9. data/lib/usps/imis/error.rb +2 -0
  10. data/lib/usps/imis/mapper.rb +23 -0
  11. data/lib/usps/imis/panels/base_panel.rb +10 -0
  12. data/lib/usps/imis/query.rb +50 -18
  13. data/lib/usps/imis/requests.rb +7 -3
  14. data/lib/usps/imis/version.rb +1 -1
  15. data/lib/usps/imis.rb +5 -0
  16. data/spec/fixtures/vcr_cassettes/.keep +0 -0
  17. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_authorize/automatically_refreshes_an_expired_token.yml +67 -0
  18. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_imis_id_for/gets_the_iMIS_ID.yml +131 -0
  19. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_imis_id_for/with_a_query_error/wraps_errors.yml +67 -0
  20. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_inspect/does_not_show_the_token_instance_variable.yml +67 -0
  21. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_inspect/is_configured_to_exclude_the_token_instance_variable.yml +67 -0
  22. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_on/chains_with_on_to_a_single_block.yml +256 -0
  23. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_on/nests_on_and_with.yml +256 -0
  24. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_on/returns_a_BusinessObject_without_a_block.yml +67 -0
  25. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_on/sends_an_update_from_put.yml +256 -0
  26. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_put/sends_an_update.yml +256 -0
  27. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_put/when_receiving_a_response_error/wraps_the_error.yml +67 -0
  28. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_query/collects_all_query_results.yml +67 -0
  29. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_with/blocks_calling_imis_id_.yml +67 -0
  30. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_with/blocks_calling_imis_id_for.yml +67 -0
  31. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_with/sends_an_update_from_put.yml +256 -0
  32. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_with/sends_an_update_from_update.yml +256 -0
  33. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/_with/uses_a_panel_correctly.yml +145 -0
  34. data/spec/fixtures/vcr_cassettes/Usps_Imis_Api/stores_the_initial_imis_id.yml +67 -0
  35. data/spec/fixtures/vcr_cassettes/Usps_Imis_BusinessObject/_put_field/submits_the_correct_update_request.yml +627 -0
  36. data/spec/fixtures/vcr_cassettes/Usps_Imis_BusinessObject/with_stubbed_data/_filter_fields/formats_fields_correctly.yml +67 -0
  37. data/spec/fixtures/vcr_cassettes/Usps_Imis_BusinessObject/with_stubbed_data/_get/delegation_to_get_fields/delegates_to_get_fields.yml +67 -0
  38. data/spec/fixtures/vcr_cassettes/Usps_Imis_BusinessObject/with_stubbed_data/_get/returns_multiple_values.yml +67 -0
  39. data/spec/fixtures/vcr_cassettes/Usps_Imis_BusinessObject/with_stubbed_data/_get_field/returns_a_string_value.yml +67 -0
  40. data/spec/fixtures/vcr_cassettes/Usps_Imis_BusinessObject/with_stubbed_data/_get_field/returns_an_integer_value.yml +67 -0
  41. data/spec/fixtures/vcr_cassettes/Usps_Imis_BusinessObject/with_stubbed_data/_get_fields/returns_multiple_values.yml +67 -0
  42. data/spec/fixtures/vcr_cassettes/Usps_Imis_Mapper/_fetch/fetches_a_mapped_field.yml +158 -0
  43. data/spec/fixtures/vcr_cassettes/Usps_Imis_Mapper/_fetch/raises_for_unmapped_updates.yml +67 -0
  44. data/spec/fixtures/vcr_cassettes/Usps_Imis_Mapper/_fetch/supports_Hash_access_syntax.yml +158 -0
  45. data/spec/fixtures/vcr_cassettes/Usps_Imis_Mapper/_fetch/supports_Hash_access_syntax_on_the_Api_directly.yml +158 -0
  46. data/spec/fixtures/vcr_cassettes/Usps_Imis_Mapper/_update/raises_for_unmapped_updates.yml +67 -0
  47. data/spec/fixtures/vcr_cassettes/Usps_Imis_Mapper/_update/sends_a_mapped_update.yml +256 -0
  48. data/spec/fixtures/vcr_cassettes/Usps_Imis_Mapper/initialize_with_imis_id/stores_the_initial_imis_id.yml +67 -0
  49. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_BasePanel/requires_business_object_to_be_defined.yml +67 -0
  50. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_BasePanel/requires_payload_data_to_be_defined.yml +67 -0
  51. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_Education/api_example/_get/loads_a_specific_object.yml +146 -0
  52. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_Education/api_example/_get/returns_specific_fields.yml +146 -0
  53. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_Education/api_example/_get_field/returns_a_specific_field.yml +146 -0
  54. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_Education/api_example/_get_fields/returns_specific_fields.yml +146 -0
  55. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_Education/api_example/interacts_with_records_correctly.yml +495 -0
  56. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_Education/initialization_with_ID/can_initialize_with_an_iMIS_ID.yml +67 -0
  57. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_Vsc/_get/loads_a_specific_object.yml +145 -0
  58. data/spec/fixtures/vcr_cassettes/Usps_Imis_Panels_Vsc/handles_new_records_correctly.yml +319 -0
  59. data/spec/lib/usps/imis/api_spec.rb +4 -14
  60. data/spec/lib/usps/imis/business_object_spec.rb +63 -50
  61. data/spec/lib/usps/imis/data_spec.rb +9 -0
  62. data/spec/lib/usps/imis/mapper_spec.rb +1 -1
  63. data/spec/lib/usps/imis/panels/base_panel_spec.rb +1 -1
  64. data/spec/lib/usps/imis/panels/education_spec.rb +1 -1
  65. data/spec/lib/usps/imis/panels/vsc_spec.rb +1 -1
  66. data/spec/spec_helper.rb +40 -0
  67. metadata +44 -1
@@ -0,0 +1,67 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://abcdev.imiscloud.com/Token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: grant_type=password&username=<USERNAME>&password=<PASSWORD>
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - abcdev.imiscloud.com
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Date:
24
+ - Sun, 26 Oct 2025 01:24:32 GMT
25
+ Content-Type:
26
+ - application/json; charset=UTF-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Server:
32
+ - cloudflare
33
+ Cf-Ray:
34
+ - 99462795b837e81d-ORD
35
+ Cf-Cache-Status:
36
+ - DYNAMIC
37
+ Access-Control-Allow-Origin:
38
+ - "*"
39
+ Cache-Control:
40
+ - no-cache
41
+ Expires:
42
+ - "-1"
43
+ Strict-Transport-Security:
44
+ - max-age=31536000
45
+ Vary:
46
+ - Accept-Encoding,Accept-Encoding
47
+ Pragma:
48
+ - no-cache
49
+ Access-Control-Expose-Headers:
50
+ - Request-Context
51
+ Request-Context:
52
+ - appId=cid-v1:9c05b5dd-9acf-4a59-aabb-1775785c005f
53
+ X-Aspnet-Version:
54
+ - 4.0.30319
55
+ X-Content-Type-Options:
56
+ - nosniff
57
+ - nosniff
58
+ Set-Cookie:
59
+ - __cf_bm=.Gnlfg7zSLFP6PJgFanZ_bt4VQ7vtTC51lmIAH__AQk-1761441872-1.0.1.1-zWndaU0UoAXuvMfZbr0ZjW8h.qHINEVRww2bCBvHYV0XmZcDm64lblcGe7v5FeZR40IfVsufZvrjuTevPtz7LwbNPPNMiPnJXpiBOvtZMZE;
60
+ path=/; expires=Sun, 26-Oct-25 01:54:32 GMT; domain=.abcdev.imiscloud.com;
61
+ HttpOnly; Secure; SameSite=None
62
+ body:
63
+ encoding: ASCII-8BIT
64
+ string: '{"access_token":"<ACCESS_TOKEN>","token_type":"bearer","expires_in":3599,"userName":"J.S.FIANDER@GMAIL.COM",".issued":"Sun,
65
+ 26 Oct 2025 01:24:32 GMT",".expires":"Sun, 26 Oct 2025 02:24:32 GMT"}'
66
+ recorded_at: Sun, 26 Oct 2025 01:24:32 GMT
67
+ recorded_with: VCR 6.3.1