iamport 0.2.4 → 0.3.0

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: 83829b1d4beb85703b707bdc156550353cd1c566
4
- data.tar.gz: 0bde5b44d72e1be6c970d854b6fa4bf9c8ebca6e
3
+ metadata.gz: bf4f72e12ec0e2934d5360a53bd791d9ca90c0fd
4
+ data.tar.gz: 8022472876352a487c75f1225df49f712b70fc57
5
5
  SHA512:
6
- metadata.gz: 348883e8a7dd92920b88572101e519e07eafbb9c0b9e8c5deb29a44ef3d2c235e7663fdefc98a7b729356c07f86686485ecd94d4610fea5f41ce958c0d25d2f4
7
- data.tar.gz: 229520de3de7577fb5d3ec4977a992d6eea4dc7dea116095de7f94046b411eb4d0651f65327af6947db72de228df8d88682edcc0e886eb63f45ab1223c8207d8
6
+ metadata.gz: 1efbae76a056af37b05968c9076b93a070d47ca9476e242790694b4e9f4a1103b6995a40fea244f73dba3747a5f44d9b0d40b3761745c0cde332c5a8fa109922
7
+ data.tar.gz: 83dfa92092969084ce8cb37dfdb71e5b2ed4ea6b0f89abc633356d39b1f1a53b07aac706f6b0f09e12636bc9186903bd059ccd2eb3311eca58108653055a7bf4
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --require spec_helper
2
+ --format doc
3
+ --color
data/iamport.gemspec CHANGED
@@ -1,7 +1,9 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+
3
+ lib = File.expand_path("../lib", __FILE__)
4
+
3
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'iamport/version'
6
+ require "iamport/version"
5
7
 
6
8
  Gem::Specification.new do |spec|
7
9
  spec.name = "iamport"
@@ -22,6 +24,8 @@ Gem::Specification.new do |spec|
22
24
  spec.add_development_dependency "bundler", "~> 1.10"
23
25
  spec.add_development_dependency "rake", "~> 10.0"
24
26
  spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "pry"
28
+ spec.add_development_dependency "rubocop"
25
29
 
26
30
  spec.add_runtime_dependency "httparty"
27
31
  end
data/lib/iamport.rb CHANGED
@@ -1,8 +1,8 @@
1
- require 'httparty'
2
- require 'iamport/version'
1
+ require "iamport/version"
2
+ require "httparty"
3
3
 
4
4
  module Iamport
5
- IAMPORT_HOST = "https://api.iamport.kr"
5
+ IAMPORT_HOST = "https://api.iamport.kr".freeze
6
6
 
7
7
  class Config
8
8
  attr_accessor :api_key
@@ -23,11 +23,13 @@ module Iamport
23
23
  def token
24
24
  url = "#{IAMPORT_HOST}/users/getToken"
25
25
  body = {
26
- imp_key: config.api_key,
27
- imp_secret: config.api_secret
26
+ imp_key: config.api_key,
27
+ imp_secret: config.api_secret
28
28
  }
29
29
 
30
30
  result = HTTParty.post url, body: body
31
+
32
+ raise "Invalid Token" unless result["response"]
31
33
  result["response"]["access_token"]
32
34
  end
33
35
 
@@ -36,7 +38,7 @@ module Iamport
36
38
  def payment(imp_uid)
37
39
  uri = "payments/#{imp_uid}"
38
40
 
39
- _get(uri)
41
+ pay_get(uri)
40
42
  end
41
43
 
42
44
  # Search payment information using status.
@@ -48,7 +50,7 @@ module Iamport
48
50
 
49
51
  uri = "payments/status/#{status}?page=#{page}"
50
52
 
51
- _get(uri)
53
+ pay_get(uri)
52
54
  end
53
55
 
54
56
  # Find payment information using merchant uid
@@ -56,7 +58,7 @@ module Iamport
56
58
  def find(merchant_uid)
57
59
  uri = "payments/find/#{merchant_uid}"
58
60
 
59
- _get(uri)
61
+ pay_get(uri)
60
62
  end
61
63
 
62
64
  # Prepare payment validation
@@ -64,7 +66,7 @@ module Iamport
64
66
  def prepare(body)
65
67
  uri = "payments/prepare"
66
68
 
67
- _post(uri, body)
69
+ pay_post(uri, body)
68
70
  end
69
71
 
70
72
  # Get prepared payment information by merchant_uid
@@ -72,7 +74,7 @@ module Iamport
72
74
  def prepared(merchant_uid)
73
75
  uri = "payments/prepare/#{merchant_uid}"
74
76
 
75
- _get(uri)
77
+ pay_get(uri)
76
78
  end
77
79
 
78
80
  # Canceled payments
@@ -80,60 +82,81 @@ module Iamport
80
82
  def cancel(body)
