giddy 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- giddy (0.0.2)
4
+ giddy (0.0.3)
5
5
  httparty (>= 0.11.0)
6
6
  json (>= 1.8.0)
7
7
 
@@ -2,6 +2,7 @@ require 'json'
2
2
  require 'httparty'
3
3
 
4
4
  require "giddy/version"
5
+ require "giddy/exceptions"
5
6
  require "giddy/endpoint"
6
7
  require "giddy/config"
7
8
  require "giddy/mediator"
@@ -20,7 +20,7 @@ module Giddy
20
20
  :Query => { :SearchPhrase => attrs[:query] },
21
21
  :ResultOptions => { :ItemCount => attrs[:limit], :ItemStartNumber => attrs[:start] }
22
22
  }
23
- attrs = attrs[:additional].merge(converted)
23
+ attrs = converted.merge(attrs[:additional])
24
24
  Search.new(@mediator).search_for_images(attrs)
25
25
  end
26
26
 
@@ -0,0 +1,10 @@
1
+ module Giddy
2
+ class ImageNotFound < RuntimeError
3
+ end
4
+
5
+ class InvalidRequest < RuntimeError
6
+ end
7
+
8
+ class InvalidUsernameOrPassword < RuntimeError
9
+ end
10
+ end
@@ -19,7 +19,7 @@ module Giddy
19
19
  }
20
20
  result = fetch "session", nil, nil, :CreateSession, data
21
21
  unless result["ResponseHeader"]["Status"] == "success"
22
- raise "Error authenticating: #{result["ResponseHeader"]}"
22
+ raise error_type(result), "Error authenticating: #{result["ResponseHeader"]}"
23
23
  end
24
24
  @token = result["CreateSessionResult"]["Token"]
25
25
  @secure_token = result["CreateSessionResult"]["SecureToken"]
@@ -40,10 +40,17 @@ module Giddy
40
40
  elsif result["ResponseHeader"]["Status"] == "success"
41
41
  result["#{name}Result"]
42
42
  else
43
- raise "Error fetching #{name}: #{result["ResponseHeader"]}"
43
+ raise error_type(result), "Error fetching #{name}: #{result["ResponseHeader"]}"
44
44
  end
45
45
  end
46
46
 
47
+ def error_type(result)
48
+ statuses = result["ResponseHeader"]["StatusList"].map { |s| s["Code"] }
49
+ return ImageNotFound if statuses.include? "ImageNotFound"
50
+ return InvalidUsernameOrPassword if statuses.include? "InvalidUsernameOrPassword"
51
+ InvalidRequest
52
+ end
53
+
47
54
  def fetch(path, token, bodyname, name, data)
48
55
  body = { :RequestHeader => { :Token => token }, "#{bodyname || name}RequestBody" => data }
49
56
  headers = { 'Content-Type' => 'application/json' }
@@ -1,3 +1,3 @@
1
1
  module Giddy
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: giddy
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brian Muller
@@ -78,6 +78,7 @@ files:
78
78
  - lib/giddy/config.rb
79
79
  - lib/giddy/download.rb
80
80
  - lib/giddy/endpoint.rb
81
+ - lib/giddy/exceptions.rb
81
82
  - lib/giddy/image.rb
82
83
  - lib/giddy/mediator.rb
83
84
  - lib/giddy/search.rb
@@ -96,7 +97,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
97
  requirements:
97
98
  - - ">="
98
99
  - !ruby/object:Gem::Version
99
- hash: 2644968470803126356
100
+ hash: 2639415693075167917
100
101
  segments:
101
102
  - 0
102
103
  version: "0"
@@ -105,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
106
  requirements:
106
107
  - - ">="
107
108
  - !ruby/object:Gem::Version
108
- hash: 2644968470803126356
109
+ hash: 2639415693075167917
109
110
  segments:
110
111
  - 0
111
112
  version: "0"