onepagecrm 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4adc5612ded228721cf379dbf3c151d1cb69e13c
4
- data.tar.gz: a4e7ccae4fa0db6e08035437a8d33713d87f04ac
2
+ SHA256:
3
+ metadata.gz: 6f43b8af18d61a41037c8f68194d03d919f7474f0dc22ddbf532c0821d52faa0
4
+ data.tar.gz: aaf2df2075abd43f72d288fe2e5e7018b7d9b41bd5e65c2f68a1cde3989292fc
5
5
  SHA512:
6
- metadata.gz: 12c77b6739e38e78ae6ec82e6a18c4a6921580049be07d05f590746bf36f5f16f7eeea3853dafcdb2e5a7d190c4bb4f508dcf4fd271b6a610c5f6e43195b1687
7
- data.tar.gz: ddee2ab11c51a33e4ac4afacf49671a9857bd71aaeb9357d63f935c3864246d74fb1adc0fd1a0c9d15451a7e43b3b23914af0683842b64037c15471a450c66a8
6
+ metadata.gz: 0db66e59769acc854b5a97004ab8f350294487b598ac08b2e53764ec1530910944011702d9a07dede643ef934a1ca7273901583c07adaac3cf06b71ba4d7b351
7
+ data.tar.gz: 57ea63f3882375254073ed092d6ebc55c7eacf2634be5da8490072506282d8e49abcc7fe522128fa231c00474e3a225323caa7ca41c2e0d7b0ed5b3d81345b05
data/.gitignore CHANGED
@@ -13,4 +13,5 @@
13
13
  *.a
14
14
  mkmf.log
15
15
  config.yml
16
+ .idea/
16
17
 
data/Gemfile CHANGED
@@ -2,3 +2,8 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in onepagecrm.gemspec
4
4
  gemspec
5
+
6
+ group :development, :test do
7
+ # Better ruby interpreter
8
+ gem 'pry'
9
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,48 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ onepagecrm (0.2.0)
5
+ faraday
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ coderay (1.1.3)
11
+ faraday (1.7.1)
12
+ faraday-em_http (~> 1.0)
13
+ faraday-em_synchrony (~> 1.0)
14
+ faraday-excon (~> 1.1)
15
+ faraday-httpclient (~> 1.0.1)
16
+ faraday-net_http (~> 1.0)
17
+ faraday-net_http_persistent (~> 1.1)
18
+ faraday-patron (~> 1.0)
19
+ faraday-rack (~> 1.0)
20
+ multipart-post (>= 1.2, < 3)
21
+ ruby2_keywords (>= 0.0.4)
22
+ faraday-em_http (1.0.0)
23
+ faraday-em_synchrony (1.0.0)
24
+ faraday-excon (1.1.0)
25
+ faraday-httpclient (1.0.1)
26
+ faraday-net_http (1.0.1)
27
+ faraday-net_http_persistent (1.2.0)
28
+ faraday-patron (1.0.0)
29
+ faraday-rack (1.0.0)
30
+ method_source (1.0.0)
31
+ multipart-post (2.1.1)
32
+ pry (0.14.1)
33
+ coderay (~> 1.1)
34
+ method_source (~> 1.0)
35
+ rake (10.5.0)
36
+ ruby2_keywords (0.0.5)
37
+
38
+ PLATFORMS
39
+ ruby
40
+
41
+ DEPENDENCIES
42
+ bundler (~> 2.2.18)
43
+ onepagecrm!
44
+ pry
45
+ rake (~> 10.5)
46
+
47
+ BUNDLED WITH
48
+ 2.2.18
data/README.md CHANGED
@@ -23,7 +23,7 @@ You can try out the OnePageCRM gem in an interactive ruby session
23
23
 
24
24
  $ irb
25
25
  irb:> require 'onepagecrm'
26
- irb:> api_client = OnePageCRM.new('peter@xap.ie', 'p3t3r3t3p')
26
+ irb:> api_client = OnePageCRM.new('user_id', 'api_key')
27
27
  irb:> api_client.get('contacts.json')
28
28
  irb:> api_client.post('contacts.json', {'last_name': 'Bravo', 'first_name': 'Johnny'} )
29
29
 
@@ -44,4 +44,4 @@ We welcome any contributions.
44
44
  6. Create a new Pull Request
45
45
 
46
46
  [1]: http://developer.onepagecrm.com
47
- [2]: http://forum.developer.onepagecrm.com
47
+ [2]: http://forum.developer.onepagecrm.com
@@ -1,4 +1,4 @@
1
1
  # Version for OnePageCRM gem
2
2
  class OnePageCRM
3
- VERSION = '0.1.0'
3
+ VERSION = '0.2.0'
4
4
  end
data/lib/onepagecrm.rb CHANGED
@@ -5,24 +5,22 @@ require 'faraday'
5
5
 
6
6
  # OnePageCRM API Client Object
7
7
  class OnePageCRM
