mobilize-america-client 0.3.6 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a8aa2a6520cae7a352ffabce99976284b1348b63f16cdc29d9933fb7b5b0881
4
- data.tar.gz: d5a2a05390fc6f003042d345a16a2bf903cce4e130347207581f2b7ae5178863
3
+ metadata.gz: 12aa69da81126f0f2d45a23926cf1c72f0c50b6043b14be748a67683763a6ba7
4
+ data.tar.gz: cab2e8b1f0b12122d3fbd6ef4752b1f14fe1eac360b58515654af74795a93e47
5
5
  SHA512:
6
- metadata.gz: a58a2cbc1e069b67a845e16db9a8e4954b63b9fb2f0842cf9fc4913974ca9589e16c6fc7d13e767e1b8837cf9711f85e7358e917ad555c53e17d8fd321142ff9
7
- data.tar.gz: c0995119c306cb4e1e96478401a3b91630a52c88990b72c1fe13ce137bd85c5cfe97c8aefbc991c6f601212b420f2d8554a1adfc02a66a3eafebc305fcb3c52d
6
+ metadata.gz: 42e2b43747a196c8a0cdf27dd787e8cc650fddbbf04a44fd0af3cfdc7a163d429aef5790221d590eac87d87e5c2eb7183749417738dddc04c8ad914ca905e1bd
7
+ data.tar.gz: beb749323b9cc4f0e3e019ad7da3b7bef61afac440003f7537939e3f8f1672ff6f9da6bf6688b821217d71d020129e9f4764f5533c17fcf0d320f6ff57f9129f
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.4
1
+ 3.2.0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.6
1
+ 0.4.0
@@ -0,0 +1,9 @@
1
+ module MobilizeAmericaClient
2
+ class Client
3
+ module Enums
4
+ def enums
5
+ get(path: '/enums')
6
+ end
7
+ end
8
+ end
9
+ end
@@ -2,7 +2,8 @@ module MobilizeAmericaClient
2
2
  class Client
3
3
  module Events
4
4
  def organization_events(organization_id:, timeslot_start: nil, timeslot_end: nil, updated_since: nil,
5
- max_distance_miles: nil, page: nil, per_page: nil, zipcode: nil)
5
+ max_distance_miles: nil, page: nil, per_page: nil, zipcode: nil, event_campaign_id: nil,
6
+ tag_ids: nil, event_types: nil, is_virtual: nil, exclude_full: nil)
6
7
  params = {}
7
8
 
8
9
  unless page.nil?
@@ -33,6 +34,26 @@ module MobilizeAmericaClient
33
34
  end
34
35
  end
35
36
 
37
+ unless event_campaign_id.nil?
38
+ params[:event_campaign_id] = event_campaign_id.to_i
39
+ end
40
+
41
+ unless tag_ids.nil? || tag_ids.empty?
42
+ params[:tag_id] = tag_ids.join(',')
43
+ end
44
+
45
+ unless event_types.nil? || event_types.empty?
46
+ params[:event_types] = event_types.join(',')
47
+ end
48
+
49
+ unless is_virtual.nil?
50
+ params[:is_virtual] = is_virtual ? 'true' : 'false'
51
+ end
52
+
53
+ unless exclude_full.nil?
54
+ params[:exclude_full] = exclude_full ? 'true' : 'false'
55
+ end
56
+
36
57
  get(path: "/organizations/#{esc(organization_id)}/events", params: params)
37
58
  end
38
59
  end
@@ -40,5 +61,13 @@ module MobilizeAmericaClient
40
61
  def organization_event(organization_id:, event_id:)
41
62
  get(path: "/organizations/#{esc(organization_id)}/events/#{esc(event_id)}")
42
63
  end
64
+
65
+ def organization_event_attendances(organization_id:, event_id:)
66
+ get(path: "/organizations/#{esc(organization_id)}/events/#{esc(event_id)}/attendances")
67
+ end
68
+
69
+ def create_organization_event_attendance(organization_id:, event_id:, attendance_data:)
70
+ post(path: "/organizations/#{esc(organization_id)}/events/#{esc(event_id)}/attendances", body: attendance_data)
71
+ end
43
72
  end
44
73
  end
@@ -1,4 +1,5 @@
1
1
  require 'faraday'
2
+ require 'mobilize_america_client/client/enums'
2
3
  require 'mobilize_america_client/client/events'
3
4
  require 'mobilize_america_client/client/organizations'
4
5
  require 'mobilize_america_client/request'
@@ -14,10 +15,11 @@ module MobilizeAmericaClient
14
15
 
15
16
  api_domain = options[:api_domain] || API_DOMAIN
16
17
 
