cashstar 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -22,6 +22,11 @@ A Ruby wrapper for the CashStar REST API
22
22
  config.endpoint = 'production or semi-production url'
23
23
  config.format = 'json' #or 'xml'
24
24
  end
25
+
26
+ # Gift Card numbers are not returned by default - only urls to the hosted Gift Card and the associated challenge phrase
27
+ # If you need the gift card number and pin, include the following in your config block:
28
+
29
+ config.return_card_numbers = true
25
30
 
26
31
  # Get all merchants enabled for this account
27
32
  puts Cashstar.merchants
@@ -19,8 +19,6 @@ module Cashstar
19
19
  include Cashstar::Client::Faceplates
20
20
  include Cashstar::Client::Catalog
21
21
  include Cashstar::Client::OrderMethods
22
-
23
-
24
-
22
+ include Cashstar::Client::GiftCardMethods
25
23
  end
26
24
  end
@@ -2,6 +2,12 @@ require 'hashie'
2
2
 
3
3
  module Cashstar
4
4
  class Client
5
+ module GiftCardMethods
6
+ def balance_inquiry
7
+ true
8
+ end
9
+ end
10
+
5
11
  # Defines methods related to a Cashstar Order
6
12
  class GiftCard < Hashie::Dash
7
13
  property :merchant_code, :required => true
@@ -11,8 +17,6 @@ module Cashstar
11
17
  property :challenge_description
12
18
  property :delivery
13
19
  property :message
14
-
15
-
16
20
  end
17
21
 
18
22
  class Delivery < Hashie::Dash
@@ -8,6 +8,10 @@ module Cashstar
8
8
  response = post("/v2/order/", order.to_json)
9
9
  format.to_s.downcase == 'xml' ? response['order'] : response['order']
10
10
  end
11
+
12
+ def return(order)
13
+ true
14
+ end
11
15
  end
12
16
 
13
17
  # Defines methods related to a Cashstar Order
@@ -8,6 +8,7 @@ module Cashstar
8
8
  :username,
9
9
  :password,
10
10
  :endpoint,
11
+ :return_card_numbers,
11
12
  :format,
12
13
  :user_agent,
13
14
  :adapter,
@@ -26,6 +27,10 @@ module Cashstar
26
27
  #
27
28
  # @note This is configurable in case you want to connect to CashStar's test environment at https://api-semiprod.cashstar.com
28
29
  DEFAULT_ENDPOINT = 'https://api-semiprod.cashstar.com'.freeze
30
+
31
+ # By default, we do not pass card numbers and pins back, only url's and challenge codes. This helps default to the most
32
+ # secure mode of usage.
33
+ DEFAULT_RETURN_CARD_NUMBERS = false
29
34
 
30
35
  # The response format appended to the path and sent in the 'Accept' header if none is set
31
36
  #
@@ -49,6 +54,11 @@ module Cashstar
49
54
  def configure
50
55
  yield self
51
56
  end
57
+
58
+ # Convienince method determining if pointed to the test env.
59
+ def test?
60
+ self.endpoint == DEFAULT_ENDPOINT
61
+ end
52
62
 
53
63
  # Create a hash of options and their values
54
64
  def options
@@ -66,6 +76,7 @@ module Cashstar
66
76
  self.format = DEFAULT_FORMAT
67
77
  self.user_agent = DEFAULT_USER_AGENT
68
78
  self.faraday_options = DEFAULT_FARADAY_OPTIONS
79
+ self.return_card_numbers = DEFAULT_RETURN_CARD_NUMBERS
69
80
  self
70
81
  end
71
82
  end
@@ -3,6 +3,7 @@ require 'faraday/request/gateway'
3
3
  require 'faraday/request/basic_auth'
4
4
  require 'faraday/response/raise_http_4xx'
5
5
  require 'faraday/response/raise_http_5xx'
6
+ require 'faraday/response/strip_card_numbers'
6
7
 
7
8
  module Cashstar
8
9
  # @private
@@ -24,6 +25,9 @@ module Cashstar
24
25
  builder.use Faraday::Request::BasicAuth, authentication if authenticated?
25
26
  builder.use Faraday::Request::UrlEncoded
26
27
  builder.use Faraday::Response::RaiseHttp4xx
28
+ unless return_card_numbers
29
+ builder.use Faraday::Response::StripCardNumbers
30
+ end
27
31
  unless options[:raw]
28
32
  case options.fetch(:format, format).to_s.downcase
29
33
  when 'json'
@@ -1,3 +1,3 @@
1
1
  module Cashstar
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -0,0 +1,12 @@
1
+ require 'faraday'
2
+
3
+ module Faraday
4
+ class Response::StripCardNumbers < Response::Middleware
5
+
6
+ def parse(body)
7
+ body["order"]["egc"].delete("egc_number")
8
+ body["order"]["egc"].delete("access_code")
9
+ body
10
+ end
11
+ end
12
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cashstar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-06 00:00:00.000000000Z
12
+ date: 2011-10-17 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hashie
16
- requirement: &70158028059060 !ruby/object:Gem::Requirement
16
+ requirement: &70195147334480 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70158028059060
24
+ version_requirements: *70195147334480
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: faraday
27
- requirement: &70158028058320 !ruby/object:Gem::Requirement
27
+ requirement: &70195147331900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.7.4
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70158028058320
35
+ version_requirements: *70195147331900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: faraday_middleware
38
- requirement: &70158028057800 !ruby/object:Gem::Requirement
38
+ requirement: &70195147328580 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.7.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70158028057800
46
+ version_requirements: *70195147328580
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: multi_json
49
- requirement: &70158028057160 !ruby/object:Gem::Requirement
49
+ requirement: &70195147327440 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.0.0
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70158028057160
57
+ version_requirements: *70195147327440
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: multi_xml
60
- requirement: &70158028056480 !ruby/object:Gem::Requirement
60
+ requirement: &70195147326540 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.4.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70158028056480
68
+ version_requirements: *70195147326540
69
69
  description: CashStar's API provides a simple interface for purchasing and issuing
70
70
  electronic gift cards from a variety of brands
71
71
  email:
@@ -100,6 +100,7 @@ files:
100
100
  - lib/faraday/request/gateway.rb
101
101
  - lib/faraday/response/raise_http_4xx.rb
102
102
  - lib/faraday/response/raise_http_5xx.rb
103
+ - lib/faraday/response/strip_card_numbers.rb
103
104
  homepage: http://www.cashstar.com
104
105
  licenses: []
105
106
  post_install_message: