ree_lib 1.0.1 → 1.0.2

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: 3b78b5d2573b0674dc4f2eae170e408ac3f2fe18bb735be4fdd5ba8bbb7950e6
4
- data.tar.gz: 253c3e28a517d3d14dd3110cd774f5ae4086c1ba5e0d19110de9f7d8c6f05bd8
3
+ metadata.gz: d39c69499684b2f63a3dfc5636265aceab2d0935cd4f6dfed10195cff8131989
4
+ data.tar.gz: 464e780303d9b8f1d1f8b786e507c87e708d5ba242520390fbf4f2643061d73d
5
5
  SHA512:
6
- metadata.gz: c083f3c6b152024b97e90af5294db3aa0703fa7b0c50747de9596cbe7b4da7c87d8e190e68c25acc4a039ad00a7be549b2d0ad61bb05efd7d94cd6528d3dfecd
7
- data.tar.gz: a337f004cc876ca1b1be5a0fb2187767d568a45a05b2e8926e4490acb34e7354b72f3c9ff453f9980043e38a56a09f8796da4ea0f92d938c762908370ba9438a
6
+ metadata.gz: ac7641c5e60d758ac4aa3e4fe6237c7758e5c6a53dd096acbf3bd5ca266aa48a5fffe0b0e5e50b0b2ad54493482365fdf3a6de2bf6b938abff626b7864b5016b
7
+ data.tar.gz: 329fb7390b7183e14ee2d1b52a2d236e3afdf45d7a65ad3fa31ec871c01c0637716b72479f9de6e90e5d1a1b5eb5b1fae5630747509875387f17274689bdf3fd
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ree_lib (1.0.1)
4
+ ree_lib (1.0.2)
5
5
  binding_of_caller (~> 1.0.0)
6
6
  i18n (~> 1.12.0)
7
7
  loofah (~> 2.18.0)
@@ -6,5 +6,4 @@ module ReeJson
6
6
  package do
7
7
  depends_on :ree_hash
8
8
  end
9
-
10
9
  end
@@ -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 =nil, log_args = true)
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
@@ -0,0 +1,9 @@
1
+
2
+ class ReeSwagger::ErrorDto
3
+ include ReeDto::EntityDSL
4
+
5
+ properties(
6
+ status: Integer,
7
+ description: String,
8
+ )
9
+ end
@@ -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,
@@ -12,7 +12,8 @@ RSpec.describe :build_schema do
12
12
  caster: nil,
13
13
  serializer: nil,
14
14
  response_status: 200,
15
- description: nil
15
+ description: nil,
16
+ errors: []
16
17
  )]
17
18
  )
18
19
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReeLib
4
- VERSION = "1.0.1"
4
+ VERSION = "1.0.2"
5
5
  end
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.1
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-01 00:00:00.000000000 Z
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