17
- @connection = Faraday.new(url: "https://#{api_domain}")
18
+ @connection = Faraday.new(url: "https://#{api_domain}", request: { params_encoder: Faraday::FlatParamsEncoder })
18
19
  end
19
20
 
20
21
  include MobilizeAmericaClient::Request
22
+ include MobilizeAmericaClient::Client::Enums
21
23
  include MobilizeAmericaClient::Client::Events
22
24
  include MobilizeAmericaClient::Client::Organizations
23
25
  end
@@ -6,7 +6,11 @@ module MobilizeAmericaClient
6
6
  API_BASE_PATH = '/v1'.freeze
7
7
 
8
8
  def get(path:, params: {})
9
- request(method: :get, path: path, params: params)
9
+ request(method: :get, path:, params:)
10
+ end
11
+
12
+ def post(path:, body:)
13
+ request(method: :post, path:, body:)
10
14
  end
11
15
 
12
16
  private
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: mobilize-america-client 0.3.6 ruby lib
5
+ # stub: mobilize-america-client 0.4.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "mobilize-america-client".freeze
9
- s.version = "0.3.6"
9
+ s.version = "0.4.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Grey Moore".freeze]
14
- s.date = "2021-09-14"
14
+ s.date = "2023-02-20"
15
15
  s.email = "grey@controlshiftlabs.com".freeze
16
16
  s.executables = ["console".freeze, "setup".freeze]
17
17
  s.extra_rdoc_files = [
@@ -37,12 +37,14 @@ Gem::Specification.new do |s|
37
37
  "example.rb",
38
38
  "lib/mobilize_america_client.rb",
39
39
  "lib/mobilize_america_client/client.rb",
40
+ "lib/mobilize_america_client/client/enums.rb",
40
41
  "lib/mobilize_america_client/client/events.rb",
41
42
  "lib/mobilize_america_client/client/organizations.rb",
42
43
  "lib/mobilize_america_client/errors.rb",
43
44
  "lib/mobilize_america_client/request.rb",
44
45
  "mobilize-america-client.gemspec",
45
46
  "spec/client/client_spec.rb",
47
+ "spec/client/enums_spec.rb",
46
48
  "spec/client/events_spec.rb",
47
49
  "spec/client/organizations_spec.rb",
48
50
  "spec/fixtures/organizations.json",
@@ -50,40 +52,18 @@ Gem::Specification.new do |s|
50
52
  ]
51
53
  s.homepage = "http://github.com/controlshift/mobilize_america_client".freeze
52
54
  s.licenses = ["MIT".freeze]
53
- s.rubygems_version = "3.0.9".freeze
55
+ s.rubygems_version = "3.4.3".freeze
54
56
  s.summary = "Client gem for the MobilizeAmerica API".freeze
55
57
 
56
- if s.respond_to? :specification_version then
57
- s.specification_version = 4
58
+ s.specification_version = 4
58
59
 
59
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
60
- s.add_runtime_dependency(%q<faraday>.freeze, ["> 0.15"])
61
- s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
62
- s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
63
- s.add_development_dependency(%q<rake>.freeze, [">= 0"])
64
- s.add_development_dependency(%q<webmock>.freeze, [">= 0"])
65
- s.add_development_dependency(%q<rubocop>.freeze, [">= 0"])
66
- s.add_development_dependency(%q<dotenv>.freeze, [">= 0"])
67
- s.add_development_dependency(%q<byebug>.freeze, [">= 0"])
68
- else
69
- s.add_dependency(%q<faraday>.freeze, ["> 0.15"])
70
- s.add_dependency(%q<rspec>.freeze, [">= 0"])
71
- s.add_dependency(%q<juwelier>.freeze, [">= 0"])
72
- s.add_dependency(%q<rake>.freeze, [">= 0"])
73
- s.add_dependency(%q<webmock>.freeze, [">= 0"])
74
- s.add_dependency(%q<rubocop>.freeze, [">= 0"])
75
- s.add_dependency(%q<dotenv>.freeze, [">= 0"])
76
- s.add_dependency(%q<byebug>.freeze, [">= 0"])
77
- end
78
- else
79
- s.add_dependency(%q<faraday>.freeze, ["> 0.15"])
80
- s.add_dependency(%q<rspec>.freeze, [">= 0"])
81
- s.add_dependency(%q<juwelier>.freeze, [">= 0"])
82
- s.add_dependency(%q<rake>.freeze, [">= 0"])
83
- s.add_dependency(%q<webmock>.freeze, [">= 0"])
84
- s.add_dependency(%q<rubocop>.freeze, [">= 0"])
85
- s.add_dependency(%q<dotenv>.freeze, [">= 0"])
86
- s.add_dependency(%q<byebug>.freeze, [">= 0"])
87
- end
60
+ s.add_runtime_dependency(%q<faraday>.freeze, ["> 0.15"])
61
+ s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
62
+ s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
63
+ s.add_development_dependency(%q<rake>.freeze, [">= 0"])
64
+ s.add_development_dependency(%q<webmock>.freeze, [">= 0"])
65
+ s.add_development_dependency(%q<rubocop>.freeze, [">= 0"])
66
+ s.add_development_dependency(%q<dotenv>.freeze, [">= 0"])
67
+ s.add_development_dependency(%q<byebug>.freeze, [">= 0"])
88
68
  end
