Skip to content
This repository was archived by the owner on Nov 8, 2024. It is now read-only.

Commit ed1d127

Browse files
authored
Prevent resource ending up in previous resource group (#320)
Prevent resource ending up in previous resource group
2 parents 571d9e4 + 95896b6 commit ed1d127

File tree

4 files changed

+356
-6
lines changed

4 files changed

+356
-6
lines changed

packages/fury-adapter-swagger/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Fury Swagger Parser Changelog
22

3+
## Master
4+
5+
### Bug Fixes
6+
7+
- Prevents a 'Path Item Object' from being included in a Resource Group created
8+
by an 'Operation Object' in a previously defined 'Path Item Object'.
9+
310
## 0.27.1 (2019-06-03)
411

512
### Bug Fixes

packages/fury-adapter-swagger/lib/parser.js

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -689,12 +689,6 @@ class Parser {
689689
});
690690
}
691691

692-
if (this.useResourceGroups()) {
693-
this.updateResourceGroup(pathValue['x-group-name']);
694-
}
695-
696-
this.group.content.push(resource);
697-
698692
const pathObjectParameters = pathValue.parameters || [];
699693
const resourceHrefVariables = this.createHrefVariables(pathObjectParameters);
700694

@@ -724,6 +718,17 @@ class Parser {
724718

725719
this.handleSwaggerVendorExtensions(resource, pathValue);
726720

721+
const operationsHaveTags = Object.values(relevantMethods).some(method => method.tags !== undefined && method.tags.length > 0);
722+
if (operationsHaveTags) {
723+
if (this.useResourceGroups()) {
724+
this.updateResourceGroup(pathValue['x-group-name']);
725+
}
726+
727+
this.group.content.push(resource);
728+
} else {
729+
this.api.push(resource);
730+
}
731+
727732
return resource;
728733
});
729734
}
Lines changed: 296 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,296 @@
1+
{
2+
"element": "parseResult",
3+
"content": [
4+
{
5+
"element": "category",
6+
"meta": {
7+
"classes": {
8+
"element": "array",
9+
"content": [
10+
{
11+
"element": "string",
12+
"content": "api"
13+
}
14+
]
15+
},
16+
"title": {
17+
"element": "string",
18+
"content": "Tags on some of the operations"
19+
}
20+
},
21+
"attributes": {
22+
"version": {
23+
"element": "string",
24+
"content": "v1"
25+
}
26+
},
27+
"content": [
28+
{
29+
"element": "category",
30+
"meta": {
31+
"title": {
32+
"element": "string",
33+
"content": "MyRG1"
34+
},
35+
"classes": {
36+
"element": "array",
37+
"content": [
38+
{
39+
"element": "string",
40+
"content": "resourceGroup"
41+
}
42+
]
43+
}
44+
},
45+
"content": [
46+
{
47+
"element": "resource",
48+
"attributes": {
49+
"href": {
50+
"element": "string",
51+
"content": "/one"
52+
}
53+
},
54+
"content": [
55+
{
56+
"element": "transition",
57+
"meta": {
58+
"title": {
59+
"element": "string",
60+
"content": "first resource"
61+
}
62+
},
63+
"content": [
64+
{
65+
"element": "httpTransaction",
66+
"content": [
67+
{
68+
"element": "httpRequest",
69+
"attributes": {
70+
"method": {
71+
"element": "string",
72+
"content": "GET"
73+
}
74+
}
75+
},
76+
{
77+
"element": "httpResponse",
78+
"attributes": {
79+
"statusCode": {
80+
"element": "string",
81+
"content": "200"
82+
}
83+
}
84+
}
85+
]
86+
}
87+
]
88+
}
89+
]
90+
},
91+
{
92+
"element": "resource",
93+
"attributes": {
94+
"href": {
95+
"element": "string",
96+
"content": "/three"
97+
}
98+
},
99+
"content": [
100+
{
101+
"element": "transition",
102+
"meta": {
103+
"title": {
104+
"element": "string",
105+
"content": "third resource"
106+
}
107+
},
108+
"content": [
109+
{
110+
"element": "httpTransaction",
111+
"content": [
112+
{
113+
"element": "httpRequest",
114+
"attributes": {
115+
"method": {
116+
"element": "string",
117+
"content": "GET"
118+
}
119+
}
120+
},
121+
{
122+
"element": "httpResponse",
123+
"attributes": {
124+
"statusCode": {
125+
"element": "string",
126+
"content": "200"
127+
}
128+
}
129+
}
130+
]
131+
}
132+
]
133+
}
134+
]
135+
}
136+
]
137+
},
138+
{
139+
"element": "resource",
140+
"attributes": {
141+
"href": {
142+
"element": "string",
143+
"content": "/two"
144+
}
145+
},
146+
"content": [
147+
{
148+
"element": "transition",
149+
"meta": {
150+
"title": {
151+
"element": "string",
152+
"content": "second resource"
153+
}
154+
},
155+
"content": [
156+
{
157+
"element": "httpTransaction",
158+
"content": [
159+
{
160+
"element": "httpRequest",
161+
"attributes": {
162+
"method": {
163+
"element": "string",
164+
"content": "GET"
165+
}
166+
}
167+
},
168+
{
169+
"element": "httpResponse",
170+
"attributes": {
171+
"statusCode": {
172+
"element": "string",
173+
"content": "200"
174+
}
175+
}
176+
}
177+
]
178+
}
179+
]
180+
}
181+
]
182+
},
183+
{
184+
"element": "category",
185+
"meta": {
186+
"title": {
187+
"element": "string",
188+
"content": "MyRG2"
189+
},
190+
"classes": {
191+
"element": "array",
192+
"content": [
193+
{
194+
"element": "string",
195+
"content": "resourceGroup"
196+
}
197+
]
198+
}
199+
},
200+
"content": [
201+
{
202+
"element": "resource",
203+
"attributes": {
204+
"href": {
205+
"element": "string",
206+
"content": "/four"
207+
}
208+
},
209+
"content": [
210+
{
211+
"element": "transition",
212+
"meta": {
213+
"title": {
214+
"element": "string",
215+
"content": "fourth resource"
216+
}
217+
},
218+
"content": [
219+
{
220+
"element": "httpTransaction",
221+
"content": [
222+
{
223+
"element": "httpRequest",
224+
"attributes": {
225+
"method": {
226+
"element": "string",
227+
"content": "GET"
228+
}
229+
}
230+
},
231+
{
232+
"element": "httpResponse",
233+
"attributes": {
234+
"statusCode": {
235+
"element": "string",
236+
"content": "200"
237+
}
238+
}
239+
}
240+
]
241+
}
242+
]
243+
}
244+
]
245+
}
246+
]
247+
},
248+
{
249+
"element": "resource",
250+
"attributes": {
251+
"href": {
252+
"element": "string",
253+
"content": "/five"
254+
}
255+
},
256+
"content": [
257+
{
258+
"element": "transition",
259+
"meta": {
260+
"title": {
261+
"element": "string",
262+
"content": "fith resource"
263+
}
264+
},
265+
"content": [
266+
{
267+
"element": "httpTransaction",
268+
"content": [
269+
{
270+
"element": "httpRequest",
271+
"attributes": {
272+
"method": {
273+
"element": "string",
274+
"content": "GET"
275+
}
276+
}
277+
},
278+
{
279+
"element": "httpResponse",
280+
"attributes": {
281+
"statusCode": {
282+
"element": "string",
283+
"content": "200"
284+
}
285+
}
286+
}
287+
]
288+
}
289+
]
290+
}
291+
]
292+
}
293+
]
294+
}
295+
]
296+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
swagger: '2.0'
2+
info:
3+
version: v1
4+
title: Tags on some of the operations
5+
paths:
6+
/one:
7+
get:
8+
summary: first resource
9+
tags:
10+
- MyRG1
11+
responses:
12+
200:
13+
description: ""
14+
/two:
15+
get:
16+
summary: second resource
17+
responses:
18+
200:
19+
description: ""
20+
/three:
21+
get:
22+
summary: third resource
23+
tags:
24+
- MyRG1
25+
responses:
26+
200:
27+
description: ""
28+
/four:
29+
get:
30+
summary: fourth resource
31+
tags:
32+
- MyRG2
33+
responses:
34+
200:
35+
description: ""
36+
/five:
37+
get:
38+
summary: fith resource
39+
tags: []
40+
responses:
41+
200:
42+
description: ""

0 commit comments

Comments
 (0)