action_network_rest 0.11.0 → 1.0.1

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: 60ec6a3895471c7d3a0f2a45076fc79e085a215ab5615be1db0f665ad6503106
4
- data.tar.gz: 940276b2e72e63794de66a46d06c549126a446de28f79dc8a8ba5440fd7d4657
3
+ metadata.gz: 5355878d931e7c6fbf1bcd5ada430683620394bff41a99dde769ce322d5c30cf
4
+ data.tar.gz: 547f1c655027bf85fb67d80d4c4c6e8f14ca2627e356b26e96bff757cca5b675
5
5
  SHA512:
6
- metadata.gz: 13a5c4e166e1d6a83c637a7ff70ef0bec3e105d647bf484fd35bd296b11787812fcf6cb7a2d73ad55a60aea7adba1ebb3083170208db3c8132aa94890982f5ba
7
- data.tar.gz: 6436d185b7311fd1dae2c9663f178886a0d1cc9ab5a5fcf956ff001acc1154e5e8ecc0cf978dc441470effc00ce4c01bb919185929036a7dcf7fc93aba041fce
6
+ metadata.gz: '049b936cbf19c3524a64a88bc8aa15a503f1df73f78d8b461592e270f6d35d8e93ece44344ac24bfb0ebbe53af48c287e64c0a9b6202f2964d28fef88df06cda'
7
+ data.tar.gz: ca67c091023c3b106154fbce86967320ed96c6abed28e52f03ca21357bfdb923792f757d0420082dc35583cd1bf753247c24792798fa19c1d5e0deeec39ff175
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.1.2
1
+ 3.2.2
data/README.md CHANGED
@@ -60,6 +60,11 @@ person = client.people.find_by_email(person_email)
60
60
  person_id = person.action_network_id
61
61
  puts person.email_addresses
62
62
 
63
+ # Retrieve a Person's data by their phone_number
64
+ person = client.people.find_by_phone_number('+12223334444')
65
+ person_id = person.action_network_id
66
+ puts person.phone_numbers
67
+
63
68
  # Update a Person
64
69
  client.people.update(person_id, {custom_fields: {custom_id: "12345"}})
65
70
 
@@ -23,15 +23,15 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.required_ruby_version = '>= 2.6'
25
25
 
26
- spec.add_runtime_dependency 'vertebrae', '~> 0.6.0'
26
+ spec.add_runtime_dependency 'vertebrae', '>= 1.0.0'
27
27
 
28
28
  spec.add_development_dependency 'bundler', '~> 2.1'
29
- spec.add_development_dependency 'byebug', '~> 11.1'
29
+ spec.add_development_dependency 'debug', '> 0'
30
30
  spec.add_development_dependency 'dotenv', '~> 2.7'
31
31
  spec.add_development_dependency 'rake', '~> 13.0'
32
32
  spec.add_development_dependency 'rspec', '~> 3.0'
33
- spec.add_development_dependency 'rubocop'
34
- spec.add_development_dependency 'rubocop-performance'
33
+ spec.add_development_dependency 'rubocop', '> 0'
34
+ spec.add_development_dependency 'rubocop-performance', '> 0'
35
35
  spec.add_development_dependency 'webmock', '~> 3.8.3'
36
36
  spec.metadata['rubygems_mfa_required'] = 'true'
37
37
  end
data/bin/rake CHANGED
@@ -15,7 +15,7 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
15
15
  bundle_binstub = File.expand_path('bundle', __dir__)
16
16
 
17
17
  if File.file?(bundle_binstub)
18
- if /This file was generated by Bundler/.match?(File.read(bundle_binstub, 300))
18
+ if File.read(bundle_binstub, 300).include?('This file was generated by Bundler')
19
19
  load(bundle_binstub)
20
20
  else
21
21
  abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
data/bin/rspec CHANGED
@@ -15,7 +15,7 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
15
15
  bundle_binstub = File.expand_path('bundle', __dir__)
16
16
 
17
17
  if File.file?(bundle_binstub)
18
- if /This file was generated by Bundler/.match?(File.read(bundle_binstub, 300))
18
+ if File.read(bundle_binstub, 300).include?('This file was generated by Bundler')
19
19
  load(bundle_binstub)
20
20
  else
21
21
  abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
@@ -3,17 +3,15 @@
3
3
  module ActionNetworkRest
4
4
  class API < Vertebrae::API
5
5
  def setup
6
- connection.stack do |builder|
7
- builder.use Faraday::Request::Multipart
8
- builder.use Faraday::Request::UrlEncoded
6
+ connection.faraday_connection = Faraday.new(connection.configuration.faraday_options) do |f|
7
+ f.request :multipart
8
+ f.request :url_encoded
9
9
 