89
69
 
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe MobilizeAmericaClient::Client::Enums do
4
+ let(:standard_headers) { {'Content-Type' => 'application/json'} }
5
+
6
+ subject { MobilizeAmericaClient::Client.new }
7
+
8
+ let(:base_url) { "https://#{MobilizeAmericaClient::Client::API_DOMAIN}#{MobilizeAmericaClient::Client::API_BASE_PATH}" }
9
+
10
+ describe '#enums' do
11
+ let(:enums_url) { "#{base_url}/enums" }
12
+ let(:response) { {'hello' => 'world'} }
13
+
14
+ it 'should call the endpoint and return JSON' do
15
+ stub_request(:get, enums_url).with(headers: standard_headers).to_return(body: response.to_json)
16
+ expect(subject.enums).to eq response
17
+ end
18
+ end
19
+ end
@@ -75,6 +75,41 @@ RSpec.describe MobilizeAmericaClient::Client::Events do
75
75
  .to_return(body: response.to_json)
76
76
  expect(subject.organization_events(organization_id: org_id, page: 2, per_page: 100)).to eq(response)
77
77
  end
78
+
79
+ it 'should support an event campaign id parameter' do
80
+ stub_request(:get, events_url)
81
+ .with(headers: standard_headers, query: {event_campaign_id: 1})
82
+ .to_return(body: response.to_json)
83
+ expect(subject.organization_events(organization_id: org_id, event_campaign_id: 1)).to eq(response)
84
+ end
85
+
86
+ it 'should support a tag ids parameter' do
87
+ stub_request(:get, events_url)
88
+ .with(headers: standard_headers, query: {tag_id: 'foo,bar'})
89
+ .to_return(body: response.to_json)
90
+ expect(subject.organization_events(organization_id: org_id, tag_ids: ['foo', 'bar'])).to eq(response)
91
+ end
92
+
93
+ it 'should support an event types parameter' do
94
+ stub_request(:get, events_url)
95
+ .with(headers: standard_headers, query: {event_types: 'foo,bar'})
96
+ .to_return(body: response.to_json)
97
+ expect(subject.organization_events(organization_id: org_id, event_types: ['foo', 'bar'])).to eq(response)
98
+ end
99
+
100
+ it 'should support a virtual parameter' do
101
+ stub_request(:get, events_url)
102
+ .with(headers: standard_headers, query: {is_virtual: true})
103
+ .to_return(body: response.to_json)
104
+ expect(subject.organization_events(organization_id: org_id, is_virtual: true)).to eq(response)
105
+ end
106
+
107
+ it 'should support an exclude full parameter' do
108
+ stub_request(:get, events_url)
109
+ .with(headers: standard_headers, query: {exclude_full: true})
110
+ .to_return(body: response.to_json)
111
+ expect(subject.organization_events(organization_id: org_id, exclude_full: true)).to eq(response)
112
+ end
78
113
  end
79
114
 
80
115
  describe '#organization_event' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobilize-america-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grey Moore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-14 00:00:00.000000000 Z
11
+ date: 2023-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -150,12 +150,14 @@ files:
150
150
  - example.rb
151
151
  - lib/mobilize_america_client.rb
152
152
  - lib/mobilize_america_client/client.rb
153
+ - lib/mobilize_america_client/client/enums.rb
153
154
  - lib/mobilize_america_client/client/events.rb
154
155
  - lib/mobilize_america_client/client/organizations.rb
155
156
  - lib/mobilize_america_client/errors.rb
156
157
  - lib/mobilize_america_client/request.rb
157
158
  - mobilize-america-client.gemspec
158
159
  - spec/client/client_spec.rb
160
+ - spec/client/enums_spec.rb
159
161
  - spec/client/events_spec.rb
160
162
  - spec/client/organizations_spec.rb
161
163
  - spec/fixtures/organizations.json
@@ -179,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
179
181
  - !ruby/object:Gem::Version
180
182
  version: '0'
181
183
  requirements: []
182
- rubygems_version: 3.1.6
184
+ rubygems_version: 3.4.3
183
185
  signing_key:
184
186
  specification_version: 4
185
187
  summary: Client gem for the MobilizeAmerica API