reggora 0.1.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.
- checksums.yaml +7 -0
- data/lib/reggora/Adapters/api_client.rb +18 -0
- data/lib/reggora/Adapters/lender_api_client.rb +36 -0
- data/lib/reggora/Adapters/requests.rb +57 -0
- data/lib/reggora/Entity/Lender/loan.rb +21 -0
- data/lib/reggora/Entity/Lender/order.rb +21 -0
- data/lib/reggora.rb +21 -0
- metadata +95 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9c7dd2adb2d6a516476d29998b4290c449bae3c885e7724d4da29080143f4bc3
|
4
|
+
data.tar.gz: ec86b3618fa690d53075716f48a7fed9486df20a28a423246ddecade29df0c4f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c397f9253aeb3d27b5a2a071c4cf2a4ed2be4658b7c7fb2f4b9c447c48c04696dc76df1e78fc5c9d2d2fbbd53c43c5e6d913ab7fe7ad4b6450c57add71ed7b9b
|
7
|
+
data.tar.gz: 9c09028dbfe4c0b6db97c6db3b9bfd6586a7419587c93e8e5a6542612d9c1eef8aa1791e37e73c3c3766ec8d2107928cec19b39fbce4e8cb04f892a769716d00
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'uri'
|
2
|
+
require 'net/http'
|
3
|
+
require 'json'
|
4
|
+
class ApiClient
|
5
|
+
$base_api_uri = 'https://sandbox.reggora.io/'
|
6
|
+
|
7
|
+
def self.authenticate(username, password, type)
|
8
|
+
body = {:username => username, :password => password}
|
9
|
+
|
10
|
+
response = Net::HTTP.post URI("#{$base_api_uri}#{type}/auth"), body.to_json
|
11
|
+
case response
|
12
|
+
when Net::HTTPSuccess then
|
13
|
+
JSON.parse(response.read_body)
|
14
|
+
else
|
15
|
+
response.value
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require_relative 'api_client'
|
2
|
+
require_relative 'requests'
|
3
|
+
class LenderApiClient
|
4
|
+
|
5
|
+
# @param [String] username
|
6
|
+
# @param [String] password
|
7
|
+
# @param [String] integration_token
|
8
|
+
def initialize(username, password, integration_token)
|
9
|
+
authorization = ApiClient.authenticate(username, password, 'lender')
|
10
|
+
@api_client = Requests.new(authorization["token"], integration_token, 'lender')
|
11
|
+
$lender_api_client = self
|
12
|
+
end
|
13
|
+
|
14
|
+
# @param [string] username
|
15
|
+
# @param [string] password
|
16
|
+
def self.authenticate(username, password)
|
17
|
+
ApiClient.authenticate(username, password, 'lender')
|
18
|
+
end
|
19
|
+
|
20
|
+
def get(url, params = {})
|
21
|
+
@api_client.get(url, params)
|
22
|
+
end
|
23
|
+
|
24
|
+
def post(url, params = {})
|
25
|
+
@api_client.post(url, params)
|
26
|
+
end
|
27
|
+
|
28
|
+
def put(url, params = {})
|
29
|
+
@api_client.put(url, params)
|
30
|
+
end
|
31
|
+
|
32
|
+
def delete(url)
|
33
|
+
@api_client.delete(url)
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
class Requests
|
2
|
+
def initialize(auth_token, integration_token, type)
|
3
|
+
@uri = URI("#{$base_api_uri}#{type}")
|
4
|
+
@http = Net::HTTP.new(@uri.host, @uri.port)
|
5
|
+
@http.use_ssl = true
|
6
|
+
@header = {"Content-Type" => 'application/json', "Authorization" => "Bearer #{auth_token}", "integration" => integration_token}
|
7
|
+
end
|
8
|
+
|
9
|
+
def full_uri(path)
|
10
|
+
URI("#{@uri.to_s}#{path}")
|
11
|
+
end
|
12
|
+
|
13
|
+
def get(url, params = {})
|
14
|
+
api_endpoint = full_uri url
|
15
|
+
api_endpoint.query = URI.encode_www_form(params) unless params.empty?
|
16
|
+
send_request Net::HTTP::Get.new(api_endpoint.request_uri, @header)
|
17
|
+
end
|
18
|
+
|
19
|
+
def post(url, params = {})
|
20
|
+
api_endpoint = full_uri url
|
21
|
+
request = Net::HTTP::Post.new(api_endpoint, @header)
|
22
|
+
request.body = params.to_json
|
23
|
+
send_request request
|
24
|
+
end
|
25
|
+
|
26
|
+
def put(url, params = {})
|
27
|
+
api_endpoint = full_uri url
|
28
|
+
request = Net::HTTP::Put.new(api_endpoint, @header)
|
29
|
+
request.body = params.to_json
|
30
|
+
send_request request
|
31
|
+
end
|
32
|
+
|
33
|
+
def delete(url)
|
34
|
+
api_endpoint = full_uri url
|
35
|
+
send_request Net::HTTP::Delete.new(api_endpoint, @header)
|
36
|
+
end
|
37
|
+
|
38
|
+
def send_request(request)
|
39
|
+
begin
|
40
|
+
handle_response @http.request(request)
|
41
|
+
rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPUnauthorized,
|
42
|
+
Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError, Errno::ECONNREFUSED => e
|
43
|
+
raise e.inspect
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def handle_response(response)
|
48
|
+
case response
|
49
|
+
when Net::HTTPSuccess then
|
50
|
+
JSON.parse(response.read_body)
|
51
|
+
when Net::HTTPBadRequest then
|
52
|
+
raise JSON.parse(response.read_body).inspect
|
53
|
+
else
|
54
|
+
raise JSON.parse(response.read_body).inspect
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Loan
|
2
|
+
def all(params = {})
|
3
|
+
$lender_api_client.get('/loans', params)
|
4
|
+
end
|
5
|
+
|
6
|
+
def find(id)
|
7
|
+
$lender_api_client.get("/loan/#{id}")
|
8
|
+
end
|
9
|
+
|
10
|
+
def create(loan_params)
|
11
|
+
$lender_api_client.post('/loan', loan_params)
|
12
|
+
end
|
13
|
+
|
14
|
+
def edit(id, loan_params)
|
15
|
+
$lender_api_client.put("/loan/#{id}", loan_params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def delete(id)
|
19
|
+
$lender_api_client.delete("/loan/#{id}")
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Order
|
2
|
+
def all(params = {})
|
3
|
+
$lender_api_client.get('/orders', params)
|
4
|
+
end
|
5
|
+
|
6
|
+
def find(id)
|
7
|
+
$lender_api_client.get("/order/#{id}")
|
8
|
+
end
|
9
|
+
|
10
|
+
def create(loan_params)
|
11
|
+
$lender_api_client.post('/order', loan_params)
|
12
|
+
end
|
13
|
+
|
14
|
+
def edit(id, loan_params)
|
15
|
+
$lender_api_client.put("/order/#{id}", loan_params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def cancel(id)
|
19
|
+
$lender_api_client.delete("/order/#{id}")
|
20
|
+
end
|
21
|
+
end
|
data/lib/reggora.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require_relative 'reggora/Entity/Lender/loan'
|
3
|
+
require_relative 'reggora/Entity/Lender/order'
|
4
|
+
require_relative 'reggora/Adapters/lender_api_client'
|
5
|
+
module Reggora
|
6
|
+
# class Error < StandardError; end
|
7
|
+
|
8
|
+
class Lender
|
9
|
+
def initialize(user_name, password, integration_token)
|
10
|
+
LenderApiClient.new(user_name, password, integration_token)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class Vendor
|
15
|
+
def initialize(user_name, password, integration_token)
|
16
|
+
# Todo
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
metadata
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: reggora
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- fatpig
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-08-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.17'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.17'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.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: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
description: This library makes request to https://sandbox.reggora.io/
|
56
|
+
email:
|
57
|
+
- fatpig0416@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- lib/reggora.rb
|
63
|
+
- lib/reggora/Adapters/api_client.rb
|
64
|
+
- lib/reggora/Adapters/lender_api_client.rb
|
65
|
+
- lib/reggora/Adapters/requests.rb
|
66
|
+
- lib/reggora/Entity/Lender/loan.rb
|
67
|
+
- lib/reggora/Entity/Lender/order.rb
|
68
|
+
homepage: https://rubygems.org/gems/raggora
|
69
|
+
licenses:
|
70
|
+
- MIT
|
71
|
+
metadata:
|
72
|
+
allowed_push_host: https://rubygems.org/gems/
|
73
|
+
homepage_uri: https://rubygems.org/gems/raggora
|
74
|
+
source_code_uri: https://github.com/0x15f/reggora-ruby
|
75
|
+
changelog_uri: https://github.com/0x15f/reggora-ruby/blob/master/CHANGELOG.md
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options: []
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
requirements: []
|
91
|
+
rubygems_version: 3.0.4
|
92
|
+
signing_key:
|
93
|
+
specification_version: 4
|
94
|
+
summary: Library for Reggora Lender/Vendor API
|
95
|
+
test_files: []
|