http-client-generator 0.1.25 → 0.1.27
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae73c35b127935b814ee29b6f5fcb55f8afda0b1af73c9b005c545f924fb0b60
|
4
|
+
data.tar.gz: 6564a377fbe9b4ac20b8477ef81ca0dccaa784c91ec5a13f8d98fb74d12323f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 387710c3410320184a5338d03cb28c7051576996fc168cd3f9c5d2b7fdc2cbe4987bac57688a2196517dd75d1c6c2f0ed5fe701402be9f63758aac22f61f4609
|
7
|
+
data.tar.gz: e97d773976c7ba0f5b9600e550d04b6adf477f2c77a8627e9c96c963cc653f73617309a30a298f93317d407d295681d0a9ce6f7d4187d1ca88fa1386ad3a3d69
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module HttpClientGenerator
|
4
|
+
class Plugs
|
5
|
+
class ValidateRequest
|
6
|
+
Plugs.register :validate_request, self
|
7
|
+
|
8
|
+
def initialize(schema_helper:)
|
9
|
+
@schema_helper = schema_helper
|
10
|
+
end
|
11
|
+
|
12
|
+
def call(req)
|
13
|
+
schema_name = :"#{req.name}_#{req.verb}"
|
14
|
+
|
15
|
+
return req unless @schema_helper.respond_to?(schema_name)
|
16
|
+
|
17
|
+
req.response_body = @schema_helper.public_send(schema_name, req.body)
|
18
|
+
.value_or { |e| req.raise_message("Unexpected #{e.inspect} in #{req.body}") }
|
19
|
+
|
20
|
+
req
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
@@ -5,31 +5,8 @@ module HttpClientGenerator
|
|
5
5
|
class ValidateResponse
|
6
6
|
Plugs.register :validate_response, self
|
7
7
|
|
8
|
-
|
9
|
-
def self.included(base)
|
10
|
-
super
|
11
|
-
|
12
|
-
require 'datacaster'
|
13
|
-
base.extend(self)
|
14
|
-
end
|
15
|
-
|
16
|
-
def schema_for(name, &block)
|
17
|
-
@schemas ||= {}
|
18
|
-
@schemas[name] = Datacaster.choosy_schema(&block)
|
19
|
-
|
20
|
-
define_singleton_method(name) do |params|
|
21
|
-
@schemas[name].(params)
|
22
|
-
end
|
23
|
-
|
24
|
-
define_method(name) do |params|
|
25
|
-
@schemas[name].(params)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def initialize(schema_helper:, strict: false)
|
8
|
+
def initialize(schema_helper:)
|
31
9
|
@schema_helper = schema_helper
|
32
|
-
@strict = strict
|
33
10
|
end
|
34
11
|
|
35
12
|
def call(req)
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module HttpClientGenerator
|
4
|
+
module SchemaBuilder
|
5
|
+
def self.included(base)
|
6
|
+
super
|
7
|
+
|
8
|
+
require 'datacaster'
|
9
|
+
base.extend(self)
|
10
|
+
end
|
11
|
+
|
12
|
+
def schema_for(name, kind: :choosy, &block)
|
13
|
+
@schemas ||= {}
|
14
|
+
@schemas[name] =
|
15
|
+
case kind
|
16
|
+
in :choosy
|
17
|
+
Datacaster.choosy_schema(&block)
|
18
|
+
in :partial
|
19
|
+
Datacaster.partial_schema(&block)
|
20
|
+
in :strict
|
21
|
+
Datacaster.schema(&block)
|
22
|
+
end
|
23
|
+
|
24
|
+
define_singleton_method(name) do |params|
|
25
|
+
@schemas[name].(params)
|
26
|
+
end
|
27
|
+
|
28
|
+
define_method(name) do |params|
|
29
|
+
@schemas[name].(params)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: http-client-generator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.27
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Egorov
|
@@ -55,10 +55,12 @@ files:
|
|
55
55
|
- lib/http_client_generator/plugs/set_header.rb
|
56
56
|
- lib/http_client_generator/plugs/set_request_id.rb
|
57
57
|
- lib/http_client_generator/plugs/underscore_response.rb
|
58
|
+
- lib/http_client_generator/plugs/validate_request.rb
|
58
59
|
- lib/http_client_generator/plugs/validate_response.rb
|
59
60
|
- lib/http_client_generator/request.rb
|
60
61
|
- lib/http_client_generator/resource.rb
|
61
62
|
- lib/http_client_generator/resources_definition.rb
|
63
|
+
- lib/http_client_generator/schema_builder.rb
|
62
64
|
- lib/http_client_generator/version.rb
|
63
65
|
homepage:
|
64
66
|
licenses: []
|