giddy 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.
@@ -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"