81
83
  uri = "payments/cancel"
82
84
 
83
- _post(uri, body)
85
+ pay_post(uri, body)
86
+ end
87
+
88
+ # create onetime
89
+ # POST https://api.iamport.kr/#!/subscribe/payments/onetime
90
+ def create_onetime_payment(payload = {})
91
+ uri = "subscribe/payments/onetime"
92
+
93
+ pay_post(uri, payload)
84
94
  end
85
95
 
86
- # Get a billing key by customer_uid
87
- # GET https://api.iamport.kr/#!/subscribe/customers/:customer_uid
88
96
  def find_subscribe_customer(customer_uid)
89
- uri = "subscribe/customers/#{customer_uid}"
97
+ warn "[DEPRECATION] `find_subscribe_customer` is deprecated. Please use `customer_payments` instead."
98
+ customer_payments(customer_uid)
99
+ end
100
+
101
+ # create payment again
102
+ # POST https://api.iamport.kr/#!/subscribe/payments/again
103
+ def create_payment_again(payload = {})
104
+ uri = "subscribe/payments/again"
90
105
 
91
- _get(uri)
106
+ pay_post(uri, payload)
107
+ end
108
+
109
+ # Create and Delete a billing key by customer_uid
110
+ # DELETE https://api.iamport.kr/#!/subscribe/customers/:customer_uid
111
+ # GET https://api.iamport.kr/#!/subscribe/customers/:customer_uid
112
+ { customer: :get, delete_customer: :delete }.each do |method_name, type|
113
+ define_method(method_name) do |customer_uid|
114
+ uri = "subscribe/customers/#{customer_uid}"
115
+
116
+ send("pay_#{type}", uri)
117
+ end
92
118
  end
93
119
 
94
- # Create (or update if exists) a billing key by customer_uid
95
- # POST https://api.iamport.kr/#!/subscribe/customers/:customer_uid
96
- def create_subscribe_customer(customer_uid, body)
120
+ def create_subscribe_customer(customer_uid, payload = {})
121
+ warn "[DEPRECATION] `create_subscribe_customer` is deprecated. Please use `create_customer` instead."
122
+ create_customer(customer_uid, payload)
123
+ end
124
+
125
+ def create_customer(customer_uid, payload = {})
97
126
  uri = "subscribe/customers/#{customer_uid}"
98
127
 
99
- _post(uri, body)
128
+ pay_post(uri, payload)
100
129
  end
101
130
 
102
- # Delete a billing key by customer_uid
103
- # DELETE https://api.iamport.kr/#!/subscribe/customers/:customer_uid
104
- def delete_subscribe_customer(customer_uid)
105
- uri = "subscribe/customers/#{customer_uid}"
131
+ def customer_payments(customer_uid)
132
+ uri = "subscribe/customers/#{customer_uid}/payments"
106
133
 
107
- _delete(uri)
134
+ pay_get(uri)
108
135
  end
109
136
 
110
137
  private
111
138
 
112
139
  # Get header data
113
- def get_headers
140
+ def headers
114
141
  { "Authorization" => token }
115
142
  end
116
143
 
117
144
  # GET
118
- def _get(uri, payload = {})
145
+ def pay_get(uri, payload = {})
119
146
  url = "#{IAMPORT_HOST}/#{uri}"
120
-
121
- HTTParty.get url, headers: get_headers, body: payload
147
+ HTTParty.get(url, headers: headers, body: payload)
122
148
  end
123
149
 
124
150
  # POST
125
- def _post(uri, payload = {})
151
+ def pay_post(uri, payload = {})
126
152
  url = "#{IAMPORT_HOST}/#{uri}"
127
-
128
- HTTParty.post url, headers: get_headers, body: payload
153
+ HTTParty.post(url, headers: headers, body: payload)
129
154
  end
130
155
 
131
156
  # DELETE
132
- def _delete(uri, payload = {})
157
+ def pay_delete(uri, payload = {})
133
158
  url = "#{IAMPORT_HOST}/#{uri}"
134
-
135
- HTTParty.delete url, headers: get_headers, body: payload
159
+ HTTParty.delete(url, headers: headers, body: payload)
136
160
  end
137
-
138
161
  end
139
162
  end
@@ -1,3 +1,3 @@
1
1
  module Iamport
2
- VERSION = "0.2.4"
2
+ VERSION = "0.3.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iamport
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sell it
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-29 00:00:00.000000000 Z
11
+ date: 2018-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,34 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: httparty
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -74,6 +102,7 @@ extensions: []
74
102
  extra_rdoc_files: []
75
103
  files:
76
104
  - ".gitignore"
105
+ - ".rspec"
77
106
  - ".travis.yml"
78
107
  - CHANGELOG.md
79
108
  - CODE_OF_CONDUCT.md