myrando 0.0.2 → 0.0.3

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
2
  SHA1:
3
- metadata.gz: 342b4b10703690ed8fef14bfa4cacbde22fc63b5
4
- data.tar.gz: b0ba567316d220050090178010398c4e91732e86
3
+ metadata.gz: aec93bf83dd5b45641e4e960702fe6db107ebce1
4
+ data.tar.gz: b9af4f76673353de8ab2d6172ce2693ade57f8eb
5
5
  SHA512:
6
- metadata.gz: 28aaa1a0a44fa80c34ed17d8882fafa85465de1e6e16c6a9744bd3eda9ff9d8d32c1e19c9b6e9a51e477cd33a56e5f9cab49e7e1adfffd4afe28c06aee540750
7
- data.tar.gz: 337a3e1e2e201f34c6985586b1181511bb9559539115392c78751d1dbcf716121b7d17a4f6922a26850c191fe65385f6825250b5d80a07fcad2ed4dae3cf063e
6
+ metadata.gz: 7f35ebf916baa714adbcd9596a765672c6586397c3fe6d86f962a8428e8e23ccdca1f180471b105f1bc9d793f2a33f7a694d4fb9553f8d3e348232602b37c1d5
7
+ data.tar.gz: ae01d3b534bcf28912a9f986bc68092222fc955ef9e1f4254edd573e1dfc37aa7ac877c1de1888a20aef30ee8a216dfe0c86df5866106c8a82d1f0f1e73c5987
data/lib/myrando.rb CHANGED
@@ -6,10 +6,28 @@ require "uri-handler"
6
6
  module Myrando
7
7
  RANDO_API_URL = "http://rando.ustwo.se"
8
8
 
9
+ class RandoConnection
10
+ include HTTParty
11
+
12
+ def initialize()
13
+ end
14
+
15
+ def get(path)
16
+ opts = { :headers => { 'User-Agent' => "myrando/#{Myrando::VERSION}" } }
17
+ return self.class.get(path, opts)
18
+ end
19
+
20
+ def post(path, body)
21
+ opts = { :body => body, :headers => { 'User-Agent' => "myrando/#{Myrando::VERSION}" } }
22
+ return self.class.post(path, opts)
23
+ end
24
+ end
25
+
9
26
  class MyRando
10
27
  include HTTParty
11
28
  class InvalidParameterError < StandardError; end
12
29
  class ApiError < StandardError; end
30
+
13
31
  attr_accessor :user_info
14
32
 
15
33
  def initialize(options = {})
@@ -17,11 +35,12 @@ module Myrando
17
35
  password = options[:password].to_uri if options [:password].kind_of?(String)
18
36
  raise InvalidParameterError, "MyRando must :username attribute" if username.nil?
19
37
  raise InvalidParameterError, "MyRando must :password attribute" if password.nil?
38
+ @connection = RandoConnection.new()
20
39
  @user_info = login(username, password)
21
40
  end
22
41
 
23
42
  def get_photos(page=1)
24
- resp = self.class.get("#{RANDO_API_URL}/users/#{@user_info[:user_id]}/deliveries/received.json?page=#{page}&auth_token=#{@user_info[:token]}")
43
+ resp = @connection.get("#{RANDO_API_URL}/users/#{@user_info[:user_id]}/deliveries/received.json?page=#{page}&auth_token=#{@user_info[:token]}")
25
44
  if resp.code == 200
26
45
  begin
27
46
  json = MultiJson.decode(resp.body)
@@ -40,7 +59,7 @@ module Myrando
40
59
  end
41
60
 
42
61
  def get_account_status()
43
- resp = self.class.get("#{RANDO_API_URL}/account.json?auth_token=#{@user_info[:token]}")
62
+ resp = @connection.get("#{RANDO_API_URL}/account.json?auth_token=#{@user_info[:token]}")
44
63
  if resp.code == 200
45
64
  begin
46
65
  json = MultiJson.decode(resp.body)
@@ -57,15 +76,17 @@ module Myrando
57
76
  private
58
77
  def login(username, password)
59
78
  body = "user[email]=#{username}&user[password]=#{password}"
60
- resp = self.class.post("#{RANDO_API_URL}/users/sign_in.json", :body => body)
79
+ resp = @connection.post("#{RANDO_API_URL}/users/sign_in.json", body)
61
80
  if resp.code == 200
62
81
  begin
63
82
  json = MultiJson.decode(resp.body)
64
83
  raise ApiError, "Rando returned an error: #{json['error']}" if json.has_key?('error')
65
84
  {:token => json['authentication_token'], :user_id => json['id']}
66
85
  rescue MultiJson::DecodeError
67
- raise ApiError, "Rando returned an error:\nStatus: #{resp.code}\nBody: #{resp.body}"
86
+ raise ApiError, "Error decoding Rando answer"
68
87
  end
88
+ else
89
+ raise ApiError, "Rando return an error: \nStatus: #{resp.code}\n"
69
90
  end
70
91
  end
71
92
 
@@ -1,3 +1,3 @@
1
1
  module Myrando
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: myrando
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ómar Kjartan Yasin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-17 00:00:00.000000000 Z
11
+ date: 2013-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  version: '0'
116
116
  requirements: []
117
117
  rubyforge_project:
118
- rubygems_version: 2.0.0
118
+ rubygems_version: 2.0.3
119
119
  signing_key:
120
120
  specification_version: 4
121
121
  summary: Interact with the Rando API