doorflow 1.0.0 → 1.1.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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +222 -316
  4. data/bin/post-generate +3 -1
  5. data/doorflow.gemspec +1 -1
  6. data/lib/doorflow/client/credentials_proxy.rb +6 -9
  7. data/lib/doorflow/client/element_sessions_proxy.rb +91 -0
  8. data/lib/doorflow/client.rb +13 -0
  9. data/lib/doorflow/errors/doorflow_error.rb +1 -1
  10. data/lib/doorflow/resources/credential.rb +4 -3
  11. data/lib/doorflow/resources/element_session.rb +28 -0
  12. data/lib/doorflow/webhooks/handler.rb +6 -6
  13. data/lib/doorflow/webhooks/signature_verifier.rb +8 -5
  14. data/lib/doorflow-api/api/accounts_api.rb +1 -1
  15. data/lib/doorflow-api/api/admission_requests_api.rb +2 -2
  16. data/lib/doorflow-api/api/card_designs_api.rb +347 -0
  17. data/lib/doorflow-api/api/card_template_types_api.rb +350 -0
  18. data/lib/doorflow-api/api/card_templates_api.rb +811 -0
  19. data/lib/doorflow-api/api/channels_api.rb +11 -11
  20. data/lib/doorflow-api/api/credential_types_api.rb +1 -1
  21. data/lib/doorflow-api/api/credentials_api.rb +6 -6
  22. data/lib/doorflow-api/api/element_sessions_api.rb +90 -0
  23. data/lib/doorflow-api/api/events_api.rb +2 -2
  24. data/lib/doorflow-api/api/group_reservations_api.rb +68 -5
  25. data/lib/doorflow-api/api/groups_api.rb +1 -1
  26. data/lib/doorflow-api/api/notification_rules_api.rb +7 -7
  27. data/lib/doorflow-api/api/oauth_api.rb +1 -1
  28. data/lib/doorflow-api/api/people_api.rb +7 -7
  29. data/lib/doorflow-api/api/reservations_api.rb +5 -5
  30. data/lib/doorflow-api/api/roles_api.rb +1 -1
  31. data/lib/doorflow-api/api/sites_api.rb +1 -1
  32. data/lib/doorflow-api/api/sync_api.rb +4 -4
  33. data/lib/doorflow-api/api_client.rb +8 -4
  34. data/lib/doorflow-api/api_error.rb +9 -14
  35. data/lib/doorflow-api/api_model_base.rb +1 -1
  36. data/lib/doorflow-api/configuration.rb +1 -1
  37. data/lib/doorflow-api/models/account.rb +1 -1
  38. data/lib/doorflow-api/models/account_passport.rb +1 -1
  39. data/lib/doorflow-api/models/account_reseller.rb +1 -1
  40. data/lib/doorflow-api/models/account_sync.rb +1 -1
  41. data/lib/doorflow-api/models/account_user.rb +1 -1
  42. data/lib/doorflow-api/models/admission_request.rb +1 -1
  43. data/lib/doorflow-api/models/admission_request_door_controller.rb +1 -1
  44. data/lib/doorflow-api/models/admission_request_person.rb +1 -1
  45. data/lib/doorflow-api/models/admit_channel202_response.rb +1 -1
  46. data/lib/doorflow-api/models/admit_person202_response.rb +1 -1
  47. data/lib/doorflow-api/models/admit_person403_response.rb +1 -1
  48. data/lib/doorflow-api/models/admit_person_request.rb +1 -1
  49. data/lib/doorflow-api/models/auto_unlock_channel400_response.rb +1 -1
  50. data/lib/doorflow-api/models/auto_unlock_channel_request.rb +1 -1
  51. data/lib/doorflow-api/models/card_design.rb +243 -0
  52. data/lib/doorflow-api/models/card_design_image_back.rb +179 -0
  53. data/lib/doorflow-api/models/card_design_image_front.rb +179 -0
  54. data/lib/doorflow-api/models/card_design_input.rb +181 -0
  55. data/lib/doorflow-api/models/card_template.rb +475 -0
  56. data/lib/doorflow-api/models/card_template_input.rb +147 -0
  57. data/lib/doorflow-api/models/card_template_input_card_template.rb +347 -0
  58. data/lib/doorflow-api/models/card_template_type.rb +321 -0
  59. data/lib/doorflow-api/models/card_template_type_input.rb +147 -0
  60. data/lib/doorflow-api/models/card_template_type_input_card_template_type.rb +251 -0
  61. data/lib/doorflow-api/models/card_template_type_input_card_template_type_non_printable_zones_inner.rb +183 -0
  62. data/lib/doorflow-api/models/card_template_type_non_printable_zones_inner.rb +188 -0
  63. data/lib/doorflow-api/models/channel.rb +1 -1
  64. data/lib/doorflow-api/models/channel_auto_unlock.rb +1 -1
  65. data/lib/doorflow-api/models/channel_lockdown.rb +1 -1
  66. data/lib/doorflow-api/models/channel_lockdown_aux_lockdown.rb +1 -1
  67. data/lib/doorflow-api/models/channel_lockdown_card_lockdown.rb +1 -1
  68. data/lib/doorflow-api/models/channel_lockdown_rex_lockdown.rb +1 -1
  69. data/lib/doorflow-api/models/channel_mode.rb +1 -1
  70. data/lib/doorflow-api/models/channel_sync.rb +5 -2
  71. data/lib/doorflow-api/models/{create_credential422_response.rb → create_card_design422_response.rb} +5 -5
  72. data/lib/doorflow-api/models/{create_credential422_response_errors.rb → create_card_design422_response_errors.rb} +4 -4
  73. data/lib/doorflow-api/models/credential.rb +4 -4
  74. data/lib/doorflow-api/models/credential_input.rb +1 -1
  75. data/lib/doorflow-api/models/credential_input_person_credential.rb +1 -1
  76. data/lib/doorflow-api/models/credential_type.rb +1 -1
  77. data/lib/doorflow-api/models/credential_update_input.rb +1 -1
  78. data/lib/doorflow-api/models/credential_update_input_person_credential.rb +1 -1
  79. data/lib/doorflow-api/models/{delete_group_reservation200_response.rb → delete_card_design200_response.rb} +4 -4
  80. data/lib/doorflow-api/models/delete_card_template_type409_response.rb +147 -0
  81. data/lib/doorflow-api/models/element_session.rb +192 -0
  82. data/lib/doorflow-api/models/element_session_config.rb +265 -0
  83. data/lib/doorflow-api/models/element_session_error.rb +199 -0
  84. data/lib/doorflow-api/models/element_session_input.rb +271 -0
  85. data/lib/doorflow-api/models/element_session_member.rb +186 -0
  86. data/lib/doorflow-api/models/error.rb +1 -1
  87. data/lib/doorflow-api/models/event.rb +1 -1
  88. data/lib/doorflow-api/models/get_access_token200_response.rb +1 -1
  89. data/lib/doorflow-api/models/get_access_token400_response.rb +1 -1
  90. data/lib/doorflow-api/models/get_access_token401_response.rb +1 -1
  91. data/lib/doorflow-api/models/get_admission_request401_response.rb +1 -1
  92. data/lib/doorflow-api/models/get_admission_request403_response.rb +1 -1
  93. data/lib/doorflow-api/models/get_admission_request404_response.rb +1 -1
  94. data/lib/doorflow-api/models/get_admission_request500_response.rb +1 -1
  95. data/lib/doorflow-api/models/get_token_info200_response.rb +1 -1
  96. data/lib/doorflow-api/models/get_token_info200_response_application.rb +1 -1
  97. data/lib/doorflow-api/models/get_token_info401_response.rb +1 -1
  98. data/lib/doorflow-api/models/group.rb +1 -1
  99. data/lib/doorflow-api/models/group_reservation.rb +1 -1
  100. data/lib/doorflow-api/models/group_reservation_input.rb +1 -1
  101. data/lib/doorflow-api/models/group_reservation_input_group_reservation.rb +1 -1
  102. data/lib/doorflow-api/models/initiate_sync429_response.rb +1 -1
  103. data/lib/doorflow-api/models/linked_file.rb +217 -0
  104. data/lib/doorflow-api/models/list_events400_response.rb +1 -1
  105. data/lib/doorflow-api/models/lockdown_channel_request.rb +1 -1
  106. data/lib/doorflow-api/models/notification_rule.rb +1 -1
  107. data/lib/doorflow-api/models/notification_rule_actions_inner.rb +1 -1
  108. data/lib/doorflow-api/models/notification_rule_conditions_inner.rb +1 -1
  109. data/lib/doorflow-api/models/notification_rule_events_inner.rb +1 -1
  110. data/lib/doorflow-api/models/notification_rule_input.rb +1 -1
  111. data/lib/doorflow-api/models/person.rb +30 -8
  112. data/lib/doorflow-api/models/person_input.rb +1 -1
  113. data/lib/doorflow-api/models/reservation.rb +1 -1
  114. data/lib/doorflow-api/models/reservation_input.rb +1 -1
  115. data/lib/doorflow-api/models/revoke_token403_response.rb +1 -1
  116. data/lib/doorflow-api/models/role.rb +1 -1
  117. data/lib/doorflow-api/models/site.rb +1 -1
  118. data/lib/doorflow-api/models/site_site_ips_inner.rb +1 -1
  119. data/lib/doorflow-api/models/unlock_channel_request.rb +1 -1
  120. data/lib/doorflow-api/version.rb +2 -2
  121. data/lib/doorflow-api.rb +28 -9
  122. data/lib/doorflow.rb +8 -2
  123. metadata +45 -154
  124. data/spec/api/admission_requests_api_spec.rb +0 -47
  125. data/spec/api/channels_api_spec.rb +0 -174
  126. data/spec/api/credential_types_api_spec.rb +0 -49
  127. data/spec/api/group_reservations_api_spec.rb +0 -75
  128. data/spec/api/oauth_api_spec.rb +0 -97
  129. data/spec/doorflow/client_spec.rb +0 -109
  130. data/spec/doorflow_spec.rb +0 -22
  131. data/spec/fixtures/vcr_cassettes/channel/list.yml +0 -70
  132. data/spec/fixtures/vcr_cassettes/channel/retrieve.yml +0 -131
  133. data/spec/fixtures/vcr_cassettes/person/auto_pagination.yml +0 -87
  134. data/spec/fixtures/vcr_cassettes/person/create.yml +0 -64
  135. data/spec/fixtures/vcr_cassettes/person/delete.yml +0 -125
  136. data/spec/fixtures/vcr_cassettes/person/list.yml +0 -90
  137. data/spec/fixtures/vcr_cassettes/person/not_found.yml +0 -62
  138. data/spec/fixtures/vcr_cassettes/person/retrieve.yml +0 -136
  139. data/spec/fixtures/vcr_cassettes/person/update.yml +0 -260
  140. data/spec/fixtures/vcr_cassettes/person/validation_error.yml +0 -62
  141. data/spec/integration/channel_spec.rb +0 -88
  142. data/spec/integration/person_spec.rb +0 -99
  143. data/spec/models/account_passport_spec.rb +0 -42
  144. data/spec/models/account_reseller_spec.rb +0 -60
  145. data/spec/models/account_sync_spec.rb +0 -52
  146. data/spec/models/account_user_spec.rb +0 -54
  147. data/spec/models/admission_request_door_controller_spec.rb +0 -42
  148. data/spec/models/admission_request_person_spec.rb +0 -42
  149. data/spec/models/admission_request_spec.rb +0 -82
  150. data/spec/models/admit_channel202_response_spec.rb +0 -46
  151. data/spec/models/admit_person202_response_spec.rb +0 -46
  152. data/spec/models/admit_person403_response_spec.rb +0 -42
  153. data/spec/models/admit_person_request_spec.rb +0 -36
  154. data/spec/models/auto_unlock_channel400_response_spec.rb +0 -42
  155. data/spec/models/auto_unlock_channel_request_spec.rb +0 -36
  156. data/spec/models/channel_auto_unlock_spec.rb +0 -42
  157. data/spec/models/channel_lockdown_aux_lockdown_spec.rb +0 -36
  158. data/spec/models/channel_lockdown_card_lockdown_spec.rb +0 -36
  159. data/spec/models/channel_lockdown_rex_lockdown_spec.rb +0 -36
  160. data/spec/models/channel_lockdown_spec.rb +0 -54
  161. data/spec/models/channel_mode_spec.rb +0 -52
  162. data/spec/models/channel_sync_spec.rb +0 -46
  163. data/spec/models/create_credential422_response_errors_spec.rb +0 -48
  164. data/spec/models/create_credential422_response_spec.rb +0 -42
  165. data/spec/models/credential_input_person_credential_spec.rb +0 -48
  166. data/spec/models/credential_input_spec.rb +0 -36
  167. data/spec/models/credential_spec.rb +0 -86
  168. data/spec/models/credential_update_input_person_credential_spec.rb +0 -36
  169. data/spec/models/credential_update_input_spec.rb +0 -36
  170. data/spec/models/delete_group_reservation200_response_spec.rb +0 -36
  171. data/spec/models/error_spec.rb +0 -42
  172. data/spec/models/get_access_token200_response_spec.rb +0 -66
  173. data/spec/models/get_access_token400_response_spec.rb +0 -46
  174. data/spec/models/get_access_token401_response_spec.rb +0 -42
  175. data/spec/models/get_admission_request401_response_spec.rb +0 -42
  176. data/spec/models/get_admission_request403_response_spec.rb +0 -42
  177. data/spec/models/get_admission_request404_response_spec.rb +0 -42
  178. data/spec/models/get_admission_request500_response_spec.rb +0 -42
  179. data/spec/models/get_token_info200_response_application_spec.rb +0 -36
  180. data/spec/models/get_token_info200_response_spec.rb +0 -66
  181. data/spec/models/get_token_info401_response_spec.rb +0 -42
  182. data/spec/models/group_reservation_input_group_reservation_spec.rb +0 -54
  183. data/spec/models/group_reservation_input_spec.rb +0 -36
  184. data/spec/models/group_reservation_spec.rb +0 -82
  185. data/spec/models/initiate_sync429_response_spec.rb +0 -52
  186. data/spec/models/list_events400_response_spec.rb +0 -42
  187. data/spec/models/lockdown_channel_request_spec.rb +0 -48
  188. data/spec/models/notification_rule_actions_inner_spec.rb +0 -48
  189. data/spec/models/notification_rule_conditions_inner_spec.rb +0 -48
  190. data/spec/models/notification_rule_events_inner_spec.rb +0 -42
  191. data/spec/models/notification_rule_input_spec.rb +0 -60
  192. data/spec/models/person_input_spec.rb +0 -180
  193. data/spec/models/reservation_input_spec.rb +0 -60
  194. data/spec/models/revoke_token403_response_spec.rb +0 -42
  195. data/spec/models/site_site_ips_inner_spec.rb +0 -36
  196. data/spec/models/unlock_channel_request_spec.rb +0 -36
  197. data/spec/spec_helper.rb +0 -160
