satispay 1.0.1
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 +7 -0
- data/README.md +69 -0
- data/lib/satispay.rb +110 -0
- metadata +88 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 78b49774ee1e0462c47bc2c06c86d00e9ff9dfa1
|
4
|
+
data.tar.gz: 4f8fc32a045608b3c8500da03a4c7f6e02f14fa6
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 326b8379d35a9ca500b54cb583f56d6c91ab5eeaa169d5e1409f8c5775988da6d5d13afce796e7aefb0b189b69d9ad380498763da77425acb56ad408df9447ba
|
7
|
+
data.tar.gz: f5d8f3f5d55e6a46664bdbca7e010e4da51450b5d7b4db183729a5ded4e7684afdee20f43dba3b7abf2ca9b0b4d79d0da7a57ee61b36224270e1e638578010ae
|
data/README.md
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
# Satispay Ruby API
|
2
|
+
|
3
|
+
## Usage
|
4
|
+
|
5
|
+
To use the API you need to initialize a new instance
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
satispay = Satispay.new(env, security_bearer)
|
9
|
+
|
10
|
+
# NB: env sholud be 'prod' or 'staging'
|
11
|
+
```
|
12
|
+
|
13
|
+
### Check bearer
|
14
|
+
|
15
|
+
Allow application to check if bearer is valid.
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
response = satispay.check_bearer
|
19
|
+
```
|
20
|
+
|
21
|
+
### Get all users
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
response = satispay.all_users(*extra_params)
|
25
|
+
```
|
26
|
+
|
27
|
+
### Create new user
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
response = satispay.create_user(phone_number: user_phone_number, *extra_params)
|
31
|
+
```
|
32
|
+
|
33
|
+
### Get user
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
response = satispay.get_user(user_id: user_satispay_id)
|
37
|
+
```
|
38
|
+
|
39
|
+
### Get all chanrges
|
40
|
+
|
41
|
+
```ruby
|
42
|
+
response = satispay.all_charges(*extra_params)
|
43
|
+
```
|
44
|
+
|
45
|
+
### Create new charges
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
response = satispay.create_charge(user_id: user_id, currency: 'EUR', amount: 100, *extra_params)
|
49
|
+
```
|
50
|
+
|
51
|
+
### Get charge
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
response = satispay.get_charge(charge_id: charge_id)
|
55
|
+
```
|
56
|
+
|
57
|
+
### Update charge
|
58
|
+
|
59
|
+
|
60
|
+
```ruby
|
61
|
+
response = satispay.update_charge(charge_id: charge_id, *extra_params)
|
62
|
+
```
|
63
|
+
|
64
|
+
### Get all refunds
|
65
|
+
|
66
|
+
```ruby
|
67
|
+
response = satispay.all_refunds(*extra_params)
|
68
|
+
```
|
69
|
+
|
data/lib/satispay.rb
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
require 'rest-client'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
class Satispay
|
5
|
+
|
6
|
+
def initialize(env, security_bearer)
|
7
|
+
@env = (env == 'prod' ? :production : :staging)
|
8
|
+
@url = (env == 'prod' ? 'https://authservices.satispay.com' : 'https://staging.authservices.satispay.com')
|
9
|
+
@security_bearer = security_bearer
|
10
|
+
end
|
11
|
+
|
12
|
+
# Bearer requests:
|
13
|
+
|
14
|
+
def check_bearer
|
15
|
+
send_request('/wally-services/protocol/authenticated', :get, {})
|
16
|
+
end
|
17
|
+
|
18
|
+
# User requests:
|
19
|
+
|
20
|
+
def all_users
|
21
|
+
send_request('/online/v1/users', :get, {})
|
22
|
+
end
|
23
|
+
|
24
|
+
def create_user(args)
|
25
|
+
args = validate_args(args, [:phone_number])
|
26
|
+
send_request('/online/v1/users', :post, args)
|
27
|
+
end
|
28
|
+
|
29
|
+
def get_user(args)
|
30
|
+
args = validate_args(args, [:user_id])
|
31
|
+
send_request("/online/v1/users/#{args[:user_id]}", :get, {})
|
32
|
+
end
|
33
|
+
|
34
|
+
# Charge requests:
|
35
|
+
|
36
|
+
def all_charges
|
37
|
+
send_request('/online/v1/charges', :get, {})
|
38
|
+
end
|
39
|
+
|
40
|
+
def create_charge(args)
|
41
|
+
args = validate_args(args, [:user_id, :currency, :amount])
|
42
|
+
send_request('/online/v1/charges', :post, args)
|
43
|
+
end
|
44
|
+
|
45
|
+
def get_charge(args)
|
46
|
+
args = validate_args(args, [:charge_id])
|
47
|
+
send_request("/online/v1/charges/#{args[:charge_id]}", :get, {})
|
48
|
+
end
|
49
|
+
|
50
|
+
def update_charge(args)
|
51
|
+
args = validate_args(args, [:charge_id])
|
52
|
+
send_request("/online/v1/charges/#{args[:charge_id]}", :put, args)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Refund requests:
|
56
|
+
|
57
|
+
def all_refunds
|
58
|
+
send_request('/online/v1/refunds', :get, {})
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
|
63
|
+
# This function send a request to a specific url and return the response or
|
64
|
+
# the error.
|
65
|
+
def send_request(path, method, body)
|
66
|
+
url = "#{@url}#{path}"
|
67
|
+
response = (method == :get ? send_get_request(url) : send_post_request(url, body, method))
|
68
|
+
JSON.parse(response.body) if response.body && !response.body.empty?
|
69
|
+
rescue RestClient::ExceptionWithResponse => e
|
70
|
+
error = JSON.parse(e.response)
|
71
|
+
raise e.response
|
72
|
+
end
|
73
|
+
|
74
|
+
# This function send a GET request.
|
75
|
+
def send_get_request(url)
|
76
|
+
response = RestClient::Request.execute(
|
77
|
+
method: :get,
|
78
|
+
url: url,
|
79
|
+
verify_ssl: false,
|
80
|
+
headers: {
|
81
|
+
'Content-Type' => 'application/json',
|
82
|
+
'Authorization' => "Bearer #{@security_bearer}"
|
83
|
+
}
|
84
|
+
)
|
85
|
+
end
|
86
|
+
|
87
|
+
# This function send a POST request.
|
88
|
+
def send_post_request(url, body, method)
|
89
|
+
response = RestClient::Request.execute(
|
90
|
+
method: method,
|
91
|
+
url: url,
|
92
|
+
verify_ssl: false,
|
93
|
+
headers: {
|
94
|
+
'Content-Type' => 'application/json',
|
95
|
+
'Authorization' => "Bearer #{@security_bearer}"
|
96
|
+
},
|
97
|
+
payload: body.to_json
|
98
|
+
)
|
99
|
+
end
|
100
|
+
|
101
|
+
# This function validates an hash of arguments and raise an error if required
|
102
|
+
# arguments are not present.
|
103
|
+
def validate_args(args, required)
|
104
|
+
required.each do |required_arg|
|
105
|
+
raise 'Missing required argument' if args[required_arg] == nil
|
106
|
+
end
|
107
|
+
args
|
108
|
+
end
|
109
|
+
|
110
|
+
end
|
metadata
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: satispay
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ideonetwork
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-08-03 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Unofficial Satispay API for Ruby (porting from https://github.com/satispay/online-api-php-sdk)
|
56
|
+
email:
|
57
|
+
- info@ideonetwork.it
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- README.md
|
63
|
+
- lib/satispay.rb
|
64
|
+
homepage: http://naturaldesign.cc/
|
65
|
+
licenses:
|
66
|
+
- MIT
|
67
|
+
metadata: {}
|
68
|
+
post_install_message:
|
69
|
+
rdoc_options: []
|
70
|
+
require_paths:
|
71
|
+
- lib
|
72
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
requirements: []
|
83
|
+
rubyforge_project:
|
84
|
+
rubygems_version: 2.6.12
|
85
|
+
signing_key:
|
86
|
+
specification_version: 4
|
87
|
+
summary: Unofficial Satispay API for Ruby
|
88
|
+
test_files: []
|