picturelife 0.0.1 → 0.0.2

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
  SHA1:
3
- metadata.gz: 70cb3e82a2e7a9da6aef56b46beedb101c8dd3a3
4
- data.tar.gz: 814c20f34212c76c3ef2ab463482c045eebc4fb4
3
+ metadata.gz: c6bc0bb122024f1c4ca5652c7c6df24240c519e5
4
+ data.tar.gz: d0c7ec4df6e50f5a4c8e29eb8ba122760f026fda
5
5
  SHA512:
6
- metadata.gz: 7a293f8d2025a200ce2c9eddb7b81b4a8a273771817f9bed148f6a072b12552bec02b883bb562b130b9b84f2f1e3153efcbad3fa779b56418b904fce2198c15c
7
- data.tar.gz: 4f630b5d9a3bf5ff323b32d1a604153c8dab6090be1dea547d6e41ddd9b927104c519c86d9765836ed1c779647ad2ac236c6108fb84853a390a3a3e9dbe50eba
6
+ metadata.gz: 6e2a6f81e86bb75c04d0a7fae1d15951f89efc9c34e3bd1f7f2abd67aad8df000bf9f641ba39d6fe8dcf8c7e8a14e1e3fe363be343689f8dbc0bf261b445bf31
7
+ data.tar.gz: c5754a07bb304733f63746d34f1573af4371190e7e6a318508552623123b06f065bc2fde485aebff179c9eaab259a8485f2ebbde725d9ad0a31a22b7f2862048
data/lib/picturelife.rb CHANGED
@@ -1,8 +1,7 @@
1
1
  require 'cgi'
2
2
  require 'json'
3
- require 'oauth'
4
3
  require 'excon'
5
- require 'net/http'
4
+ require 'net/https'
6
5
  require 'digest/sha2'
7
6
  require 'picturelife/error'
8
7
  require 'picturelife/util'
@@ -12,11 +11,9 @@ require 'picturelife/oauth'
12
11
  require 'picturelife/api'
13
12
  require 'picturelife/ruler'
14
13
 
15
- Excon.defaults[:ssl_verify_peer] = false
16
-
17
14
  include Picturelife::Util
18
15
  include Picturelife::Ruler
19
16
 
20
17
  module Picturelife
21
- VERSION = "0.0.1"
18
+ VERSION = "0.0.2"
22
19
  end
@@ -28,10 +28,20 @@ module Picturelife
28
28
  def api_get(uri)
29
29
  uri = URI(URI.encode(uri))
30
30
  response = Net::HTTP.get(uri)
31
- response = JSON.parse(response)
31
+ response = parse_response(response)
32
32
  raise ApiError.new(response["status"], response["error"], response) if (response["status"] != 20000 && response["status"] != 200)
33
33
  response
34
34
  end
35
+
36
+ def parse_response(string)
37
+ error_response = {
38
+ 'status' => -1,
39
+ 'error' => string.to_s
40
+ }
41
+
42
+ JSON.parse(response) rescue error_response
43
+ end
44
+
35
45
  end
36
46
  end
37
47
  end
@@ -5,6 +5,8 @@ module Picturelife
5
5
  attr_accessor :access_token
6
6
  attr_accessor :refresh_token
7
7
  attr_reader :redirect_uri
8
+ attr_reader :token_expires
9
+ attr_reader :user_id
8
10
 
9
11
  def redirect_uri=(uri)
10
12
  @redirect_uri = escape_uri(uri)
@@ -30,6 +32,8 @@ module Picturelife
30
32
  def reset_authentication!
31
33
  @access_token = nil
32
34
  @refresh_token = nil
35
+ @token_expires = nil
36
+ @user_id = nil
33
37
  end
34
38
  end
35
39
  end
@@ -41,7 +41,7 @@ module Picturelife
41
41
  end
42
42
 
43
43
  private
44
-
44
+
45
45
  def api_oauth_get(uri)
46
46
  uri = URI(URI.encode(uri))
47
47
  response = Net::HTTP.get(uri)
@@ -49,57 +49,6 @@ module Picturelife
49
49
  raise OAuthError.new(response["error"]) if response["status"] != 200
50
50
  response
51
51
  end
52
- end
53
-
54
-
55
- class OAuth
56
-
57
- attr_accessor :verb, :uri, :body
58
-
59
- def initialize(verb, uri, body)
60
- @verb = verb
61
- @uri = uri
62
- @body = body
63
- end
64
-
65
- def authorization_header
66
- header = "OAuth "
67
- oauth_params.each do |k, v|
68
- header += "#{k}=\"#{v}\", "
69
- end
70
- header.slice(0..-3) # chop off last ", "
71
- end
72
-
73
- private
74
-
75
- def oauth_params
76
- {
77
- 'oauth_timestamp' => Time.now.getutc.to_i.to_s,
78
- 'oauth_token' => escape_uri(Picturelife.access_token),
79
- 'oauth_consumer_key' => Picturelife.client_id,
80
- 'oauth_signature_method' => 'HMAC-SHA1',
81
- 'oauth_signature' => signature,
82
- 'oauth_nonce' => nonce,
83
- 'oauth_version' => '1.0'
84
- }
85
- end
86
-
87
- def signature
88
- body = @body.dup
89
- body['access_token'] = Picturelife.access_token
90
- body = body.map { |k, v| [k.to_s, v.to_s] }
91
- body = body.sort.map { |k, v| escape_uri("#{k}=#{v}") }.join('%26')
92
-
93
- base = [verb, escape_uri(uri), body].join('&')
94
- key = [Picturelife.client_secret, Picturelife.access_token].join('&')
95
- escape_uri(sign(key, base))
96
- end
97
-
98
- def sign(key, base)
99
- digest = OpenSSL::Digest::Digest.new('sha1')
100
- hmac = OpenSSL::HMAC.digest(digest, key, base)
101
- Base64.encode64(hmac).chomp.gsub(/\n/, '')
102
- end
103
52
 
104
53
  end
105
54
  end
@@ -1,6 +1,6 @@
1
1
  module Picturelife
2
2
 
3
- RULER_ENDPOINT = "https://services.picturelife.com/ruler/"
3
+ RULER_ENDPOINT = "https://services.picturelife.com/ruler/"
4
4
 
5
5
  module Ruler
6
6
 
@@ -23,10 +23,6 @@ module Picturelife
23
23
  @client_uuid ||= rand(10**10).to_s
24
24
  end
25
25
 
26
- def nonce
27
- rand(10**10).to_s
28
- end
29
-
30
26
  def get_signature(file_path)
31
27
  Digest::SHA256.hexdigest File.read(file_path)
32
28
  end
data/picturelife.gemspec CHANGED
@@ -20,7 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency 'json'
22
22
  spec.add_dependency 'excon'
23
- spec.add_dependency 'oauth'
24
23
 
25
24
  spec.add_development_dependency 'bundler'
26
25
  spec.add_development_dependency 'rake'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: picturelife
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Albert Zak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-06 00:00:00.000000000 Z
11
+ date: 2014-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: oauth
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: bundler
57
43
  requirement: !ruby/object:Gem::Requirement