@@ -1,125 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: https://api.doorflow.com/api/3/people
6
- body:
7
- encoding: UTF-8
8
- string: '{"first_name":"Delete","last_name":"Me","email":"delete.me.1770318350@example.com"}'
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 201
23
- message: Created
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 19:05:50 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '584'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Etag:
36
- - W/"d3435a6123ab831d40b0d248514f68f1"
37
- Referrer-Policy:
38
- - strict-origin-when-cross-origin
39
- Strict-Transport-Security:
40
- - max-age=31536000; includeSubDomains
41
- Vary:
42
- - Accept-Encoding
43
- - Origin
44
- X-Cache:
45
- - bypass
46
- X-Content-Type-Options:
47
- - nosniff
48
- X-Download-Options:
49
- - noopen
50
- X-Frame-Options:
51
- - ALLOWALL
52
- X-Permitted-Cross-Domain-Policies:
53
- - none
54
- X-Request-Id:
55
- - f99f1a99bd02af39476893a03ea74752
56
- X-Runtime:
57
- - '0.062987'
58
- X-Xss-Protection:
59
- - 1; mode=block
60
- body:
61
- encoding: UTF-8
62
- string: '{"id":981415,"first_name":"Delete","last_name":"Me","salutation":null,"job_title":null,"email":"delete.me.1770318350@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T19:05:50+00:00","updated_at":"2026-02-05T19:05:50+00:00","groups":[],"roles":[]}'
63
- recorded_at: Thu, 05 Feb 2026 19:05:50 GMT
64
- - request:
65
- method: delete
66
- uri: https://api.doorflow.com/api/3/people/981415
67
- body:
68
- encoding: US-ASCII
69
- string: ''
70
- headers:
71
- Content-Type:
72
- - application/json
73
- User-Agent:
74
- - doorflow-ruby/1.0.0
75
- Accept:
76
- - application/json
77
- Authorization:
78
- - "<ACCESS_TOKEN>"
79
- Accept-Encoding:
80
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
81
- response:
82
- status:
83
- code: 200
84
- message: OK
85
- headers:
86
- Date:
87
- - Thu, 05 Feb 2026 19:05:50 GMT
88
- Content-Type:
89
- - application/json; charset=utf-8
90
- Content-Length:
91
- - '15'
92
- Connection:
93
- - keep-alive
94
- Cache-Control:
95
- - max-age=0, private, must-revalidate
96
- Etag:
97
- - W/"1aad36b0fb02621b951649811957ba7a"
98
- Referrer-Policy:
99
- - strict-origin-when-cross-origin
100
- Strict-Transport-Security:
101
- - max-age=31536000; includeSubDomains
102
- Vary:
103
- - Accept-Encoding
104
- - Origin
105
- X-Cache:
106
- - bypass
107
- X-Content-Type-Options:
108
- - nosniff
109
- X-Download-Options:
110
- - noopen
111
- X-Frame-Options:
112
- - ALLOWALL
113
- X-Permitted-Cross-Domain-Policies:
114
- - none
115
- X-Request-Id:
116
- - 17676e4dc5d157d00af29d0b7e66683e
117
- X-Runtime:
118
- - '0.070528'
119
- X-Xss-Protection:
120
- - 1; mode=block
121
- body:
122
- encoding: UTF-8
123
- string: '{"result":"ok"}'
124
- recorded_at: Thu, 05 Feb 2026 19:05:50 GMT
125
- recorded_with: VCR 6.4.0
@@ -1,90 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.doorflow.com/api/3/people?per_page=10
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 19:05:47 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '8838'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Etag:
36
- - W/"a132fce1476428366272e2217fea7a89"
37
- Link:
38
- - <https://api.doorflow.com/api/3/people?page=2&per_page=10>; rel="last", <https://api.doorflow.com/api/3/people?page=2&per_page=10>;
39
- rel="next"
40
- Referrer-Policy:
41
- - strict-origin-when-cross-origin
42
- Strict-Transport-Security:
43
- - max-age=31536000; includeSubDomains
44
- Vary:
45
- - Origin
46
- X-Cache:
47
- - miss
48
- X-Content-Type-Options:
49
- - nosniff
50
- X-Download-Options:
51
- - noopen
52
- X-Frame-Options:
53
- - ALLOWALL
54
- X-Page:
55
- - '1'
56
- X-Per-Page:
57
- - '10'
58
- X-Permitted-Cross-Domain-Policies:
59
- - none
60
- X-Request-Id:
61
- - 2074a04ae610ef554338a7cff41759f5
62
- X-Runtime:
63
- - '0.097676'
64
- X-Total-Results:
65
- - '14'
66
- X-Xss-Protection:
67
- - 1; mode=block
68
- body:
69
- encoding: ASCII-8BIT
70
- string: '[{"id":833760,"first_name":"Benjamin","last_name":"Carter","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"","key_fob_number":"","pin":"5641","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/medium/0556a7e006d9b99b417598589c987df5f57a11b5.png?1723200983","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/thumb/40c3a8b597c01692cc7ebe5c7b08098cc7ef6ef4.png?1723200983","telephone":null,"notes":"Updated
71
- at 2026-02-05 15:52:28 +0000","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:22+01:00","updated_at":"2026-02-05T15:52:28+00:00","groups":[],"roles":[],"credentials":[{"id":"wmsd1rM","credential_type_id":852,"label":"Credentials
72
- number","person_id":833760,"value":""},{"id":"6ps3Ob9","credential_type_id":854,"label":"Pin","person_id":833760,"value":"5641"},{"id":"qKsXq1N","credential_type_id":853,"label":"Key
73
- fob number","person_id":833760,"value":""}]},{"id":833761,"first_name":"Charlotte","last_name":"Smith","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"5445784562","key_fob_number":"","pin":"","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833761/medium/abffec982cf4b473a8dc82ec666f91e6d10acf2e.png?1723200985","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833761/thumb/9aee440af8519c41591f0b63579d229e95a7a22d.png?1723200985","telephone":null,"notes":"","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:24+01:00","updated_at":"2024-08-09T18:55:14+01:00","groups":[],"roles":[],"credentials":[{"id":"kEsq32X","credential_type_id":853,"label":"Key
74
- fob number","person_id":833761,"value":""},{"id":"Z0sDYMg","credential_type_id":852,"label":"Credentials
75
- number","person_id":833761,"value":"5445784562"},{"id":"7DsJqMW","credential_type_id":854,"label":"Pin","person_id":833761,"value":""}]},{"id":833762,"first_name":"Alice","last_name":"Johnson","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"5945154368","key_fob_number":"","pin":"","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833762/medium/ff125b29a4d0907d79b8c254269ffb2b46f8fbd1.png?1723200986","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833762/thumb/c669abfc3a307debcab2957b90c154f80008c141.png?1723200986","telephone":null,"notes":"","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:26+01:00","updated_at":"2024-08-09T18:55:14+01:00","groups":[],"roles":[],"credentials":[{"id":"LNsmbNG","credential_type_id":852,"label":"Credentials
76
- number","person_id":833762,"value":"5945154368"},{"id":"j9s6kD6","credential_type_id":854,"label":"Pin","person_id":833762,"value":""},{"id":"XXsLekR","credential_type_id":853,"label":"Key
77
- fob number","person_id":833762,"value":""}]},{"id":871994,"first_name":"Terry","last_name":"Doe","salutation":"","job_title":"","email":"simonpreed+newdeveloper@gmail.com","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"","key_fob_number":null,"pin":"","mobile":"","image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":"","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-11-22T08:42:58+00:00","updated_at":"2025-01-28T11:00:44+00:00","groups":[64660,64661],"roles":[],"credentials":[{"id":"VZsQOgK","credential_type_id":856,"label":"Mobile
78
- Access","person_id":871994,"status":"invited","url":"https://redeem.passflow.io/passes/jzUNDP"},{"id":"qKsZQM0","credential_type_id":854,"label":"Pin","person_id":871994,"value":""},{"id":"OrsWeJ6","credential_type_id":852,"label":"Credentials
79
- number","person_id":871994,"value":""}]},{"id":970890,"first_name":"Alice","last_name":"Smith","salutation":null,"job_title":"Senior
80
- Developer","email":"alice.smith@example.com","organisation_id":null,"system_id":"1","department":"Engineering","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":"3391","mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":"Team
81
- lead for the mobile app project","barcode":null,"custom_1":"premium","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:15+00:00","updated_at":"2026-02-04T15:56:16+00:00","groups":[],"roles":[],"credentials":[{"id":"kEsQGLn","credential_type_id":856,"label":"Mobile
82
- Access","person_id":970890,"status":"invited","url":"https://redeem.passflow.io/passes/YNUBjqD"},{"id":"eysq3v2","credential_type_id":854,"label":"Pin","person_id":970890,"value":"3391"}]},{"id":970891,"first_name":"Hughw","last_name":"Johnson","salutation":null,"job_title":"Account
83
- Executive","email":"bob.johnson@example.com","organisation_id":null,"system_id":"2","department":"Sales","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":"+15551003","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/970891/medium/7d4a5eea0e1caeb80cf01c41d97f85635ff64365.png?1770284353","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/970891/thumb/6f2b2a0782c34f83eae1b990116ce5c087b39ed4.png?1770284353","telephone":null,"notes":"","barcode":null,"custom_1":"standard","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:16+00:00","updated_at":"2026-02-05T09:39:13+00:00","groups":[64660,64661],"roles":[],"credentials":[{"id":"eysYKDy","credential_type_id":856,"label":"Mobile
84
- Access","person_id":970891,"status":"invited","url":"https://redeem.passflow.io/passes/BaUgVG3"}]},{"id":970892,"first_name":"Carol","last_name":"Williams","salutation":null,"job_title":"DevOps
85
- Engineer","email":"carol.williams@example.com","organisation_id":null,"system_id":"3","department":"Engineering","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":"On-call
86
- rotation lead","barcode":null,"custom_1":"premium","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:16+00:00","updated_at":"2026-02-04T19:02:53+00:00","groups":[64661],"roles":[],"credentials":[]},{"id":970894,"first_name":"Eva","last_name":"Martinez","salutation":null,"job_title":"Office
87
- Manager","email":"eva.martinez@example.com","organisation_id":null,"system_id":"4","department":"Operations","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":"standard","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:16+00:00","updated_at":"2026-02-04T15:56:17+00:00","groups":[],"roles":[],"credentials":[{"id":"r4svzR4","credential_type_id":856,"label":"Mobile
88
- Access","person_id":970894,"status":"invited","url":"https://redeem.passflow.io/passes/rJUkpeX"}]},{"id":981358,"first_name":"John","last_name":"Doe","salutation":null,"job_title":null,"email":"john.doe@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T15:33:11+00:00","updated_at":"2026-02-05T15:33:11+00:00","groups":[],"roles":[],"credentials":[]},{"id":981360,"first_name":"Test","last_name":"User","salutation":null,"job_title":null,"email":"test.user.1770306464@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T15:47:45+00:00","updated_at":"2026-02-05T15:47:45+00:00","groups":[],"roles":[],"credentials":[]}]'
89
- recorded_at: Thu, 05 Feb 2026 19:05:47 GMT
90
- recorded_with: VCR 6.4.0
@@ -1,62 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.doorflow.com/api/3/people/nonexistent_id_12345
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 404
23
- message: Not Found
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 19:05:51 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '95'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - no-cache
35
- Referrer-Policy:
36
- - strict-origin-when-cross-origin
37
- Strict-Transport-Security:
38
- - max-age=31536000; includeSubDomains
39
- Vary:
40
- - Origin
41
- X-Cache:
42
- - miss
43
- X-Content-Type-Options:
44
- - nosniff
45
- X-Download-Options:
46
- - noopen
47
- X-Frame-Options:
48
- - ALLOWALL
49
- X-Permitted-Cross-Domain-Policies:
50
- - none
51
- X-Request-Id:
52
- - 4f5ee1ae8c727f11e64420344dc18368
53
- X-Runtime:
54
- - '0.014988'
55
- X-Xss-Protection:
56
- - 1; mode=block
57
- body:
58
- encoding: UTF-8
59
- string: '{"error":"The resource you requested could not be found, please check
60
- your url and try again."}'
61
- recorded_at: Thu, 05 Feb 2026 19:05:51 GMT
62
- recorded_with: VCR 6.4.0
@@ -1,136 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.doorflow.com/api/3/people?per_page=1
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 19:05:48 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '1133'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Etag:
36
- - W/"0fc99b05bf03337d3799164a42f5ca8c"
37
- Link:
38
- - <https://api.doorflow.com/api/3/people?page=14&per_page=1>; rel="last", <https://api.doorflow.com/api/3/people?page=2&per_page=1>;
39
- rel="next"
40
- Referrer-Policy:
41
- - strict-origin-when-cross-origin
42
- Strict-Transport-Security:
43
- - max-age=31536000; includeSubDomains
44
- Vary:
45
- - Origin
46
- X-Cache:
47
- - miss
48
- X-Content-Type-Options:
49
- - nosniff
50
- X-Download-Options:
51
- - noopen
52
- X-Frame-Options:
53
- - ALLOWALL
54
- X-Page:
55
- - '1'
56
- X-Per-Page:
57
- - '1'
58
- X-Permitted-Cross-Domain-Policies:
59
- - none
60
- X-Request-Id:
61
- - a0fac87e86b3756dc296566d4d397646
62
- X-Runtime:
63
- - '0.095131'
64
- X-Total-Results:
65
- - '14'
66
- X-Xss-Protection:
67
- - 1; mode=block
68
- body:
69
- encoding: ASCII-8BIT
70
- string: '[{"id":833760,"first_name":"Benjamin","last_name":"Carter","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"","key_fob_number":"","pin":"5641","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/medium/0556a7e006d9b99b417598589c987df5f57a11b5.png?1723200983","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/thumb/40c3a8b597c01692cc7ebe5c7b08098cc7ef6ef4.png?1723200983","telephone":null,"notes":"Updated
71
- at 2026-02-05 15:52:28 +0000","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:22+01:00","updated_at":"2026-02-05T15:52:28+00:00","groups":[],"roles":[],"credentials":[{"id":"wmsd1rM","credential_type_id":852,"label":"Credentials
72
- number","person_id":833760,"value":""},{"id":"6ps3Ob9","credential_type_id":854,"label":"Pin","person_id":833760,"value":"5641"},{"id":"qKsXq1N","credential_type_id":853,"label":"Key
73
- fob number","person_id":833760,"value":""}]}]'
74
- recorded_at: Thu, 05 Feb 2026 19:05:48 GMT
75
- - request:
76
- method: get
77
- uri: https://api.doorflow.com/api/3/people/833760
78
- body:
79
- encoding: US-ASCII
80
- string: ''
81
- headers:
82
- Content-Type:
83
- - application/json
84
- User-Agent:
85
- - doorflow-ruby/1.0.0
86
- Accept:
87
- - application/json
88
- Authorization:
89
- - "<ACCESS_TOKEN>"
90
- Accept-Encoding:
91
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
92
- response:
93
- status:
94
- code: 200
95
- message: OK
96
- headers:
97
- Date:
98
- - Thu, 05 Feb 2026 19:05:48 GMT
99
- Content-Type:
100
- - application/json; charset=utf-8
101
- Content-Length:
102
- - '827'
103
- Connection:
104
- - keep-alive
105
- Cache-Control:
106
- - max-age=0, private, must-revalidate
107
- Etag:
108
- - W/"64b71d631c8d265506386fb3e3c3c4e5"
109
- Referrer-Policy:
110
- - strict-origin-when-cross-origin
111
- Strict-Transport-Security:
112
- - max-age=31536000; includeSubDomains
113
- Vary:
114
- - Origin
115
- X-Cache:
116
- - miss
117
- X-Content-Type-Options:
118
- - nosniff
119
- X-Download-Options:
120
- - noopen
121
- X-Frame-Options:
122
- - ALLOWALL
123
- X-Permitted-Cross-Domain-Policies:
124
- - none
125
- X-Request-Id:
126
- - 5d52b6c3d690848154fefb9f32540893
127
- X-Runtime:
128
- - '0.048389'
129
- X-Xss-Protection:
130
- - 1; mode=block
131
- body:
132
- encoding: UTF-8
133
- string: '{"id":833760,"first_name":"Benjamin","last_name":"Carter","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"","key_fob_number":"","pin":"5641","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/medium/0556a7e006d9b99b417598589c987df5f57a11b5.png?1723200983","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/thumb/40c3a8b597c01692cc7ebe5c7b08098cc7ef6ef4.png?1723200983","telephone":null,"notes":"Updated
134
- at 2026-02-05 15:52:28 +0000","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:22+01:00","updated_at":"2026-02-05T15:52:28+00:00","groups":[],"roles":[]}'
135
- recorded_at: Thu, 05 Feb 2026 19:05:48 GMT
136
- recorded_with: VCR 6.4.0