reggora 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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: []