8
- def initialize(login = nil, password = nil)
9
- @url = 'https://app.onepagecrm.com/api/v3/'
10
- @conn = Faraday.new(url: @url)
11
- log_in(login, password)
12
- end
13
-
14
- # Log user into API
15
- def log_in(login, password)
16
- params = { login: login, password: password }
17
- auth_data = post('login.json', params)
18
- @uid = auth_data['data']['user_id']
19
- @auth_key = Base64.decode64(auth_data['data']['auth_key'])
8
+ def initialize(user_id, api_key)
9
+ url = 'https://app.onepagecrm.com/api/v3/'
10
+ @conn = Faraday.new(url: url) do |conn|
11
+ conn.adapter Faraday.default_adapter
12
+ conn.basic_auth(user_id, api_key)
13
+ conn.headers.merge!(
14
+ 'Content-Type' => 'application/json',
15
+ 'X-OnePageCRM-UID' => user_id,
16
+ 'X-OnePageCRM-Source' => 'ruby_gem'
17
+ )
18
+ end
20
19
  end
21
20
 
22
21
  # defines get and delete methods
23
22
  %w(get delete).each do |http_method|
24
23
  define_method http_method do |endpoint, params = {}|
25
- @conn.headers = auth_header(http_method, @url + endpoint, params)
26
24
  response = @conn.send(http_method, endpoint, params)
27
25
  JSON.parse response.body
28
26
  end
@@ -31,36 +29,8 @@ class OnePageCRM
31
29
  # Defines put and post methods
32
30
  %w(post put).each do |http_method|
33
31
  define_method http_method do |endpoint, params = {}|
34
- @conn.headers = auth_header(http_method, @url + endpoint, params)
35
32
  response = @conn.send(http_method, endpoint, params.to_json)
36
33
  JSON.parse response.body
37
34
  end
38
35
  end
39
-
40
- # Returns headers required for API authentication
41
- def auth_header(http_method, url, parameters)
42
- http_method = http_method.upcase
43
- op_headers = { 'Content-Type' => 'application/json' }
44
- return op_headers if @uid.nil? || @auth_key.nil?
45
- if parameters.any? && %w(GET DELETE).include?(http_method)
46
- url += '?' + URI.encode_www_form(parameters)
47
- end
48
-
49
- timestamp = Time.now.to_i.to_s
50
- token = create_auth_token(http_method, url, parameters, timestamp)
51
- { 'X-OnePageCRM-UID' => @uid,
52
- 'X-OnePageCRM-TS' => timestamp,
53
- 'X-OnePageCRM-Auth' => token,
54
- 'X-OnePageCRM-Source' => 'ruby_gem'
55
- }.merge op_headers
56
- end
57
-
58
- # Creates the auth token for the X-OnePageCRM-Auth header
59
- def create_auth_token(http_method, request_url, request_body, timestamp)
60
- request_url_hash = Digest::SHA1.hexdigest request_url
61
- request_body_hash = Digest::SHA1.hexdigest request_body.to_json
62
- signature = [@uid, timestamp, http_method.upcase, request_url_hash].join '.'
63
- signature += ('.' + request_body_hash) if %w(POST PUT).include?(http_method)
64
- OpenSSL::HMAC.hexdigest('sha256', @auth_key, signature).to_s
65
- end
66
36
  end
data/onepagecrm.gemspec CHANGED
@@ -18,6 +18,6 @@ Gem::Specification.new do |spec|
18
18
 
19
19
  spec.add_dependency 'faraday'
20
20
 
21
- spec.add_development_dependency 'bundler', '~> 1.7'
22
- spec.add_development_dependency 'rake', '~> 10.0'
21
+ spec.add_development_dependency 'bundler', '~> 2.2.18'
22
+ spec.add_development_dependency 'rake', '~> 10.5'
23
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: onepagecrm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Armstrong
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-27 00:00:00.000000000 Z
11
+ date: 2021-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.7'
33
+ version: 2.2.18
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.7'
40
+ version: 2.2.18
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '10.0'
47
+ version: '10.5'
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: '10.0'
54
+ version: '10.5'
55
55
  description: Basic Gem for the OnePageCRM API
56
56
  email:
57
57
  - devteam@onepagecrm.com
@@ -61,10 +61,10 @@ extra_rdoc_files: []
61
61
  files:
62
62
  - ".gitignore"
63
63
  - Gemfile
64
+ - Gemfile.lock
64
65
  - LICENSE.txt
65
66
  - README.md
66
67
  - Rakefile
67
- - config/config_orig.yml
68
68
  - lib/onepagecrm.rb
69
69
  - lib/onepagecrm/version.rb
70
70
  - onepagecrm.gemspec
@@ -87,10 +87,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  requirements: []
90
- rubyforge_project:
91
- rubygems_version: 2.4.5
90
+ rubygems_version: 3.1.6
92
91
  signing_key:
93
92
  specification_version: 4
94
93
  summary: Basic Gem for OnePageCRM
95
94
  test_files: []
96
- has_rdoc:
@@ -1,2 +0,0 @@
1
- login: "login@example.com"
2
- password: "Password?Goes?Here?Ok?"