From f39e7341d7a74f412eb9a82253cb2a9a148d5bef Mon Sep 17 00:00:00 2001 From: Deb Kallina Date: Thu, 26 Mar 2026 15:29:24 -0400 Subject: [PATCH] Add endpoints for headcounts --- examples/endpoints/attendance_type.rb | 6 ++ examples/endpoints/attendance_types.rb | 6 ++ examples/endpoints/event.rb | 6 ++ examples/endpoints/event_time.rb | 6 ++ examples/endpoints/event_times.rb | 6 ++ examples/endpoints/events.rb | 6 ++ examples/endpoints/headcount.rb | 6 ++ examples/endpoints/headcounts.rb | 6 ++ examples/helpers/attendance_types.rb | 17 ++++ examples/helpers/event_times.rb | 23 +++++ examples/helpers/events.rb | 17 ++++ examples/helpers/headcounts.rb | 16 ++++ lib/planning_center/client.rb | 4 + .../endpoints/attendance_types.rb | 23 +++++ lib/planning_center/endpoints/event_times.rb | 23 +++++ lib/planning_center/endpoints/events.rb | 23 +++++ lib/planning_center/endpoints/headcounts.rb | 23 +++++ .../endpoints/attendance_types_spec.rb | 37 ++++++++ .../endpoints/event_times_spec.rb | 37 ++++++++ spec/planning_center/endpoints/events_spec.rb | 37 ++++++++ .../endpoints/headcounts_spec.rb | 37 ++++++++ .../returns_a_attendance_type_object.yml | 90 ++++++++++++++++++ .../_attendance_types/returns_an_array.yml | 90 ++++++++++++++++++ .../returns_attendance_types_objects.yml | 90 ++++++++++++++++++ .../returns_the_correct_number_of_objects.yml | 90 ++++++++++++++++++ .../returns_a_event_time_object.yml | 90 ++++++++++++++++++ .../_event_times/returns_an_array.yml | 90 ++++++++++++++++++ .../returns_event_times_objects.yml | 90 ++++++++++++++++++ .../returns_the_correct_number_of_objects.yml | 90 ++++++++++++++++++ .../_event/returns_a_event_object.yml | 91 +++++++++++++++++++ .../_events/returns_an_array.yml | 91 +++++++++++++++++++ .../_events/returns_events_objects.yml | 91 +++++++++++++++++++ .../returns_the_correct_number_of_objects.yml | 91 +++++++++++++++++++ .../_headcount/returns_a_headcount_object.yml | 90 ++++++++++++++++++ .../_headcounts/returns_an_array.yml | 90 ++++++++++++++++++ .../returns_headcounts_objects.yml | 90 ++++++++++++++++++ .../returns_the_correct_number_of_objects.yml | 90 ++++++++++++++++++ 37 files changed, 1809 insertions(+) create mode 100644 examples/endpoints/attendance_type.rb create mode 100644 examples/endpoints/attendance_types.rb create mode 100644 examples/endpoints/event.rb create mode 100644 examples/endpoints/event_time.rb create mode 100644 examples/endpoints/event_times.rb create mode 100644 examples/endpoints/events.rb create mode 100644 examples/endpoints/headcount.rb create mode 100644 examples/endpoints/headcounts.rb create mode 100644 examples/helpers/attendance_types.rb create mode 100644 examples/helpers/event_times.rb create mode 100644 examples/helpers/events.rb create mode 100644 examples/helpers/headcounts.rb create mode 100644 lib/planning_center/endpoints/attendance_types.rb create mode 100644 lib/planning_center/endpoints/event_times.rb create mode 100644 lib/planning_center/endpoints/events.rb create mode 100644 lib/planning_center/endpoints/headcounts.rb create mode 100644 spec/planning_center/endpoints/attendance_types_spec.rb create mode 100644 spec/planning_center/endpoints/event_times_spec.rb create mode 100644 spec/planning_center/endpoints/events_spec.rb create mode 100644 spec/planning_center/endpoints/headcounts_spec.rb create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_type/returns_a_attendance_type_object.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_an_array.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_attendance_types_objects.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_the_correct_number_of_objects.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_time/returns_a_event_time_object.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_an_array.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_event_times_objects.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_the_correct_number_of_objects.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_event/returns_a_event_object.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_an_array.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_events_objects.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_the_correct_number_of_objects.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcount/returns_a_headcount_object.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_an_array.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_headcounts_objects.yml create mode 100644 spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_the_correct_number_of_objects.yml diff --git a/examples/endpoints/attendance_type.rb b/examples/endpoints/attendance_type.rb new file mode 100644 index 0000000..1702847 --- /dev/null +++ b/examples/endpoints/attendance_type.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +require_relative 'endpoint_helper' + +attendance_type = @client.attendance_type(331_574) +print_attendance_type(attendance_type) diff --git a/examples/endpoints/attendance_types.rb b/examples/endpoints/attendance_types.rb new file mode 100644 index 0000000..079e595 --- /dev/null +++ b/examples/endpoints/attendance_types.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +require_relative 'endpoint_helper' + +attendance_types = @client.attendance_types +print_attendance_types(attendance_types) diff --git a/examples/endpoints/event.rb b/examples/endpoints/event.rb new file mode 100644 index 0000000..79cae3a --- /dev/null +++ b/examples/endpoints/event.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +require_relative 'endpoint_helper' + +event = @client.event(968_614) +print_event(event) diff --git a/examples/endpoints/event_time.rb b/examples/endpoints/event_time.rb new file mode 100644 index 0000000..ba40716 --- /dev/null +++ b/examples/endpoints/event_time.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +require_relative 'endpoint_helper' + +event_time = @client.event_time(57_370_593) +print_event_time(event_time) diff --git a/examples/endpoints/event_times.rb b/examples/endpoints/event_times.rb new file mode 100644 index 0000000..1f19288 --- /dev/null +++ b/examples/endpoints/event_times.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +require_relative 'endpoint_helper' + +event_times = @client.event_times +print_event_times(event_times) diff --git a/examples/endpoints/events.rb b/examples/endpoints/events.rb new file mode 100644 index 0000000..27e7032 --- /dev/null +++ b/examples/endpoints/events.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +require_relative 'endpoint_helper' + +events = @client.events +print_events(events) diff --git a/examples/endpoints/headcount.rb b/examples/endpoints/headcount.rb new file mode 100644 index 0000000..41aa32d --- /dev/null +++ b/examples/endpoints/headcount.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +require_relative 'endpoint_helper' + +headcount = @client.headcount(12_693_102) +print_headcount(headcount) diff --git a/examples/endpoints/headcounts.rb b/examples/endpoints/headcounts.rb new file mode 100644 index 0000000..70ab7c3 --- /dev/null +++ b/examples/endpoints/headcounts.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +require_relative 'endpoint_helper' + +headcounts = @client.headcounts +print_headcounts(headcounts) diff --git a/examples/helpers/attendance_types.rb b/examples/helpers/attendance_types.rb new file mode 100644 index 0000000..6facb59 --- /dev/null +++ b/examples/helpers/attendance_types.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +def print_attendance_types(list) + print_list('attendance_type', 'id', list, %w[data]) +end + +def print_attendance_type(item) + print_item('attendance_type', item, %w[data]) +end + +def attendance_type_columns + %w[ + id + name + limit + ] +end diff --git a/examples/helpers/event_times.rb b/examples/helpers/event_times.rb new file mode 100644 index 0000000..8f0937c --- /dev/null +++ b/examples/helpers/event_times.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +def print_event_times(list) + print_list('event_time', 'id', list, %w[data]) +end + +def print_event_time(item) + print_item('event_time', item, %w[data]) +end + +def event_time_columns + %w[ + id + name + day_of_week + hour + minute + regular_count + guest_count + volunteer_count + total_count + ] +end diff --git a/examples/helpers/events.rb b/examples/helpers/events.rb new file mode 100644 index 0000000..cbca1d1 --- /dev/null +++ b/examples/helpers/events.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +def print_events(list) + print_list('event', 'id', list, %w[data]) +end + +def print_event(item) + print_item('event', item, %w[data]) +end + +def event_columns + %w[ + id + name + frequency + ] +end diff --git a/examples/helpers/headcounts.rb b/examples/helpers/headcounts.rb new file mode 100644 index 0000000..c27d513 --- /dev/null +++ b/examples/helpers/headcounts.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +def print_headcounts(list) + print_list('headcount', 'id', list, %w[data]) +end + +def print_headcount(item) + print_item('headcount', item, %w[data]) +end + +def headcount_columns + %w[ + id + total + ] +end diff --git a/lib/planning_center/client.rb b/lib/planning_center/client.rb index 30995e5..73e70f3 100644 --- a/lib/planning_center/client.rb +++ b/lib/planning_center/client.rb @@ -5,16 +5,20 @@ module PlanningCenter class Client include PlanningCenter::Endpoints::Addresses + include PlanningCenter::Endpoints::AttendanceTypes include PlanningCenter::Endpoints::Campuses include PlanningCenter::Endpoints::DesignationRefunds include PlanningCenter::Endpoints::Donations include PlanningCenter::Endpoints::Emails + include PlanningCenter::Endpoints::Events + include PlanningCenter::Endpoints::EventTimes include PlanningCenter::Endpoints::FieldData include PlanningCenter::Endpoints::FieldDefinitions include PlanningCenter::Endpoints::FieldOptions include PlanningCenter::Endpoints::Funds include PlanningCenter::Endpoints::Groups include PlanningCenter::Endpoints::GroupTypes + include PlanningCenter::Endpoints::Headcounts include PlanningCenter::Endpoints::Households include PlanningCenter::Endpoints::InactiveReasons include PlanningCenter::Endpoints::InKindDonations diff --git a/lib/planning_center/endpoints/attendance_types.rb b/lib/planning_center/endpoints/attendance_types.rb new file mode 100644 index 0000000..8eb540f --- /dev/null +++ b/lib/planning_center/endpoints/attendance_types.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module PlanningCenter + module Endpoints + module AttendanceTypes + def attendance_type(id, params = {}) + get( + "check-ins/v2/attendance_types/#{id}", + params + ) + end + + def attendance_types(params = {}) + # We need to order the attendance_types by a value (created_at being the default), + # because the results are not consistently ordered without it. + get( + 'check-ins/v2/attendance_types', + { order: :created_at }.merge(params) + ) + end + end + end +end diff --git a/lib/planning_center/endpoints/event_times.rb b/lib/planning_center/endpoints/event_times.rb new file mode 100644 index 0000000..17c61bb --- /dev/null +++ b/lib/planning_center/endpoints/event_times.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module PlanningCenter + module Endpoints + module EventTimes + def event_time(id, params = {}) + get( + "check-ins/v2/event_times/#{id}", + params + ) + end + + def event_times(params = {}) + # We need to order the event_times by a value (created_at being the default), + # because the results are not consistently ordered without it. + get( + 'check-ins/v2/event_times', + { order: :created_at }.merge(params) + ) + end + end + end +end diff --git a/lib/planning_center/endpoints/events.rb b/lib/planning_center/endpoints/events.rb new file mode 100644 index 0000000..8b4455b --- /dev/null +++ b/lib/planning_center/endpoints/events.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module PlanningCenter + module Endpoints + module Events + def event(id, params = {}) + get( + "check-ins/v2/events/#{id}", + params + ) + end + + def events(params = {}) + # We need to order the events by a value (created_at being the default), + # because the results are not consistently ordered without it. + get( + 'check-ins/v2/events', + { order: :created_at }.merge(params) + ) + end + end + end +end diff --git a/lib/planning_center/endpoints/headcounts.rb b/lib/planning_center/endpoints/headcounts.rb new file mode 100644 index 0000000..9ff18df --- /dev/null +++ b/lib/planning_center/endpoints/headcounts.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module PlanningCenter + module Endpoints + module Headcounts + def headcount(id, params = {}) + get( + "check-ins/v2/headcounts/#{id}", + params + ) + end + + def headcounts(params = {}) + # We need to order the headcounts by a value (created_at being the default), + # because the results are not consistently ordered without it. + get( + 'check-ins/v2/headcounts', + { order: :created_at }.merge(params) + ) + end + end + end +end diff --git a/spec/planning_center/endpoints/attendance_types_spec.rb b/spec/planning_center/endpoints/attendance_types_spec.rb new file mode 100644 index 0000000..322e2e9 --- /dev/null +++ b/spec/planning_center/endpoints/attendance_types_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe PlanningCenter::Endpoints::AttendanceTypes do + let!(:client) { FactoryBot.build(:client) } + + describe '#attendance_types', :vcr do + before do + @attendance_types = client.attendance_types(per_page: 25).body + end + + it 'returns an array' do + expect(@attendance_types['data']).to be_an(Array) + end + + it 'returns the correct number of objects' do + expect(@attendance_types['data'].count).to eq 1 + end + + it 'returns attendance_types objects' do + expect(@attendance_types['data'].first).to be_a(Hash) + expect(@attendance_types['data'].first['id']).to_not be_nil + end + end + + describe '#attendance_type', :vcr do + before do + @attendance_type = client.attendance_type(331_574).body + end + + it 'returns a attendance_type object' do + expect(@attendance_type).to be_a(Hash) + expect(@attendance_type['data']['id']).to eq('331574') + end + end +end diff --git a/spec/planning_center/endpoints/event_times_spec.rb b/spec/planning_center/endpoints/event_times_spec.rb new file mode 100644 index 0000000..ddcf8a0 --- /dev/null +++ b/spec/planning_center/endpoints/event_times_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe PlanningCenter::Endpoints::EventTimes do + let!(:client) { FactoryBot.build(:client) } + + describe '#event_times', :vcr do + before do + @event_times = client.event_times(per_page: 25).body + end + + it 'returns an array' do + expect(@event_times['data']).to be_an(Array) + end + + it 'returns the correct number of objects' do + expect(@event_times['data'].count).to eq 1 + end + + it 'returns event_times objects' do + expect(@event_times['data'].first).to be_a(Hash) + expect(@event_times['data'].first['id']).to_not be_nil + end + end + + describe '#event_time', :vcr do + before do + @event_time = client.event_time(57_370_593).body + end + + it 'returns a event_time object' do + expect(@event_time).to be_a(Hash) + expect(@event_time['data']['id']).to eq('57370593') + end + end +end diff --git a/spec/planning_center/endpoints/events_spec.rb b/spec/planning_center/endpoints/events_spec.rb new file mode 100644 index 0000000..1e634e9 --- /dev/null +++ b/spec/planning_center/endpoints/events_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe PlanningCenter::Endpoints::Events do + let!(:client) { FactoryBot.build(:client) } + + describe '#events', :vcr do + before do + @events = client.events(per_page: 25).body + end + + it 'returns an array' do + expect(@events['data']).to be_an(Array) + end + + it 'returns the correct number of objects' do + expect(@events['data'].count).to eq 1 + end + + it 'returns events objects' do + expect(@events['data'].first).to be_a(Hash) + expect(@events['data'].first['id']).to_not be_nil + end + end + + describe '#event', :vcr do + before do + @event = client.event(968_614).body + end + + it 'returns a event object' do + expect(@event).to be_a(Hash) + expect(@event['data']['id']).to eq('968614') + end + end +end diff --git a/spec/planning_center/endpoints/headcounts_spec.rb b/spec/planning_center/endpoints/headcounts_spec.rb new file mode 100644 index 0000000..04351b7 --- /dev/null +++ b/spec/planning_center/endpoints/headcounts_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe PlanningCenter::Endpoints::Headcounts do + let!(:client) { FactoryBot.build(:client) } + + describe '#headcounts', :vcr do + before do + @headcounts = client.headcounts(per_page: 25).body + end + + it 'returns an array' do + expect(@headcounts['data']).to be_an(Array) + end + + it 'returns the correct number of objects' do + expect(@headcounts['data'].count).to eq 1 + end + + it 'returns headcounts objects' do + expect(@headcounts['data'].first).to be_a(Hash) + expect(@headcounts['data'].first['id']).to_not be_nil + end + end + + describe '#headcount', :vcr do + before do + @headcount = client.headcount(12_693_102).body + end + + it 'returns a headcount object' do + expect(@headcount).to be_a(Hash) + expect(@headcount['data']['id']).to eq('12693102') + end + end +end diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_type/returns_a_attendance_type_object.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_type/returns_a_attendance_type_object.yml new file mode 100644 index 0000000..66e0502 --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_type/returns_a_attendance_type_object.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/attendance_types/331574?offset=0&per_page=100 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '608' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:16:16 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '4' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"15d6d0fdee27eb316a932ad7f70e9eba" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - 17d0267e-8b57-43e5-bd0c-fdc249a0cba0 + x-runtime: + - '0.035512' + x-cache: + - Miss from cloudfront + via: + - 1.1 a71dc86d67780d7478c72e1b147b8a32.cloudfront.net (CloudFront) + x-amz-cf-pop: + - IAD61-P10 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - 5HJXjV7DDirQ21F21viZX_AwiBGxiLXEZosNADw3ZMJWm-msXlbCUg== + body: + encoding: UTF-8 + string: '{"data":{"type":"AttendanceType","id":"331574","attributes":{"color":"#b2cf74","created_at":"2026-03-26T18:01:29Z","limit":null,"name":"Other","updated_at":"2026-03-26T18:01:29Z"},"relationships":{"event":{"data":{"type":"Event","id":"968614"}}},"links":{"event":"https://api.planningcenteronline.com/check-ins/v2/events/968614","headcounts":"https://api.planningcenteronline.com/check-ins/v2/attendance_types/331574/headcounts","self":"https://api.planningcenteronline.com/check-ins/v2/attendance_types/331574"}},"included":[],"meta":{"can_include":["event"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:16:16 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_an_array.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_an_array.yml new file mode 100644 index 0000000..f79b15e --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_an_array.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/attendance_types?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '615' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:16:15 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '1' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"debca7df99dd6c6d1ee65e78552d1b7a" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - ede9df4b-e3cb-4d8f-9ae7-e45042a44129 + x-runtime: + - '0.041895' + x-cache: + - Miss from cloudfront + via: + - 1.1 f89daa99b6a349030b23247a4977cb5e.cloudfront.net (CloudFront) + x-amz-cf-pop: + - IAD61-P10 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - uSTvRbySMXrdhKXqosM0yGa9yjoX8X7HCl96D2f8HujN-jvEucfNAA== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/attendance_types?offset=0&order=created_at&per_page=25"},"data":[{"type":"AttendanceType","id":"331574","attributes":{"color":"#b2cf74","created_at":"2026-03-26T18:01:29Z","limit":null,"name":"Other","updated_at":"2026-03-26T18:01:29Z"},"relationships":{"event":{"data":{"type":"Event","id":"968614"}}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/attendance_types/331574"}}],"included":[],"meta":{"total_count":1,"count":1,"can_query_by":["id","name"],"can_include":["event"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:16:15 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_attendance_types_objects.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_attendance_types_objects.yml new file mode 100644 index 0000000..b7ee3b9 --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_attendance_types_objects.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/attendance_types?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '615' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:16:15 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '3' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"debca7df99dd6c6d1ee65e78552d1b7a" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - 90e16e6c-ca06-4a3b-8bfd-9f8babfdc1b8 + x-runtime: + - '0.052640' + x-cache: + - Miss from cloudfront + via: + - 1.1 a71dc86d67780d7478c72e1b147b8a32.cloudfront.net (CloudFront) + x-amz-cf-pop: + - IAD61-P10 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - l8pvvMk-uzrVWjiQvv4yW270gBr8xZpqsUtjzQrBEXurOTViFelJ6g== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/attendance_types?offset=0&order=created_at&per_page=25"},"data":[{"type":"AttendanceType","id":"331574","attributes":{"color":"#b2cf74","created_at":"2026-03-26T18:01:29Z","limit":null,"name":"Other","updated_at":"2026-03-26T18:01:29Z"},"relationships":{"event":{"data":{"type":"Event","id":"968614"}}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/attendance_types/331574"}}],"included":[],"meta":{"total_count":1,"count":1,"can_query_by":["id","name"],"can_include":["event"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:16:15 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_the_correct_number_of_objects.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_the_correct_number_of_objects.yml new file mode 100644 index 0000000..d614768 --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_AttendanceTypes/_attendance_types/returns_the_correct_number_of_objects.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/attendance_types?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '615' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:16:15 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '2' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"debca7df99dd6c6d1ee65e78552d1b7a" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - 4944ebf0-f869-4689-8510-1c2507c46576 + x-runtime: + - '0.046659' + x-cache: + - Miss from cloudfront + via: + - 1.1 ee18a1b4e63943353fb077b0d07769f6.cloudfront.net (CloudFront) + x-amz-cf-pop: + - IAD61-P10 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - lwb4PDAR-G-dVTSyAseV1ZHNBjp8y5xuDlMzaRFhAW-5Enp5H-AibA== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/attendance_types?offset=0&order=created_at&per_page=25"},"data":[{"type":"AttendanceType","id":"331574","attributes":{"color":"#b2cf74","created_at":"2026-03-26T18:01:29Z","limit":null,"name":"Other","updated_at":"2026-03-26T18:01:29Z"},"relationships":{"event":{"data":{"type":"Event","id":"968614"}}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/attendance_types/331574"}}],"included":[],"meta":{"total_count":1,"count":1,"can_query_by":["id","name"],"can_include":["event"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:16:15 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_time/returns_a_event_time_object.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_time/returns_a_event_time_object.yml new file mode 100644 index 0000000..3c8f0dc --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_time/returns_a_event_time_object.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/event_times/57370593?offset=0&per_page=100 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '1294' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:28:15 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '4' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"6a57b74be2fb7a6dd47a45220e5f31e0" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - 6b1bdf7d-837d-464c-ae65-c3c69d03e876 + x-runtime: + - '0.051278' + x-cache: + - Miss from cloudfront + via: + - 1.1 4ceb2989b2985c33abee5da8ac0ecbcc.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - ggOcAPrsXZFyJVCTSPkNjLk2Mc4-syYI1uxTRkqN-SV592HiywWBag== + body: + encoding: UTF-8 + string: '{"data":{"type":"EventTime","id":"57370593","attributes":{"created_at":"2026-03-26T17:58:50Z","day_of_week":4,"guest_count":0,"hides_at":"2026-03-26T19:00:00Z","hour":10,"minute":0,"name":null,"regular_count":0,"shows_at":"2026-03-26T15:00:00Z","starts_at":"2026-03-26T17:00:00Z","total_count":0,"updated_at":"2026-03-26T17:58:50Z","volunteer_count":0},"relationships":{"event":{"data":{"type":"Event","id":"968614"}},"event_period":{"data":{"type":"EventPeriod","id":"44557117"}}},"links":{"available_locations":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593/available_locations","check_ins":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593/check_ins","event":"https://api.planningcenteronline.com/check-ins/v2/events/968614","event_period":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593/event_period","headcounts":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593/headcounts","location_event_times":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593/location_event_times","self":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593"}},"included":[],"meta":{"can_include":["event","event_period","headcounts"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:28:15 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_an_array.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_an_array.yml new file mode 100644 index 0000000..87093ee --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_an_array.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/event_times?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '925' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:28:14 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '1' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"8e24789efe1ed888897acf3a4845f5a8" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - 2462f725-dea0-45c6-b839-611834672757 + x-runtime: + - '0.063804' + x-cache: + - Miss from cloudfront + via: + - 1.1 20068bd484823d12a57ecea8a9946b6c.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - 7ep6MsmLUZ845dNt5ebckcvoNAKwIonsqupwRHpTdOEquWMWIhM0Wg== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/event_times?offset=0&order=created_at&per_page=25"},"data":[{"type":"EventTime","id":"57370593","attributes":{"created_at":"2026-03-26T17:58:50Z","day_of_week":4,"guest_count":0,"hides_at":"2026-03-26T19:00:00Z","hour":10,"minute":0,"name":null,"regular_count":0,"shows_at":"2026-03-26T15:00:00Z","starts_at":"2026-03-26T17:00:00Z","total_count":0,"updated_at":"2026-03-26T17:58:50Z","volunteer_count":0},"relationships":{"event":{"data":{"type":"Event","id":"968614"}},"event_period":{"data":{"type":"EventPeriod","id":"44557117"}}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593"}}],"included":[],"meta":{"total_count":1,"count":1,"can_order_by":["starts_at","shows_at"],"can_query_by":["created_at","updated_at"],"can_include":["event","event_period","headcounts"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:28:14 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_event_times_objects.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_event_times_objects.yml new file mode 100644 index 0000000..be9e30e --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_event_times_objects.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/event_times?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '925' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:28:14 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '3' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"8e24789efe1ed888897acf3a4845f5a8" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - 751b703b-9070-46b4-afc2-b17615ad4b6f + x-runtime: + - '0.054712' + x-cache: + - Miss from cloudfront + via: + - 1.1 1f8f39239caa9483a95872353afdef00.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - Exhwv-IeISTBUc8XEMsTqkl_lGItPAvEKAXrZluVcPwysv6aZ_RyfA== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/event_times?offset=0&order=created_at&per_page=25"},"data":[{"type":"EventTime","id":"57370593","attributes":{"created_at":"2026-03-26T17:58:50Z","day_of_week":4,"guest_count":0,"hides_at":"2026-03-26T19:00:00Z","hour":10,"minute":0,"name":null,"regular_count":0,"shows_at":"2026-03-26T15:00:00Z","starts_at":"2026-03-26T17:00:00Z","total_count":0,"updated_at":"2026-03-26T17:58:50Z","volunteer_count":0},"relationships":{"event":{"data":{"type":"Event","id":"968614"}},"event_period":{"data":{"type":"EventPeriod","id":"44557117"}}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593"}}],"included":[],"meta":{"total_count":1,"count":1,"can_order_by":["starts_at","shows_at"],"can_query_by":["created_at","updated_at"],"can_include":["event","event_period","headcounts"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:28:14 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_the_correct_number_of_objects.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_the_correct_number_of_objects.yml new file mode 100644 index 0000000..c3aa0e1 --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_EventTimes/_event_times/returns_the_correct_number_of_objects.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/event_times?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '925' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:28:14 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '2' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"8e24789efe1ed888897acf3a4845f5a8" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - fb723563-6146-41ed-aad9-1aab27113226 + x-runtime: + - '0.044561' + x-cache: + - Miss from cloudfront + via: + - 1.1 b88fda0ef7fc0be68ec5692fdd8f97ec.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - P07D_o7FJqtKcypuCyZWa107wrQ7x0rVhQGcCv7gkP5c34aNgmDkPQ== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/event_times?offset=0&order=created_at&per_page=25"},"data":[{"type":"EventTime","id":"57370593","attributes":{"created_at":"2026-03-26T17:58:50Z","day_of_week":4,"guest_count":0,"hides_at":"2026-03-26T19:00:00Z","hour":10,"minute":0,"name":null,"regular_count":0,"shows_at":"2026-03-26T15:00:00Z","starts_at":"2026-03-26T17:00:00Z","total_count":0,"updated_at":"2026-03-26T17:58:50Z","volunteer_count":0},"relationships":{"event":{"data":{"type":"Event","id":"968614"}},"event_period":{"data":{"type":"EventPeriod","id":"44557117"}}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593"}}],"included":[],"meta":{"total_count":1,"count":1,"can_order_by":["starts_at","shows_at"],"can_query_by":["created_at","updated_at"],"can_include":["event","event_period","headcounts"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:28:14 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_event/returns_a_event_object.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_event/returns_a_event_object.yml new file mode 100644 index 0000000..115eb2c --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_event/returns_a_event_object.yml @@ -0,0 +1,91 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/events/968614?offset=0&per_page=100 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '1460' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:28:15 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '8' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"5e71b4228447f0bbfa504bed7c394e27" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - 831cf293-d2eb-438f-b246-8ff1f7bb9f0c + x-runtime: + - '0.039425' + x-cache: + - Miss from cloudfront + via: + - 1.1 20068bd484823d12a57ecea8a9946b6c.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - py_G81ew9kFeFEl4t4WedxGGecAARiegk9wc-iQZARuZOicS8OnEgw== + body: + encoding: UTF-8 + string: '{"data":{"type":"Event","id":"968614","attributes":{"archived_at":null,"created_at":"2026-03-26T17:58:50Z","enable_services_integration":false,"frequency":"Weekly","integration_key":null,"location_times_enabled":true,"name":"9 + am Service","pre_select_enabled":true,"updated_at":"2026-03-26T17:58:51Z"},"relationships":{"campuses":{"data":[]}},"links":{"attendance_types":"https://api.planningcenteronline.com/check-ins/v2/events/968614/attendance_types","campuses":"https://api.planningcenteronline.com/check-ins/v2/events/968614/campuses","check_ins":"https://api.planningcenteronline.com/check-ins/v2/events/968614/check_ins","current_event_times":"https://api.planningcenteronline.com/check-ins/v2/events/968614/current_event_times","event_labels":"https://api.planningcenteronline.com/check-ins/v2/events/968614/event_labels","event_periods":"https://api.planningcenteronline.com/check-ins/v2/events/968614/event_periods","integration_links":"https://api.planningcenteronline.com/check-ins/v2/events/968614/integration_links","locations":"https://api.planningcenteronline.com/check-ins/v2/events/968614/locations","person_events":"https://api.planningcenteronline.com/check-ins/v2/events/968614/person_events","self":"https://api.planningcenteronline.com/check-ins/v2/events/968614","html":"https://check-ins.planningcenteronline.com/events/968614"}},"included":[],"meta":{"can_include":["attendance_types"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:28:15 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_an_array.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_an_array.yml new file mode 100644 index 0000000..9056fb9 --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_an_array.yml @@ -0,0 +1,91 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/events?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '921' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:28:15 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '5' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"6e9882fd52668d9f65f181312f4ab0d7" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - ae471e9c-e6d0-4d6d-bb10-336c128ed71d + x-runtime: + - '0.050753' + x-cache: + - Miss from cloudfront + via: + - 1.1 2a78cba32e1e70413cb851835f0eb89c.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - VlA52ynl-6jlGgVdD4AJ6azK88ugBBty8tprs3ceA3DlMI5_Sgm7pw== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/events?offset=0&order=created_at&per_page=25"},"data":[{"type":"Event","id":"968614","attributes":{"archived_at":null,"created_at":"2026-03-26T17:58:50Z","enable_services_integration":false,"frequency":"Weekly","integration_key":null,"location_times_enabled":true,"name":"9 + am Service","pre_select_enabled":true,"updated_at":"2026-03-26T17:58:51Z"},"relationships":{"campuses":{"data":[]}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/events/968614","html":"https://check-ins.planningcenteronline.com/events/968614"}}],"included":[],"meta":{"total_count":1,"count":1,"can_order_by":["name","created_at"],"can_query_by":["registration_event_id","id","name"],"can_include":["attendance_types"],"can_filter":["archived","not_archived","for_headcounts","for_registrations","for_campus"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:28:15 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_events_objects.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_events_objects.yml new file mode 100644 index 0000000..8af9258 --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_events_objects.yml @@ -0,0 +1,91 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/events?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '921' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:28:15 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '7' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"6e9882fd52668d9f65f181312f4ab0d7" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - af52ab78-3e60-47d9-8d19-45e2712f74dc + x-runtime: + - '0.044573' + x-cache: + - Miss from cloudfront + via: + - 1.1 94f18d69cd119572e1c08a4f8c671b16.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - zp42y_if3kE4S0stto3zEXWSIJbWbtZzV0wXYi7rP2DVL8syX4T3hg== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/events?offset=0&order=created_at&per_page=25"},"data":[{"type":"Event","id":"968614","attributes":{"archived_at":null,"created_at":"2026-03-26T17:58:50Z","enable_services_integration":false,"frequency":"Weekly","integration_key":null,"location_times_enabled":true,"name":"9 + am Service","pre_select_enabled":true,"updated_at":"2026-03-26T17:58:51Z"},"relationships":{"campuses":{"data":[]}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/events/968614","html":"https://check-ins.planningcenteronline.com/events/968614"}}],"included":[],"meta":{"total_count":1,"count":1,"can_order_by":["name","created_at"],"can_query_by":["registration_event_id","id","name"],"can_include":["attendance_types"],"can_filter":["archived","not_archived","for_headcounts","for_registrations","for_campus"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:28:15 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_the_correct_number_of_objects.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_the_correct_number_of_objects.yml new file mode 100644 index 0000000..3a59bfc --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_Events/_events/returns_the_correct_number_of_objects.yml @@ -0,0 +1,91 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/events?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '921' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:28:15 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '6' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"6e9882fd52668d9f65f181312f4ab0d7" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - a8c606dc-16fd-4d7f-b699-97f161460640 + x-runtime: + - '0.049156' + x-cache: + - Miss from cloudfront + via: + - 1.1 b9e4f54576ef92a1af5dd8e6f47f2916.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - 4bUatL1vB6vrlqLFN6c0FaZOHkkoVOmL0cGNcJv6oAN0P7AmywTFpA== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/events?offset=0&order=created_at&per_page=25"},"data":[{"type":"Event","id":"968614","attributes":{"archived_at":null,"created_at":"2026-03-26T17:58:50Z","enable_services_integration":false,"frequency":"Weekly","integration_key":null,"location_times_enabled":true,"name":"9 + am Service","pre_select_enabled":true,"updated_at":"2026-03-26T17:58:51Z"},"relationships":{"campuses":{"data":[]}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/events/968614","html":"https://check-ins.planningcenteronline.com/events/968614"}}],"included":[],"meta":{"total_count":1,"count":1,"can_order_by":["name","created_at"],"can_query_by":["registration_event_id","id","name"],"can_include":["attendance_types"],"can_filter":["archived","not_archived","for_headcounts","for_registrations","for_campus"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:28:15 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcount/returns_a_headcount_object.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcount/returns_a_headcount_object.yml new file mode 100644 index 0000000..244f3bb --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcount/returns_a_headcount_object.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/headcounts/12693102?offset=0&per_page=100 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '674' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:29:07 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '4' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"a68bce79e9529a0a93d454070d508125" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - 61d5eebe-fb04-4976-8701-35af38a54545 + x-runtime: + - '0.035210' + x-cache: + - Miss from cloudfront + via: + - 1.1 f300b5f0c0ff51593fb31953294424c0.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - pRiDywfT6mhrmdOCTt24-g3HQwZvArXHWvTbGn_e--QpO7G70aUSWw== + body: + encoding: UTF-8 + string: '{"data":{"type":"Headcount","id":"12693102","attributes":{"created_at":"2026-03-26T18:04:34Z","total":100,"updated_at":"2026-03-26T18:04:34Z"},"relationships":{"event_time":{"data":{"type":"EventTime","id":"57370593"}},"attendance_type":{"data":{"type":"AttendanceType","id":"331574"}}},"links":{"attendance_type":"https://api.planningcenteronline.com/check-ins/v2/attendance_types/331574","event_time":"https://api.planningcenteronline.com/check-ins/v2/event_times/57370593","self":"https://api.planningcenteronline.com/check-ins/v2/headcounts/12693102"}},"included":[],"meta":{"can_include":["attendance_type","event_time"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:29:07 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_an_array.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_an_array.yml new file mode 100644 index 0000000..6071905 --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_an_array.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/headcounts?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '734' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:29:07 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '1' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"4cd44e2ae13d7a868c00157506149b81" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - d74db28a-d507-4460-9551-889bc70548ad + x-runtime: + - '0.036325' + x-cache: + - Miss from cloudfront + via: + - 1.1 a914ae2afc6a4cecb4160376b03ff6a2.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - _LG4RODS32hofg_ABUJGUu7h-uewxYAUS5eAFaEitRbfbKfIC7YR6w== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/headcounts?offset=0&order=created_at&per_page=25"},"data":[{"type":"Headcount","id":"12693102","attributes":{"created_at":"2026-03-26T18:04:34Z","total":100,"updated_at":"2026-03-26T18:04:34Z"},"relationships":{"event_time":{"data":{"type":"EventTime","id":"57370593"}},"attendance_type":{"data":{"type":"AttendanceType","id":"331574"}}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/headcounts/12693102"}}],"included":[],"meta":{"total_count":1,"count":1,"can_order_by":["created_at","updated_at","total"],"can_query_by":["created_at","updated_at"],"can_include":["attendance_type","event_time"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:29:07 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_headcounts_objects.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_headcounts_objects.yml new file mode 100644 index 0000000..79050b1 --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_headcounts_objects.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/headcounts?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '734' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:29:07 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '3' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"4cd44e2ae13d7a868c00157506149b81" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - dc117622-306f-4336-875d-211b1cc70497 + x-runtime: + - '0.044653' + x-cache: + - Miss from cloudfront + via: + - 1.1 a147f9c60c162e36df3586fdd9c01478.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - SN6Ve6hSXjOwV42jGkFOOHLC9izzhQseU1C-lHzwl0Ycd6thsD_Scw== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/headcounts?offset=0&order=created_at&per_page=25"},"data":[{"type":"Headcount","id":"12693102","attributes":{"created_at":"2026-03-26T18:04:34Z","total":100,"updated_at":"2026-03-26T18:04:34Z"},"relationships":{"event_time":{"data":{"type":"EventTime","id":"57370593"}},"attendance_type":{"data":{"type":"AttendanceType","id":"331574"}}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/headcounts/12693102"}}],"included":[],"meta":{"total_count":1,"count":1,"can_order_by":["created_at","updated_at","total"],"can_query_by":["created_at","updated_at"],"can_include":["attendance_type","event_time"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:29:07 GMT +recorded_with: VCR 6.2.0 diff --git a/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_the_correct_number_of_objects.yml b/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_the_correct_number_of_objects.yml new file mode 100644 index 0000000..1db073b --- /dev/null +++ b/spec/vcr_cassettes/PlanningCenter_Endpoints_Headcounts/_headcounts/returns_the_correct_number_of_objects.yml @@ -0,0 +1,90 @@ +--- +http_interactions: +- request: + method: get + uri: https://api.planningcenteronline.com/check-ins/v2/headcounts?offset=0&order=created_at&per_page=25 + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.4 + Authorization: + - Bearer pco_tok_c296ec38d90275315e8d346064387a01fc216b6788e4a158f5bb5e3636b8c742363dd639 + response: + status: + code: 200 + message: OK + headers: + content-type: + - application/vnd.api+json; charset=utf-8 + content-length: + - '734' + connection: + - keep-alive + date: + - Thu, 26 Mar 2026 19:29:07 GMT + strict-transport-security: + - max-age=63072000; includeSubDomains + server: + - openresty + x-frame-options: + - SAMEORIGIN + x-xss-protection: + - '0' + x-content-type-options: + - nosniff + x-permitted-cross-domain-policies: + - none + referrer-policy: + - no-referrer-when-downgrade + x-pco-api-auth-method: + - OAuth2 + x-pco-api-request-rate-count: + - '2' + x-pco-api-request-rate-limit: + - '100' + x-pco-api-request-rate-period: + - '20' + x-pco-api-processor: + - ENG_11.2.2 + access-control-allow-credentials: + - 'true' + access-control-expose-headers: + - ETag, Link, X-PCO-API-Auth-Method, X-PCO-API-Request-Rate-Count, X-PCO-API-Request-Rate-Limit, + X-PCO-API-Request-Rate-Period, Retry-After + access-control-allow-headers: + - Accept, Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, + If-Unmodified-Since, Origin, X-Requested-With, X-CSRF-Token, X-PCO-API-Version, + X-PCO-API-Log-Level, X-PCO-API-Tracer-Class, X-PCO-API-Tracer-Secret, X-PCO-API-Delegated-For + access-control-allow-methods: + - GET, POST, PATCH, PUT, DELETE, OPTIONS + access-control-allow-origin: + - "*" + vary: + - Accept + x-pco-api-processed-as-version: + - '2025-05-28' + etag: + - W/"4cd44e2ae13d7a868c00157506149b81" + cache-control: + - max-age=0, private, must-revalidate + x-request-id: + - 8252a7f6-4572-441e-8e70-f7957d895809 + x-runtime: + - '0.036452' + x-cache: + - Miss from cloudfront + via: + - 1.1 4ceb2989b2985c33abee5da8ac0ecbcc.cloudfront.net (CloudFront) + x-amz-cf-pop: + - PHL51-P1 + alt-svc: + - h3=":443"; ma=86400 + x-amz-cf-id: + - sjBeqvOUPKUpevT3CG2sCTlJb57MCYMMGlKXGKwzvCf2JPlRZcM61g== + body: + encoding: UTF-8 + string: '{"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/headcounts?offset=0&order=created_at&per_page=25"},"data":[{"type":"Headcount","id":"12693102","attributes":{"created_at":"2026-03-26T18:04:34Z","total":100,"updated_at":"2026-03-26T18:04:34Z"},"relationships":{"event_time":{"data":{"type":"EventTime","id":"57370593"}},"attendance_type":{"data":{"type":"AttendanceType","id":"331574"}}},"links":{"self":"https://api.planningcenteronline.com/check-ins/v2/headcounts/12693102"}}],"included":[],"meta":{"total_count":1,"count":1,"can_order_by":["created_at","updated_at","total"],"can_query_by":["created_at","updated_at"],"can_include":["attendance_type","event_time"],"parent":{"id":"291418","type":"Organization"}}}' + recorded_at: Thu, 26 Mar 2026 19:29:07 GMT +recorded_with: VCR 6.2.0