kapellmeister 0.7.1 → 0.7.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4196ba8032b296bcb5c8c78afe748ea5029378ffa86bc33acaa1637f28205166
4
- data.tar.gz: 674bb803ecbd64de4475ac095933872cd5708fc9165a07c3da299014e2149550
3
+ metadata.gz: 03e830a5335e55d2acd0db7d93e54bf12e657fc0cf21cc9c5676cf90a0cddc80
4
+ data.tar.gz: db3fc0c80480c15e84e6a40e019b569d7a7dc1645d1eaed8a28b73ccaf8b87a3
5
5
  SHA512:
6
- metadata.gz: d6d9e5c707598dec39cd1dc2108d65bfa66d863dda7857f9373ae68d6e5fb8f29d4409b35c478bf00850bb1e2ac0ff4de7ba286f55abf69d620404ddd2900808
7
- data.tar.gz: f5fb16f1d6cd0f6a369fb0c80f7fbdc015b8102d8261436c973f5cbc28b005ad1dec19089726e492fdd5ecc5214fa97a5c7f1e62e123a2feed41a38255e33873
6
+ metadata.gz: c79f2c5b731932fa74af03a1ddf08f89ed089d09104cac257d6720c9cdcccb0689ead099cf4a9a32b83b7c323434387a463b9cd9ea7a26615f7812d6bb8c6281
7
+ data.tar.gz: 69b47a4b15b8075a772273dc99a2a41e710859db437714b3a4e8e5963b79dacd6a7b69f59ee676e78e55c4e9e8267a774ec76093c0c593c0ce5bcc084e2697b8
@@ -24,6 +24,10 @@ class Kapellmeister::Dispatcher
24
24
  {}
25
25
  end
26
26
 
27
+ def query_params
28
+ {}
29
+ end
30
+
27
31
  def configuration
28
32
  self.class.module_parent.configuration
29
33
  end
@@ -37,10 +41,11 @@ class Kapellmeister::Dispatcher
37
41
 
38
42
  generated_connection = connection(additional_headers: additional_headers, requests_data: requests_data) # rubocop:disable Style/HashSyntax (for support ruby 2.4+)
39
43
 
40
- process generated_connection.run_request(method_name.downcase.to_sym, path, data_json, additional_headers)
44
+ process generated_connection.run_request(method_name.downcase.to_sym,
45
+ url_with_params(path),
46
+ data_json,
47
+ additional_headers)
41
48
 
42
- rescue NameError, RuntimeError
43
- raise "Library can't process method #{method_name} yet"
44
49
  rescue Faraday::ConnectionFailed, Faraday::TimeoutError => e
45
50
  failed_response(details: e.message)
46
51
  end
@@ -74,10 +79,23 @@ class Kapellmeister::Dispatcher
74
79
  }
75
80
  end
76
81
 
82
+ def path_generate(path)
83
+ path.query_parameters
84
+ end
85
+
77
86
  def process(data)
78
87
  report(data).result
79
88
  end
80
89
 
90
+ def url_with_params(url)
91
+ return url if query_params.blank?
92
+
93
+ uri = URI(url)
94
+ params = URI.decode_www_form(uri.query || '').to_h.merge(query_params)
95
+ uri.query = URI.encode_www_form(params)
96
+ uri.to_s
97
+ end
98
+
81
99
  def failed_response(**args)
82
100
  FailedResponse.new(false, { message: "#{self.class} no connection" }, { status: 555, **args })
83
101
  end
@@ -3,7 +3,9 @@ module Kapellmeister::RequestsExtension
3
3
  proc do |name, request_data|
4
4
  define_method name do |data = {}|
5
5
  proc { |method:, path:, body: {}, query_params: {}, mock: ''|
6
- return ::Kapellmeister::Base.routes_scheme_parse(mock) if (Rails.try(:env) || ENV['APP_ENV']) == 'test'
6
+ if (Rails.try(:env) || ENV.fetch('APP_ENV', nil)) == 'test'
7
+ return ::Kapellmeister::Base.routes_scheme_parse(mock)
8
+ end
7
9
 
8
10
  valid_body?(data, body)
9
11
  valid_query?(data, query_params)
@@ -36,7 +38,7 @@ def valid_body?(data, body)
36
38
  return if body.blank? || body.is_a?(Hash)
37
39
 
38
40
  schema = Object.const_get(body).schema
39
- result = schema.(data)
41
+ result = schema.call(data)
40
42
  return data if result.success?
41
43
 
42
44
  raise ArgumentError, result.errors.to_h
@@ -44,6 +46,7 @@ end
44
46
 
45
47
  def valid_query?(data, query)
46
48
  return if query.blank?
49
+
47
50
  required_keys = query.keys
48
51
 
49
52
  from_data = data.slice(*required_keys)
@@ -51,8 +54,8 @@ def valid_query?(data, query)
51
54
  data[:query_params] ||= {}
52
55
  data[:query_params] = data[:query_params].to_h.merge!(from_data)
53
56
 
54
- diffirent_keys = data[:query_params].transform_keys(&:to_sym)
55
- return if required_keys.all? { |key| diffirent_keys.has_key? key.to_sym }
57
+ different_keys = data[:query_params].transform_keys(&:to_sym)
58
+ return if required_keys.all? { |key| different_keys.key? key.to_sym }
56
59
 
57
60
  raise ArgumentError, "Query params needs keys #{required_keys}"
58
61
  end
@@ -1,3 +1,3 @@
1
1
  module Kapellmeister
2
- VERSION = '0.7.1'.freeze
2
+ VERSION = '0.7.2'.freeze
3
3
  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.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - DarkWater
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-13 00:00:00.000000000 Z
11
+ date: 2022-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-schema