10
- builder.use Faraday::Response::Logger if ENV['DEBUG']
10
+ f.response :mashify
11
+ f.response :json
11
12
 
12
- builder.use FaradayMiddleware::Mashify
13
- builder.use FaradayMiddleware::ParseJson
14
-
15
- builder.use ActionNetworkRest::Response::RaiseError
16
- builder.adapter connection.configuration.adapter
13
+ f.response :actionnetwork_raise_error
14
+ f.adapter connection.configuration.adapter
17
15
  end
18
16
  end
19
17
  end
@@ -28,7 +28,7 @@ module ActionNetworkRest
28
28
  wait = min_wait * (1.5**tries)
29
29
  new_time = Time.now.to_r
30
30
  if (timestamp + min_wait - new_time).positive?
31
- sleep(wait) # Wait if calling again could excede the rate limit
31
+ sleep(wait) # Wait if calling again could exceed the rate limit
32
32
  tries += 1
33
33
  next # check again
34
34
  end
@@ -46,7 +46,7 @@ module ActionNetworkRest
46
46
  end
47
47
 
48
48
  sleep(wait)
49
- tries += 1 # Exponential back off if got Too Many Requests error reponse
49
+ tries += 1 # Exponential back off if got Too Many Requests error response
50
50
  next
51
51
  end
52
52
  timestamp = Time.now.to_r
@@ -39,6 +39,25 @@ module ActionNetworkRest
39
39
  set_action_network_id_on_object(person_object) if person_object.present?
40
40
  end
41
41
 
42
+ def find_by_phone_number(phone_number)
43
+ # This works for parsing exactly 1 person's info out of the response.
44
+ # The response we get from Action Network is expected to have
45
+ #
46
+ # "_embedded": {
47
+ # "osdi:people": [{
48
+ # "identifiers": [
49
+ # "action_network:c947bcd0-929e-11e3-a2e9-12313d316c29"
50
+ # ....
51
+ # ]
52
+ # }]
53
+ # }
54
+ #
55
+ url_encoded_filter_string = url_escape("phone_number eq '#{phone_number}'")
56
+ response = client.get_request "#{base_path}?filter=#{url_encoded_filter_string}"
57
+ person_object = response.body[:_embedded][osdi_key].first
58
+ set_action_network_id_on_object(person_object) if person_object.present?
59
+ end
60
+
42
61
  def update(id, person_data)
43
62
  people_path = "#{base_path}#{url_escape(id)}"
44
63
  response = client.put_request people_path, person_data
@@ -2,7 +2,7 @@
2
2
 
3
3
  module ActionNetworkRest
4
4
  module Response
5
- class RaiseError < Faraday::Response::Middleware
5
+ class RaiseError < Faraday::Middleware
6
6
  # rubocop:disable Style/GuardClause
7
7
  def on_complete(response)
8
8
  status_code = response[:status].to_i
@@ -44,3 +44,5 @@ module ActionNetworkRest
44
44
  class UsedAllRequestTries < StandardError; end
45
45
  end
46
46
  end
47
+
48
+ Faraday::Response.register_middleware actionnetwork_raise_error: -> { ActionNetworkRest::Response::RaiseError }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActionNetworkRest
4
- VERSION = '0.11.0'
4
+ VERSION = '1.0.1'
5
5
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: action_network_rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grey Moore
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-09-26 00:00:00.000000000 Z
11
+ date: 2023-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vertebrae
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.6.0
19
+ version: 1.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.6.0
26
+ version: 1.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +39,19 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.1'
41
41
  - !ruby/object:Gem::Dependency
42
- name: byebug
42
+ name: debug
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">"
46
46
  - !ruby/object:Gem::Version
47
- version: '11.1'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">"
53
53
  - !ruby/object:Gem::Version
54
- version: '11.1'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: dotenv
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -98,28 +98,28 @@ dependencies:
98
98
  name: rubocop
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - ">"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - ">"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rubocop-performance
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - ">"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - ">"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
@@ -136,7 +136,7 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 3.8.3
139
- description:
139
+ description:
140
140
  email:
141
141
  - grey@controlshiftlabs.com
142
142
  executables: []
@@ -182,7 +182,7 @@ licenses:
182
182
  - MIT
183
183
  metadata:
184
184
  rubygems_mfa_required: 'true'
185
- post_install_message:
185
+ post_install_message:
186
186
  rdoc_options: []
187
187
  require_paths:
188
188
  - lib
@@ -197,8 +197,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
197
197
  - !ruby/object:Gem::Version
198
198
  version: '0'
199
199
  requirements: []
200
- rubygems_version: 3.3.19
201
- signing_key:
200
+ rubygems_version: 3.4.10
201
+ signing_key:
202
202
  specification_version: 4
203
203
  summary: Ruby client for interacting with the ActionNetwork REST API
204
204
  test_files: []