ree_lib 1.0.1 → 1.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/Gemfile.lock +1 -1
- data/lib/ree_lib/packages/ree_json/package/ree_json.rb +0 -1
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/multi_logger.rb +1 -1
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/dto/endpoint_dto.rb +5 -1
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/dto/error_dto.rb +9 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_endpoint_schema.rb +29 -0
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_endpoint_schema_spec.rb +63 -4
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_schema_spec.rb +2 -1
- data/lib/ree_lib/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d39c69499684b2f63a3dfc5636265aceab2d0935cd4f6dfed10195cff8131989
|
4
|
+
data.tar.gz: 464e780303d9b8f1d1f8b786e507c87e708d5ba242520390fbf4f2643061d73d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac7641c5e60d758ac4aa3e4fe6237c7758e5c6a53dd096acbf3bd5ca266aa48a5fffe0b0e5e50b0b2ad54493482365fdf3a6de2bf6b938abff626b7864b5016b
|
7
|
+
data.tar.gz: 329fb7390b7183e14ee2d1b52a2d236e3afdf45d7a65ad3fa31ec871c01c0637716b72479f9de6e90e5d1a1b5eb5b1fae5630747509875387f17274689bdf3fd
|
data/Gemfile.lock
CHANGED
@@ -83,7 +83,7 @@ class ReeLogger::MultiLogger < Logger
|
|
83
83
|
end
|
84
84
|
|
85
85
|
contract(String, Hash, Nilor[Exception], Bool => nil)
|
86
|
-
def unknown(message, parameters = {}, exception
|
86
|
+
def unknown(message, parameters = {}, exception = nil, log_args = true)
|
87
87
|
log(:unknown, message, parameters, exception, true)
|
88
88
|
end
|
89
89
|
|
@@ -1,5 +1,8 @@
|
|
1
1
|
class ReeSwagger::EndpointDto
|
2
2
|
include ReeDto::EntityDSL
|
3
|
+
include Ree::LinkDSL
|
4
|
+
|
5
|
+
link 'ree_swagger/dto/error_dto', -> { ErrorDto }
|
3
6
|
|
4
7
|
properties(
|
5
8
|
method: Or[:get, :post, :put, :patch, :delete],
|
@@ -8,6 +11,7 @@ class ReeSwagger::EndpointDto
|
|
8
11
|
serializer: Nilor[ReeMapper::Mapper],
|
9
12
|
description: Nilor[String],
|
10
13
|
response_status: Integer,
|
11
|
-
response_description: Nilor[String]
|
14
|
+
response_description: Nilor[String],
|
15
|
+
errors: ArrayOf[ErrorDto]
|
12
16
|
)
|
13
17
|
end
|
data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_endpoint_schema.rb
CHANGED
@@ -88,6 +88,35 @@ class ReeSwagger::BuildEndpointSchema
|
|
88
88
|
endpoint.response_status => response_schema
|
89
89
|
}
|
90
90
|
|
91
|
+
endpoint.errors.each do |error|
|
92
|
+
if responses.key?(error.status)
|
93
|
+
responses[error.status][:description] += "\n\n#{error.description}"
|
94
|
+
next
|
95
|
+
end
|
96
|
+
|
97
|
+
responses[error.status] = {
|
98
|
+
description: error.description,
|
99
|
+
content: {
|
100
|
+
:'application/json' => {
|
101
|
+
schema: {
|
102
|
+
type: 'object',
|
103
|
+
properties: {
|
104
|
+
code: {
|
105
|
+
type: "string"
|
106
|
+
},
|
107
|
+
message: {
|
108
|
+
type: "string"
|
109
|
+
},
|
110
|
+
type: {
|
111
|
+
type: "string"
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}
|
116
|
+
}
|
117
|
+
}
|
118
|
+
end
|
119
|
+
|
91
120
|
method_schema = {
|
92
121
|
responses: responses
|
93
122
|
}
|
@@ -36,7 +36,21 @@ RSpec.describe :build_endpoint_schema do
|
|
36
36
|
caster: caster,
|
37
37
|
serializer: serializer,
|
38
38
|
response_status: 200,
|
39
|
-
description: nil
|
39
|
+
description: nil,
|
40
|
+
errors: [
|
41
|
+
ReeSwagger::ErrorDto.new(
|
42
|
+
status: 400,
|
43
|
+
description: "1st 400 error"
|
44
|
+
),
|
45
|
+
ReeSwagger::ErrorDto.new(
|
46
|
+
status: 400,
|
47
|
+
description: "2nd 400 error"
|
48
|
+
),
|
49
|
+
ReeSwagger::ErrorDto.new(
|
50
|
+
status: 401,
|
51
|
+
description: "401 error"
|
52
|
+
)
|
53
|
+
]
|
40
54
|
))
|
41
55
|
|
42
56
|
expect(schema).to eq(ReeSwagger::PathDto.new(
|
@@ -83,6 +97,48 @@ RSpec.describe :build_endpoint_schema do
|
|
83
97
|
}
|
84
98
|
}
|
85
99
|
}
|
100
|
+
},
|
101
|
+
400 => {
|
102
|
+
description: "1st 400 error\n\n2nd 400 error",
|
103
|
+
content: {
|
104
|
+
:'application/json' => {
|
105
|
+
schema: {
|
106
|
+
type: 'object',
|
107
|
+
properties: {
|
108
|
+
code: {
|
109
|
+
type: "string"
|
110
|
+
},
|
111
|
+
message: {
|
112
|
+
type: "string"
|
113
|
+
},
|
114
|
+
type: {
|
115
|
+
type: "string"
|
116
|
+
}
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}
|
121
|
+
},
|
122
|
+
401 => {
|
123
|
+
description: "401 error",
|
124
|
+
content: {
|
125
|
+
:'application/json' => {
|
126
|
+
schema: {
|
127
|
+
type: 'object',
|
128
|
+
properties: {
|
129
|
+
code: {
|
130
|
+
type: "string"
|
131
|
+
},
|
132
|
+
message: {
|
133
|
+
type: "string"
|
134
|
+
},
|
135
|
+
type: {
|
136
|
+
type: "string"
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
86
142
|
}
|
87
143
|
}
|
88
144
|
}
|
@@ -109,7 +165,8 @@ RSpec.describe :build_endpoint_schema do
|
|
109
165
|
caster: caster,
|
110
166
|
serializer: nil,
|
111
167
|
response_status: 200,
|
112
|
-
description: nil
|
168
|
+
description: nil,
|
169
|
+
errors: []
|
113
170
|
))
|
114
171
|
|
115
172
|
expect(schema).to eq(ReeSwagger::PathDto.new(
|
@@ -167,7 +224,8 @@ RSpec.describe :build_endpoint_schema do
|
|
167
224
|
caster: nil,
|
168
225
|
serializer: nil,
|
169
226
|
response_status: 200,
|
170
|
-
description: nil
|
227
|
+
description: nil,
|
228
|
+
errors: []
|
171
229
|
))
|
172
230
|
}.to raise_error(
|
173
231
|
ReeSwagger::BuildEndpointSchema::MissingCasterError,
|
@@ -187,7 +245,8 @@ RSpec.describe :build_endpoint_schema do
|
|
187
245
|
caster: caster,
|
188
246
|
serializer: nil,
|
189
247
|
response_status: 200,
|
190
|
-
description: nil
|
248
|
+
description: nil,
|
249
|
+
errors: []
|
191
250
|
))
|
192
251
|
}.to raise_error(
|
193
252
|
ReeSwagger::BuildEndpointSchema::MissingCasterError,
|
data/lib/ree_lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ree_lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruslan Gatiyatov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ree
|
@@ -1120,6 +1120,7 @@ files:
|
|
1120
1120
|
- lib/ree_lib/packages/ree_swagger/package/ree_swagger.rb
|
1121
1121
|
- lib/ree_lib/packages/ree_swagger/package/ree_swagger/beans/type_definitions_repo.rb
|
1122
1122
|
- lib/ree_lib/packages/ree_swagger/package/ree_swagger/dto/endpoint_dto.rb
|
1123
|
+
- lib/ree_lib/packages/ree_swagger/package/ree_swagger/dto/error_dto.rb
|
1123
1124
|
- lib/ree_lib/packages/ree_swagger/package/ree_swagger/dto/path_dto.rb
|
1124
1125
|
- lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_endpoint_schema.rb
|
1125
1126
|
- lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_parameters.rb
|