aga-request 0.0.0 → 0.0.2
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 +4 -4
- data/lib/request/base.rb +5 -3
- data/lib/request/resources/http.rb +38 -21
- data/lib/request/version.rb +1 -1
- metadata +31 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74e39b07b921c9d9fc6e01d788e50ae4f87a3bb8aa0718917548979323fc8f78
|
4
|
+
data.tar.gz: 931a6f96c032b1311a7ec368a6fb9177c1394b8cee93451132aa27cf77c24956
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dcf3c02680f2ef14aaa8ca53e82cf162f823ae050d6c159ab54ac2f410545ce6c38a2de1871e9053ac6b0a6a023c07c201a6206bc6b1ff9bb94ed68bd36c28a8
|
7
|
+
data.tar.gz: 65190939f949f56bfeb8e441fd34e9d30a8e165199d7e3014efb09f8451fb3d251e7434dcf208cd88928f0f8b3480d72ba1558f98d86d0ebbc4d3860631689b8
|
data/lib/request/base.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
require '
|
3
|
+
require 'faraday'
|
4
|
+
require 'active_support'
|
5
|
+
require 'active_support/cache'
|
6
6
|
|
7
7
|
module Request
|
8
8
|
class Base
|
9
9
|
class << self
|
10
10
|
attr_accessor :app_info
|
11
|
+
|
12
|
+
def initialize; end
|
11
13
|
end
|
12
14
|
|
13
15
|
self.app_info = ::ENV['APP_INFO'] || "#{::Request::NAME} V#{::Request.version}"
|
@@ -2,36 +2,53 @@
|
|
2
2
|
|
3
3
|
module Request
|
4
4
|
class Http < Base
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
def initialize(api_key: nil, api_secret: nil, cache_options: {})
|
6
|
+
super()
|
7
|
+
@api_key = api_key
|
8
|
+
@api_secret = api_secret
|
9
|
+
@cache = ActiveSupport::Cache.lookup_store(:memory_store, cache_options || default_cache)
|
10
|
+
end
|
10
11
|
|
11
|
-
|
12
|
+
%i[get post put delete].each do |method|
|
13
|
+
define_method(method) do |endpoint, params = {}, headers = {}|
|
14
|
+
cached_request(method, endpoint, params, headers)
|
15
|
+
end
|
16
|
+
end
|
12
17
|
|
13
|
-
|
14
|
-
http.request(req)
|
15
|
-
end
|
18
|
+
private
|
16
19
|
|
17
|
-
|
20
|
+
def cached_request(method, endpoint, params = {}, headers = {})
|
21
|
+
cache_key = [method, endpoint, params, headers]
|
22
|
+
unless @cache.exist?(cache_key)
|
23
|
+
response = make_request(method, endpoint, params, headers)
|
24
|
+
@cache.write(cache_key, data(response))
|
18
25
|
end
|
19
26
|
|
20
|
-
|
27
|
+
@cache.read(cache_key)
|
28
|
+
end
|
21
29
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
req = Net::HTTP::Get.new(uri)
|
26
|
-
when 'POST', 'post'
|
27
|
-
req = Net::HTTP::Post.new(uri)
|
28
|
-
end
|
30
|
+
def data(response)
|
31
|
+
{ response: JSON.parse(response.body), status: response.success? }
|
32
|
+
end
|
29
33
|
|
30
|
-
|
34
|
+
def default_cache
|
35
|
+
{ size: 64.megabytes, expires_in: 1.minute }
|
36
|
+
end
|
37
|
+
|
38
|
+
def make_request(method, endpoint, params, headers)
|
39
|
+
connection = prepare_connection(method, endpoint, params, headers)
|
40
|
+
|
41
|
+
connection.public_send(method) do |request|
|
42
|
+
request.headers.merge!(headers)
|
43
|
+
request.url(endpoint)
|
44
|
+
request.body = params.to_json if %i[post put].include?(method)
|
31
45
|
end
|
46
|
+
end
|
32
47
|
|
33
|
-
|
34
|
-
|
48
|
+
def prepare_connection(_method, endpoint, _params, _headers)
|
49
|
+
Faraday.new(endpoint) do |conn|
|
50
|
+
conn.request :url_encoded
|
51
|
+
conn.adapter Faraday.default_adapter
|
35
52
|
end
|
36
53
|
end
|
37
54
|
end
|
data/lib/request/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aga-request
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Baldazzi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01
|
11
|
+
date: 2023-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeitwerk
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 7.0.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 7.0.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bump
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: 3.1.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: faraday
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.7'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.7'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: rake
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -172,5 +200,5 @@ requirements: []
|
|
172
200
|
rubygems_version: 3.3.24
|
173
201
|
signing_key:
|
174
202
|
specification_version: 4
|
175
|
-
summary: request0.0.
|
203
|
+
summary: request0.0.2
|
176
204
|
test_files: []
|