omise 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +18 -6
- data/bin/console +1 -1
- data/lib/omise/all.rb +1 -0
- data/lib/omise/card_list.rb +8 -2
- data/lib/omise/charge.rb +12 -3
- data/lib/omise/config.rb +33 -10
- data/lib/omise/customer.rb +5 -2
- data/lib/omise/dispute.rb +5 -2
- data/lib/omise/document_list.rb +8 -1
- data/lib/omise/http_logger.rb +59 -0
- data/lib/omise/link.rb +2 -0
- data/lib/omise/object.rb +1 -2
- data/lib/omise/recipient.rb +5 -1
- data/lib/omise/refund.rb +9 -2
- data/lib/omise/refund_list.rb +0 -1
- data/lib/omise/resource.rb +21 -7
- data/lib/omise/transfer.rb +9 -2
- data/lib/omise/util.rb +0 -1
- data/lib/omise/vault.rb +1 -3
- data/lib/omise/version.rb +1 -1
- data/lib/omise.rb +1 -1
- data/omise.gemspec +3 -3
- data/test/omise/test_charge.rb +9 -0
- data/test/omise/test_config.rb +24 -0
- data/test/omise/test_http_logger.rb +69 -0
- data/test/support.rb +18 -3
- metadata +20 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26de59160d14b03572bf1697765e0055033bde51
|
4
|
+
data.tar.gz: df763a37a7abeb4f5b8dcf547e6a2042370437ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de7f8dab27de2aacf55c78f55d067c8eb31eec125b05db1a21c150b7229a459f347342a59c23c5b8ac89668a8a47770f24ddf4ed5da8ed071338b4448b347512
|
7
|
+
data.tar.gz: 3f48a5677710a2126aa4af36d38891a2488cc10ba673558c1696f73b5be9a8830130a1d31057ebe3aa3bacfbce6d2004ee02d81b96369df27b1a1e43df30c724
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
An [unreleased] version is not available on rubygems and is subject to changes and must not be considered final. Elements of unreleased list may be edited or removed at any time.
|
4
4
|
|
5
|
+
## [unreleased]
|
6
|
+
|
7
|
+
- [Added] Support to log HTTP requests and responses.
|
8
|
+
- [Added] Rename keys with better names while supporting old methods
|
9
|
+
- [Fix] Avoid circular require warnings when running tests
|
10
|
+
|
5
11
|
## [0.5.0] 2016-11-26
|
6
12
|
|
7
13
|
- [Added] Add search object and filtering api
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
10
|
-
Installing via
|
10
|
+
Installing via rubygems:
|
11
11
|
|
12
12
|
```ruby
|
13
13
|
gem 'omise'
|
@@ -21,7 +21,7 @@ gem 'omise', github: 'omise/omise-ruby'
|
|
21
21
|
|
22
22
|
## Requirements
|
23
23
|
|
24
|
-
Requires ruby 1.9.2 or above, the rest-client and json
|
24
|
+
Requires ruby 1.9.2 or above, the rest-client and json gems.
|
25
25
|
|
26
26
|
## Configuration
|
27
27
|
|
@@ -34,20 +34,20 @@ Omise.api_key = "skey_test_xxxxxxxxxxxxxxxxxxx"
|
|
34
34
|
If you need to use the Token API you also need to set your public key:
|
35
35
|
|
36
36
|
```ruby
|
37
|
-
Omise.
|
37
|
+
Omise.public_api_key = "pkey_test_xxxxxxxxxxxxxxxxxxx"
|
38
38
|
```
|
39
39
|
|
40
40
|
With this set you'll be able to retrieve tokens or create new ones.
|
41
41
|
|
42
|
-
However we recommend using [Omise.js](https://
|
43
|
-
|
42
|
+
However we recommend using [Omise.js](https://github.com/omise/omise.js) to
|
43
|
+
[collect cards](https://www.omise.co/collecting-card-information). When creating a token server side you'll need card data
|
44
44
|
transiting to and from your server and this requires that your organization be
|
45
45
|
PCI compliant.
|
46
46
|
|
47
47
|
### API version
|
48
48
|
|
49
49
|
In case you want to enforce API version the application use, you can specify it
|
50
|
-
by setting the api_version
|
50
|
+
by setting the `api_version`. The version specified by this settings will override
|
51
51
|
the version setting in your account. This is useful if you have multiple
|
52
52
|
environments with different API versions (e.g. development on the latest but
|
53
53
|
production on the older version).
|
@@ -60,6 +60,18 @@ Omise.api_version = "2014-07-27"
|
|
60
60
|
It is highly recommended to set this version to the current version
|
61
61
|
you're using.
|
62
62
|
|
63
|
+
### Logging
|
64
|
+
|
65
|
+
To enable log you can set `Omise.logger` with a Ruby logger. All HTTP requests and responses will be logged.
|
66
|
+
|
67
|
+
To disable log, just configure `Omise.logger` to `nil`. Default is disabled.
|
68
|
+
|
69
|
+
An example configuring Rails logger:
|
70
|
+
|
71
|
+
```ruby
|
72
|
+
Omise.logger = Rails.logger
|
73
|
+
```
|
74
|
+
|
63
75
|
## Quick Start
|
64
76
|
|
65
77
|
After you have implemented [Omise.js](https://gitub.com/omise/omise.js) on your
|
data/bin/console
CHANGED
data/lib/omise/all.rb
CHANGED
data/lib/omise/card_list.rb
CHANGED
@@ -1,14 +1,20 @@
|
|
1
1
|
require "omise/list"
|
2
|
-
require "omise/card"
|
3
|
-
require "omise/token"
|
4
2
|
|
5
3
|
module Omise
|
6
4
|
class CardList < List
|
7
5
|
def retrieve(id, attributes = {})
|
6
|
+
if !defined?(Card)
|
7
|
+
require "omise/card"
|
8
|
+
end
|
9
|
+
|
8
10
|
Card.new self.class.resource(location(id), attributes).get(attributes)
|
9
11
|
end
|
10
12
|
|
11
13
|
def create(attributes = {})
|
14
|
+
if !defined?(Token)
|
15
|
+
require "omise/token"
|
16
|
+
end
|
17
|
+
|
12
18
|
token = Token.create(card: attributes)
|
13
19
|
parent.update(card: token.id)
|
14
20
|
retrieve(token.card.id)
|
data/lib/omise/charge.rb
CHANGED
@@ -1,10 +1,7 @@
|
|
1
1
|
require "omise/object"
|
2
2
|
require "omise/list"
|
3
|
-
require "omise/customer"
|
4
|
-
require "omise/dispute"
|
5
3
|
require "omise/refund_list"
|
6
4
|
require "omise/search_scope"
|
7
|
-
require "omise/transaction"
|
8
5
|
|
9
6
|
module Omise
|
10
7
|
class Charge < OmiseObject
|
@@ -43,14 +40,26 @@ module Omise
|
|
43
40
|
end
|
44
41
|
|
45
42
|
def customer(options = {})
|
43
|
+
if !defined?(Customer)
|
44
|
+
require "omise/customer"
|
45
|
+
end
|
46
|
+
|
46
47
|
expand_attribute Customer, "customer", options
|
47
48
|
end
|
48
49
|
|
49
50
|
def dispute(options = {})
|
51
|
+
if !defined?(Dispute)
|
52
|
+
require "omise/dispute"
|
53
|
+
end
|
54
|
+
|
50
55
|
expand_attribute Dispute, "dispute", options
|
51
56
|
end
|
52
57
|
|
53
58
|
def transaction(options = {})
|
59
|
+
if !defined?(Transaction)
|
60
|
+
require "omise/transaction"
|
61
|
+
end
|
62
|
+
|
54
63
|
expand_attribute Transaction, "transaction", options
|
55
64
|
end
|
56
65
|
|
data/lib/omise/config.rb
CHANGED
@@ -1,35 +1,58 @@
|
|
1
|
+
require "omise/http_logger"
|
1
2
|
require "omise/resource"
|
2
3
|
|
3
4
|
module Omise
|
5
|
+
LIB_PATH = File.expand_path("../../", __FILE__)
|
6
|
+
|
4
7
|
class << self
|
5
|
-
attr_writer :api_key, :vault_key
|
6
8
|
attr_accessor :api_url, :vault_url, :api_version, :resource
|
7
9
|
|
8
|
-
|
9
|
-
|
10
|
+
attr_writer :secret_api_key, :public_api_key
|
11
|
+
|
12
|
+
def secret_api_key
|
13
|
+
get_key :secret_api_key
|
10
14
|
end
|
11
15
|
|
12
|
-
def
|
13
|
-
get_key :
|
16
|
+
def public_api_key
|
17
|
+
get_key :public_api_key
|
18
|
+
end
|
19
|
+
|
20
|
+
# Backward compatibility with old API Keys naming conventions
|
21
|
+
#
|
22
|
+
# Will be removed in 1.0
|
23
|
+
alias_method :api_key, :secret_api_key
|
24
|
+
alias_method :api_key=, :secret_api_key=
|
25
|
+
alias_method :vault_key, :public_api_key
|
26
|
+
alias_method :vault_key=, :public_api_key=
|
27
|
+
|
28
|
+
def logger=(logger)
|
29
|
+
@http_logger = Omise::HTTPLogger.new(logger)
|
30
|
+
end
|
31
|
+
|
32
|
+
def http_logger
|
33
|
+
@http_logger ||= Omise::HTTPLogger.new
|
14
34
|
end
|
15
35
|
|
16
36
|
def test!
|
17
|
-
|
37
|
+
if !defined?(Omise::Testing::Resource)
|
38
|
+
require "omise/testing/resource"
|
39
|
+
end
|
40
|
+
|
18
41
|
self.resource = Omise::Testing::Resource
|
19
42
|
end
|
20
43
|
|
21
44
|
private
|
22
45
|
|
23
46
|
def get_key(name)
|
24
|
-
if key = instance_variable_get("@#{name}
|
47
|
+
if key = instance_variable_get("@#{name}")
|
25
48
|
key
|
26
49
|
else
|
27
|
-
raise "Set Omise.#{name}
|
50
|
+
raise "Set Omise.#{name} to use this feature"
|
28
51
|
end
|
29
52
|
end
|
30
53
|
end
|
31
54
|
|
32
|
-
self.api_url
|
55
|
+
self.api_url = "https://api.omise.co"
|
33
56
|
self.vault_url = "https://vault.omise.co"
|
34
|
-
self.resource
|
57
|
+
self.resource = Resource
|
35
58
|
end
|
data/lib/omise/customer.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require "omise/object"
|
2
|
-
require "omise/card_list"
|
3
|
-
require "omise/charge"
|
4
2
|
require "omise/list"
|
3
|
+
require "omise/card_list"
|
5
4
|
require "omise/search_scope"
|
6
5
|
|
7
6
|
module Omise
|
@@ -37,6 +36,10 @@ module Omise
|
|
37
36
|
end
|
38
37
|
|
39
38
|
def charge(attributes = {})
|
39
|
+
if !defined?(Charge)
|
40
|
+
require "omise/charge"
|
41
|
+
end
|
42
|
+
|
40
43
|
Charge.create(attributes.merge(customer: id))
|
41
44
|
end
|
42
45
|
|
data/lib/omise/dispute.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require "omise/object"
|
2
|
-
require "omise/charge"
|
3
|
-
require "omise/document_list"
|
4
2
|
require "omise/list"
|
3
|
+
require "omise/document_list"
|
5
4
|
require "omise/search_scope"
|
6
5
|
|
7
6
|
module Omise
|
@@ -30,6 +29,10 @@ module Omise
|
|
30
29
|
end
|
31
30
|
|
32
31
|
def charge(options = {})
|
32
|
+
if !defined?(Charge)
|
33
|
+
require "omise/charge"
|
34
|
+
end
|
35
|
+
|
33
36
|
expand_attribute Charge, "charge", options
|
34
37
|
end
|
35
38
|
|
data/lib/omise/document_list.rb
CHANGED
@@ -1,13 +1,20 @@
|
|
1
|
-
require "omise/document"
|
2
1
|
require "omise/list"
|
3
2
|
|
4
3
|
module Omise
|
5
4
|
class DocumentList < List
|
6
5
|
def retrieve(id, attributes = {})
|
6
|
+
if !defined?(Document)
|
7
|
+
require "omise/document"
|
8
|
+
end
|
9
|
+
|
7
10
|
Document.new self.class.resource(location(id), attributes).get(attributes)
|
8
11
|
end
|
9
12
|
|
10
13
|
def upload(file)
|
14
|
+
if !defined?(Document)
|
15
|
+
require "omise/document"
|
16
|
+
end
|
17
|
+
|
11
18
|
attributes = { file: file }
|
12
19
|
Document.new self.class.resource(location, attributes).post(attributes)
|
13
20
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Omise
|
2
|
+
class HTTPLogger
|
3
|
+
LABEL = "[Omise]".freeze
|
4
|
+
|
5
|
+
def initialize(logger = nil)
|
6
|
+
@logger = logger
|
7
|
+
end
|
8
|
+
|
9
|
+
attr_reader :logger
|
10
|
+
|
11
|
+
def log_request(request)
|
12
|
+
info(format_request(request))
|
13
|
+
end
|
14
|
+
|
15
|
+
def log_response(response)
|
16
|
+
info(format_response(response))
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def info(message)
|
22
|
+
return unless @logger
|
23
|
+
|
24
|
+
@logger.info(message)
|
25
|
+
end
|
26
|
+
|
27
|
+
def format_request(request)
|
28
|
+
StringIO.open do |s|
|
29
|
+
s.puts("#{LABEL} Request: #{request.method.to_s.upcase} #{request.url}")
|
30
|
+
s.puts(format_headers(request.processed_headers))
|
31
|
+
s.puts
|
32
|
+
s.puts(format_payload(request.args[:payload])) if request.args[:payload]
|
33
|
+
|
34
|
+
s.string
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def format_response(response)
|
39
|
+
net_http = response.net_http_res
|
40
|
+
|
41
|
+
StringIO.open do |s|
|
42
|
+
s.puts("#{LABEL} Response: HTTP/#{net_http.http_version} #{net_http.code} #{net_http.message}")
|
43
|
+
s.puts(format_headers(net_http.each_capitalized))
|
44
|
+
s.puts
|
45
|
+
s.puts(response.body)
|
46
|
+
|
47
|
+
s.string
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def format_headers(headers)
|
52
|
+
headers.map { |name, value| "#{name}: #{value}" }.join("\n")
|
53
|
+
end
|
54
|
+
|
55
|
+
def format_payload(payload)
|
56
|
+
payload.map { |key, value| "#{key}=#{value}" }.join("&")
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/omise/link.rb
CHANGED
data/lib/omise/object.rb
CHANGED
data/lib/omise/recipient.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require "omise/object"
|
2
|
-
require "omise/
|
2
|
+
require "omise/list"
|
3
3
|
require "omise/search_scope"
|
4
4
|
|
5
5
|
module Omise
|
@@ -35,6 +35,10 @@ module Omise
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def bank_account
|
38
|
+
if !defined?(BankAccount)
|
39
|
+
require "omise/bank_account"
|
40
|
+
end
|
41
|
+
|
38
42
|
expand_attribute BankAccount, "bank_account"
|
39
43
|
end
|
40
44
|
end
|
data/lib/omise/refund.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require "omise/object"
|
2
|
-
require "omise/
|
3
|
-
require "omise/transaction"
|
2
|
+
require "omise/search_scope"
|
4
3
|
|
5
4
|
module Omise
|
6
5
|
class Refund < OmiseObject
|
@@ -15,10 +14,18 @@ module Omise
|
|
15
14
|
end
|
16
15
|
|
17
16
|
def charge(options = {})
|
17
|
+
if !defined?(Charge)
|
18
|
+
require "omise/charge"
|
19
|
+
end
|
20
|
+
|
18
21
|
expand_attribute Charge, "charge", options
|
19
22
|
end
|
20
23
|
|
21
24
|
def transaction(options = {})
|
25
|
+
if !defined?(Transaction)
|
26
|
+
require "omise/transaction"
|
27
|
+
end
|
28
|
+
|
22
29
|
expand_attribute Transaction, "transaction", options
|
23
30
|
end
|
24
31
|
end
|
data/lib/omise/refund_list.rb
CHANGED
data/lib/omise/resource.rb
CHANGED
@@ -1,11 +1,8 @@
|
|
1
1
|
require "uri"
|
2
|
-
require "json"
|
3
2
|
require "openssl"
|
4
3
|
require "rest-client"
|
5
4
|
|
6
5
|
require "omise/util"
|
7
|
-
require "omise/config"
|
8
|
-
require "omise/error"
|
9
6
|
require "omise/version"
|
10
7
|
|
11
8
|
module Omise
|
@@ -31,19 +28,31 @@ module Omise
|
|
31
28
|
set_resource
|
32
29
|
end
|
33
30
|
|
34
|
-
@resource.get
|
31
|
+
@resource.get do |response, request|
|
32
|
+
log(request, response)
|
33
|
+
Omise::Util.load_response(response)
|
34
|
+
end
|
35
35
|
end
|
36
36
|
|
37
37
|
def patch(attributes = {})
|
38
|
-
@resource.patch(attributes)
|
38
|
+
@resource.patch(attributes) do |response, request|
|
39
|
+
log(request, response)
|
40
|
+
Omise::Util.load_response(response)
|
41
|
+
end
|
39
42
|
end
|
40
43
|
|
41
44
|
def post(attributes = {})
|
42
|
-
@resource.post(attributes)
|
45
|
+
@resource.post(attributes) do |response, request|
|
46
|
+
log(request, response)
|
47
|
+
Omise::Util.load_response(response)
|
48
|
+
end
|
43
49
|
end
|
44
50
|
|
45
51
|
def delete
|
46
|
-
@resource.delete
|
52
|
+
@resource.delete do |response, request|
|
53
|
+
log(request, response)
|
54
|
+
Omise::Util.load_response(response)
|
55
|
+
end
|
47
56
|
end
|
48
57
|
|
49
58
|
private
|
@@ -57,6 +66,11 @@ module Omise
|
|
57
66
|
})
|
58
67
|
end
|
59
68
|
|
69
|
+
def log(request, response)
|
70
|
+
Omise.http_logger.log_request(request)
|
71
|
+
Omise.http_logger.log_response(response)
|
72
|
+
end
|
73
|
+
|
60
74
|
def prepare_uri(url, path)
|
61
75
|
URI.parse(url).tap do |uri|
|
62
76
|
path = URI.parse(path)
|
data/lib/omise/transfer.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
require "omise/object"
|
2
2
|
require "omise/bank_account"
|
3
|
-
require "omise/
|
4
|
-
require "omise/recipient"
|
3
|
+
require "omise/search_scope"
|
5
4
|
|
6
5
|
module Omise
|
7
6
|
class Transfer < OmiseObject
|
@@ -36,10 +35,18 @@ module Omise
|
|
36
35
|
end
|
37
36
|
|
38
37
|
def recipient(options = {})
|
38
|
+
if !defined?(Recipient)
|
39
|
+
require "omise/recipient"
|
40
|
+
end
|
41
|
+
|
39
42
|
expand_attribute Recipient, "recipient", options
|
40
43
|
end
|
41
44
|
|
42
45
|
def bank_account
|
46
|
+
if !defined?(BankAccount)
|
47
|
+
require "omise/bank_account"
|
48
|
+
end
|
49
|
+
|
43
50
|
expand_attribute BankAccount, "bank_account"
|
44
51
|
end
|
45
52
|
end
|
data/lib/omise/util.rb
CHANGED
data/lib/omise/vault.rb
CHANGED
data/lib/omise/version.rb
CHANGED
data/lib/omise.rb
CHANGED
data/omise.gemspec
CHANGED
@@ -17,11 +17,11 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_dependency "rest-client", "
|
21
|
-
spec.add_dependency "json", "
|
20
|
+
spec.add_dependency "rest-client", ">= 2.0"
|
21
|
+
spec.add_dependency "json", ">= 1.8"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
spec.add_development_dependency "pry"
|
26
|
-
spec.add_development_dependency "minitest", "
|
26
|
+
spec.add_development_dependency "minitest", ">= 5.4"
|
27
27
|
end
|
data/test/omise/test_charge.rb
CHANGED
@@ -12,6 +12,15 @@ class TestCharge < Omise::Test
|
|
12
12
|
assert_equal "chrg_test_4yq7duw15p9hdrjp8oq", charge.id
|
13
13
|
end
|
14
14
|
|
15
|
+
def test_that_we_can_create_a_charge_even_if_api_key_is_nil
|
16
|
+
without_keys do
|
17
|
+
charge = Omise::Charge.create(key: "skey_test_4yq6tct0lblmed2yp5t")
|
18
|
+
|
19
|
+
assert_instance_of Omise::Charge, charge
|
20
|
+
assert_equal "chrg_test_4yq7duw15p9hdrjp8oq", charge.id
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
15
24
|
def test_that_we_can_retrieve_a_charge
|
16
25
|
assert_instance_of Omise::Charge, @charge
|
17
26
|
assert_equal "chrg_test_4yq7duw15p9hdrjp8oq", @charge.id
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "support"
|
2
|
+
|
3
|
+
class TestConfig < Omise::Test
|
4
|
+
def test_that_default_values_are_set
|
5
|
+
assert_equal "https://api.omise.co", Omise.api_url
|
6
|
+
assert_equal "https://vault.omise.co", Omise.vault_url
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_that_default_http_logger_is_set
|
10
|
+
assert_instance_of Omise::HTTPLogger, Omise.http_logger
|
11
|
+
assert_nil Omise.http_logger.logger
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_that_we_can_set_a_logger
|
15
|
+
logger = Logger.new(STDOUT)
|
16
|
+
Omise.logger = logger
|
17
|
+
|
18
|
+
assert_same logger, Omise.http_logger.logger
|
19
|
+
end
|
20
|
+
|
21
|
+
def teardown
|
22
|
+
Omise.logger = nil
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require "support"
|
2
|
+
|
3
|
+
class TestHTTPLogger < Omise::Test
|
4
|
+
def test_we_can_initialize_a_logger_with_default_log
|
5
|
+
http_logger = Omise::HTTPLogger.new
|
6
|
+
|
7
|
+
assert_instance_of Omise::HTTPLogger, http_logger
|
8
|
+
assert_nil http_logger.logger
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_we_can_initialize_a_logger_setting_a_log
|
12
|
+
logger = Logger.new(STDOUT)
|
13
|
+
http_logger = Omise::HTTPLogger.new(logger)
|
14
|
+
|
15
|
+
assert_instance_of Omise::HTTPLogger, http_logger
|
16
|
+
assert_same logger, http_logger.logger
|
17
|
+
end
|
18
|
+
|
19
|
+
def setup
|
20
|
+
@log_mock = MiniTest::Mock.new
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_we_can_log_an_http_request
|
24
|
+
request = Struct.new(
|
25
|
+
:method,
|
26
|
+
:url,
|
27
|
+
:processed_headers,
|
28
|
+
:args
|
29
|
+
).new(
|
30
|
+
:post,
|
31
|
+
"http://api.omise.co/path",
|
32
|
+
{ "Header" => "value" },
|
33
|
+
{ payload: { var1: "value1", var2: "value2" } },
|
34
|
+
)
|
35
|
+
expected_log_message = "[Omise] Request: POST http://api.omise.co/path\nHeader: value\n\nvar1=value1&var2=value2\n"
|
36
|
+
@log_mock.expect(:info, nil, [expected_log_message])
|
37
|
+
|
38
|
+
Omise::HTTPLogger.new(@log_mock).log_request(request)
|
39
|
+
|
40
|
+
assert @log_mock.verify
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_we_can_log_an_http_response
|
44
|
+
net_http = Struct.new(
|
45
|
+
:http_version,
|
46
|
+
:code,
|
47
|
+
:message,
|
48
|
+
:each_capitalized
|
49
|
+
).new(
|
50
|
+
"1.1",
|
51
|
+
200,
|
52
|
+
"OK",
|
53
|
+
[["Header", "value"]]
|
54
|
+
)
|
55
|
+
response = Struct.new(
|
56
|
+
:net_http_res,
|
57
|
+
:body
|
58
|
+
).new(
|
59
|
+
net_http,
|
60
|
+
"Work my body over"
|
61
|
+
)
|
62
|
+
expected_log_message = "[Omise] Response: HTTP/1.1 200 OK\nHeader: value\n\nWork my body over\n"
|
63
|
+
@log_mock.expect(:info, nil, [expected_log_message])
|
64
|
+
|
65
|
+
Omise::HTTPLogger.new(@log_mock).log_response(response)
|
66
|
+
|
67
|
+
assert @log_mock.verify
|
68
|
+
end
|
69
|
+
end
|
data/test/support.rb
CHANGED
@@ -9,9 +9,9 @@ module Omise
|
|
9
9
|
class Test < Minitest::Test
|
10
10
|
def before_setup
|
11
11
|
Omise.test!
|
12
|
-
Omise.
|
13
|
-
Omise.
|
14
|
-
Omise.
|
12
|
+
Omise.api_version = nil
|
13
|
+
Omise.public_api_key = "pkey_test_4yq6tct0llin5nyyi5l"
|
14
|
+
Omise.secret_api_key = "skey_test_4yq6tct0lblmed2yp5t"
|
15
15
|
end
|
16
16
|
|
17
17
|
def setup
|
@@ -24,5 +24,20 @@ module Omise
|
|
24
24
|
instance_exec(&block)
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def without_keys
|
31
|
+
original_vault_key = Omise.vault_key
|
32
|
+
original_api_key = Omise.api_key
|
33
|
+
|
34
|
+
Omise.vault_key = nil
|
35
|
+
Omise.api_key = nil
|
36
|
+
|
37
|
+
yield
|
38
|
+
|
39
|
+
Omise.vault_key = original_vault_key
|
40
|
+
Omise.api_key = original_api_key
|
41
|
+
end
|
27
42
|
end
|
28
43
|
end
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robin Clart
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.8
|
33
|
+
version: '1.8'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.8
|
40
|
+
version: '1.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,16 +84,16 @@ dependencies:
|
|
84
84
|
name: minitest
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 5.4
|
89
|
+
version: '5.4'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 5.4
|
96
|
+
version: '5.4'
|
97
97
|
description:
|
98
98
|
email:
|
99
99
|
- robin@omise.co
|
@@ -127,6 +127,7 @@ files:
|
|
127
127
|
- lib/omise/document_list.rb
|
128
128
|
- lib/omise/error.rb
|
129
129
|
- lib/omise/event.rb
|
130
|
+
- lib/omise/http_logger.rb
|
130
131
|
- lib/omise/link.rb
|
131
132
|
- lib/omise/list.rb
|
132
133
|
- lib/omise/object.rb
|
@@ -209,10 +210,12 @@ files:
|
|
209
210
|
- test/omise/test_balance.rb
|
210
211
|
- test/omise/test_card.rb
|
211
212
|
- test/omise/test_charge.rb
|
213
|
+
- test/omise/test_config.rb
|
212
214
|
- test/omise/test_customer.rb
|
213
215
|
- test/omise/test_dispute.rb
|
214
216
|
- test/omise/test_document.rb
|
215
217
|
- test/omise/test_event.rb
|
218
|
+
- test/omise/test_http_logger.rb
|
216
219
|
- test/omise/test_link.rb
|
217
220
|
- test/omise/test_list.rb
|
218
221
|
- test/omise/test_recipient.rb
|
@@ -245,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
248
|
version: '0'
|
246
249
|
requirements: []
|
247
250
|
rubyforge_project:
|
248
|
-
rubygems_version: 2.
|
251
|
+
rubygems_version: 2.6.8
|
249
252
|
signing_key:
|
250
253
|
specification_version: 4
|
251
254
|
summary: Omise Ruby client
|
@@ -314,10 +317,12 @@ test_files:
|
|
314
317
|
- test/omise/test_balance.rb
|
315
318
|
- test/omise/test_card.rb
|
316
319
|
- test/omise/test_charge.rb
|
320
|
+
- test/omise/test_config.rb
|
317
321
|
- test/omise/test_customer.rb
|
318
322
|
- test/omise/test_dispute.rb
|
319
323
|
- test/omise/test_document.rb
|
320
324
|
- test/omise/test_event.rb
|
325
|
+
- test/omise/test_http_logger.rb
|
321
326
|
- test/omise/test_link.rb
|
322
327
|
- test/omise/test_list.rb
|
323
328
|
- test/omise/test_recipient.rb
|