onepagecrm 0.1.0 → 0.2.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
- 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?"