kapellmeister 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/kapellmeister.gemspec +1 -1
- data/lib/generators/kapellmeister/templates/lib/third_party/configuration.rb.tt +3 -1
- data/lib/generators/kapellmeister/templates/lib/third_party/routes.yml.tt +1 -1
- data/lib/kapellmeister/base.rb +2 -2
- data/lib/kapellmeister/dispatcher.rb +4 -4
- data/lib/kapellmeister/requests_extension.rb +7 -7
- data/lib/kapellmeister/responder.rb +1 -1
- data/lib/kapellmeister/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4469ce7f200030e5215269a415737eeb448029bac1e0ea60f238ab9d68eefd6d
|
4
|
+
data.tar.gz: 4a9387ea59601ed6b2413cae95b4dd4b05690492c331a4ed2d7f18f191b04a32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3ed10ab1cf0c69d4e0a18aadb3f9b124d7b1f35040dfc67f89e96d931b1226f7aa2f81bd557998d3176912cd2a2a75ed0d9bd4b39cc18596c679b3bb14cc971
|
7
|
+
data.tar.gz: 3c3ad070259adcb1ba6ec7ac4bcc68a1faa9266bfb5ec50919bd93266698564d04849a43b2bea8afd0ce1ce13e35b30868d2fddce512617166e538cd71dbddb9
|
data/kapellmeister.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |gem|
|
|
27
27
|
|
28
28
|
gem.required_ruby_version = '>= 2.4.2'
|
29
29
|
|
30
|
-
gem.add_dependency 'dry-schema', '~> 1.
|
30
|
+
gem.add_dependency 'dry-schema', '~> 1.7'
|
31
31
|
gem.add_dependency 'faraday', '~> 1.0'
|
32
32
|
gem.add_dependency 'faraday-cookie_jar', '~> 0.0.7'
|
33
33
|
gem.add_dependency 'faraday_middleware', '~> 1.2'
|
@@ -9,7 +9,9 @@ class <%= class_name %>::Configuration
|
|
9
9
|
def url
|
10
10
|
raise "No given host to #{self.class.name}" unless host
|
11
11
|
|
12
|
-
https =
|
12
|
+
https = true
|
13
|
+
https = ssl unless ssl.nil?
|
14
|
+
https = <%= class_name %>.ssl unless <%= class_name %>.ssl.nil?
|
13
15
|
|
14
16
|
"URI::HTTP#{https.to_b ? 'S' : ''}".constantize.build(host:, path: [path, version].join('/'))
|
15
17
|
end
|
@@ -6,7 +6,7 @@
|
|
6
6
|
# use_wrapper: true => Default true (* required)
|
7
7
|
# path: buz => Real path (* required)
|
8
8
|
# body: => Dry schema for checking parameters. If key doesn't exist nothing happens
|
9
|
-
#
|
9
|
+
# query_params: => Query params. If key doesn't exist nothing happens
|
10
10
|
# mock: => Structure or Path to mock file for tests. If key doesn't exist nothing happens
|
11
11
|
#
|
12
12
|
# Client.foo_bar { a: 'b' } => POST http://host/foo/buz DATA: { a: 'b' }
|
data/lib/kapellmeister/base.rb
CHANGED
@@ -28,8 +28,8 @@ module Kapellmeister::Base
|
|
28
28
|
def self.routes_scheme_parse(path)
|
29
29
|
template = ERB.new(File.read(path)).result
|
30
30
|
YAML.safe_load(template, aliases: true, permitted_classes: [Symbol, Date, Time]).deep_symbolize_keys
|
31
|
-
rescue Errno::ENOENT
|
32
|
-
warn
|
31
|
+
rescue Errno::ENOENT
|
32
|
+
warn 'No such file or directory', path
|
33
33
|
{}
|
34
34
|
end
|
35
35
|
end
|
@@ -10,14 +10,14 @@ class Kapellmeister::Dispatcher
|
|
10
10
|
|
11
11
|
FailedResponse = Struct.new(:success?, :response, :payload)
|
12
12
|
|
13
|
-
def connection_by(method_name, path, data = {}
|
13
|
+
def connection_by(method_name, path, data = {})
|
14
14
|
additional_headers = data.delete(:headers) || {}
|
15
15
|
requests_data = data.delete(:request) || {}
|
16
16
|
|
17
|
-
generated_connection = connection(additional_headers
|
17
|
+
generated_connection = connection(additional_headers: additional_headers, requests_data: requests_data) # rubocop:disable Style/HashSyntax (for support ruby 2.4+)
|
18
18
|
|
19
19
|
process generated_connection.run_request(method_name.downcase.to_sym, path, data.to_json, additional_headers)
|
20
|
-
rescue
|
20
|
+
rescue NameError, RuntimeError
|
21
21
|
raise "Library can't process method #{method_name} yet"
|
22
22
|
rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e
|
23
23
|
failed_response(details: e.message)
|
@@ -49,7 +49,7 @@ class Kapellmeister::Dispatcher
|
|
49
49
|
|
50
50
|
def headers_generate(**additional)
|
51
51
|
{
|
52
|
-
accept: 'application/json, text/plain, */*, charset=utf-8',
|
52
|
+
# accept: 'application/json, text/plain, */*, charset=utf-8',
|
53
53
|
**additional,
|
54
54
|
**headers
|
55
55
|
}
|
@@ -2,11 +2,11 @@ module Kapellmeister::RequestsExtension
|
|
2
2
|
def self.request_processing
|
3
3
|
proc do |name, request_data|
|
4
4
|
define_method name do |data = {}|
|
5
|
-
proc { |method:, path:, body: {},
|
5
|
+
proc { |method:, path:, body: {}, query_params: {}, mock: ''|
|
6
6
|
return ::Kapellmeister::Base.routes_scheme_parse(mock) if (Rails.try(:env) || ENV['APP_ENV']) == 'test'
|
7
7
|
|
8
8
|
valid_body?(data, body)
|
9
|
-
valid_query?(data,
|
9
|
+
valid_query?(data, query_params)
|
10
10
|
|
11
11
|
full_path = generate_full_path(path, data)
|
12
12
|
|
@@ -25,7 +25,7 @@ end
|
|
25
25
|
|
26
26
|
def generate_full_path(original_path, data)
|
27
27
|
path = generate_path(original_path, data)
|
28
|
-
[path, data.delete(:
|
28
|
+
[path, data.delete(:query_params)&.to_query].compact_blank!.join('?')
|
29
29
|
end
|
30
30
|
|
31
31
|
def generate_path(original_path, data)
|
@@ -52,11 +52,11 @@ def valid_query?(data, query)
|
|
52
52
|
|
53
53
|
from_data = data.slice(*required_keys)
|
54
54
|
data.except!(*required_keys)
|
55
|
-
data[:
|
56
|
-
data[:
|
55
|
+
data[:query_params] ||= {}
|
56
|
+
data[:query_params] = data[:query_params].to_h.merge!(from_data)
|
57
57
|
|
58
|
-
diffirent_keys = data[:
|
58
|
+
diffirent_keys = data[:query_params].transform_keys(&:to_sym)
|
59
59
|
return if required_keys.all? { |key| diffirent_keys.has_key? key.to_sym }
|
60
60
|
|
61
|
-
raise ArgumentError, "
|
61
|
+
raise ArgumentError, "Query params needs keys #{required_keys}"
|
62
62
|
end
|
@@ -12,7 +12,7 @@ class Kapellmeister::Responder
|
|
12
12
|
def result
|
13
13
|
error = !/2\d{2}/.match?(status.to_s)
|
14
14
|
|
15
|
-
Result.new(!error, parsed_body, { status: }.merge(payload))
|
15
|
+
Result.new(!error, parsed_body, { status: status }.merge(payload)) # rubocop:disable Style/HashSyntax (for support ruby 2.4+)
|
16
16
|
rescue JSON::ParserError => e
|
17
17
|
Result.new(false, e)
|
18
18
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kapellmeister
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- DarkWater
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-05-
|
11
|
+
date: 2022-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-schema
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
19
|
+
version: '1.7'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
26
|
+
version: '1.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faraday
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|