Skip to content

Commit 00d5009

Browse files
committed
rebased
Signed-off-by: Pierre Fenoll <pierrefenoll@gmail.com>
1 parent 30cc4c0 commit 00d5009

File tree

6 files changed

+27
-15
lines changed

6 files changed

+27
-15
lines changed

openapi2conv/issue847_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ paths:
3535
err = v3.Validate(context.Background())
3636
require.NoError(t, err)
3737

38-
schemaRequired := v3.Paths["/ping"].Post.RequestBody.Value.Content["multipart/form-data"].Schema.Value.Required
38+
schemaRequired := v3.Paths.Value("/ping").Post.RequestBody.Value.Content["multipart/form-data"].Schema.Value.Required
3939
require.Equal(t, schemaRequired, []string{"file"})
4040

41-
fieldRequired := v3.Paths["/ping"].Post.RequestBody.Value.Content["multipart/form-data"].Schema.Value.Properties["file"].Value.Required
41+
fieldRequired := v3.Paths.Value("/ping").Post.RequestBody.Value.Content["multipart/form-data"].Schema.Value.Properties["file"].Value.Required
4242
require.Nil(t, fieldRequired)
4343
}

openapi3/callback.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,11 @@ func (pair *callbacksKV) Next() *callbacksKV {
5757
return (*callbacksKV)(ompair.Next())
5858
}
5959

60+
// NewCallbacksWithCapacity builds a callbacks object of the given capacity.
61+
func NewCallbacksWithCapacity(cap int) *Callbacks {
62+
return &Callbacks{om: orderedmap.New[string, *CallbackRef](cap)}
63+
}
64+
6065
var _ jsonpointer.JSONPointable = (*Callbacks)(nil)
6166

6267
// JSONLookup implements https://pkg.go.dev/github.com/go-openapi/jsonpointer#JSONPointable

openapi3/internalize_refs.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -241,13 +241,6 @@ func (doc *T) addCallbackToSpec(c *CallbackRef, refNameResolver RefNameResolver,
241241
return false
242242
}
243243
name := refNameResolver(c.Ref)
244-
245-
if doc.Components == nil {
246-
doc.Components = &Components{}
247-
}
248-
if doc.Components.Callbacks == nil {
249-
doc.Components.Callbacks = &Callbacks{}
250-
}
251244
c.Ref = "#/components/callbacks/" + name
252245
doc.Components.Callbacks.Set(name, &CallbackRef{Value: c.Value})
253246
return true
@@ -354,6 +347,13 @@ func (doc *T) derefPaths(paths *orderedmap.OrderedMap[string, *PathItem], refNam
354347
if op.RequestBody != nil && op.RequestBody.Value != nil {
355348
doc.derefRequestBody(*op.RequestBody.Value, refNameResolver, pathIsExternal || isExternal)
356349
}
350+
351+
if doc.Components == nil {
352+
doc.Components = &Components{}
353+
}
354+
if doc.Components.Callbacks == nil {
355+
doc.Components.Callbacks = NewCallbacksWithCapacity(op.Callbacks.Len())
356+
}
357357
for pair := op.Callbacks.Iter(); pair != nil; pair = pair.Next() {
358358
cb := pair.Value
359359
isExternal := doc.addCallbackToSpec(cb, refNameResolver, pathIsExternal)
@@ -362,6 +362,7 @@ func (doc *T) derefPaths(paths *orderedmap.OrderedMap[string, *PathItem], refNam
362362
doc.derefPaths(cbValue, refNameResolver, pathIsExternal || isExternal)
363363
}
364364
}
365+
365366
doc.derefResponses(op.Responses, refNameResolver, pathIsExternal)
366367
for _, param := range op.Parameters {
367368
isExternal := doc.addParameterToSpec(param, refNameResolver, pathIsExternal)
@@ -425,6 +426,12 @@ func (doc *T) InternalizeRefs(ctx context.Context, refNameResolver func(ref stri
425426
doc.derefExamples(components.Examples, refNameResolver, false)
426427
doc.derefLinks(components.Links, refNameResolver, false)
427428

429+
if doc.Components == nil {
430+
doc.Components = &Components{}
431+
}
432+
if doc.Components.Callbacks == nil {
433+
doc.Components.Callbacks = NewCallbacksWithCapacity(components.Callbacks.Len())
434+
}
428435
for pair := components.Callbacks.Iter(); pair != nil; pair = pair.Next() {
429436
cb := pair.Value
430437
isExternal := doc.addCallbackToSpec(cb, refNameResolver, false)

openapi3/issue819_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ paths:
3333
err = doc.Validate(sl.Context)
3434
require.NoError(t, err)
3535

36-
require.NotNil(t, doc.Paths["/v1/operation"].Get.Responses.Get(201))
37-
require.Nil(t, doc.Paths["/v1/operation"].Get.Responses.Get(404))
38-
require.Nil(t, doc.Paths["/v1/operation"].Get.Responses.Get(999))
36+
require.NotNil(t, doc.Paths.Value("/v1/operation").Get.Responses.Get(201))
37+
require.Nil(t, doc.Paths.Value("/v1/operation").Get.Responses.Get(404))
38+
require.Nil(t, doc.Paths.Value("/v1/operation").Get.Responses.Get(999))
3939
}

openapi3/refs_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ components:
230230
require.NoError(t, err)
231231
v, kind, err = ptr.Get(doc)
232232
require.NoError(t, err)
233-
require.IsType(t, Paths{}, v)
234-
require.Equal(t, reflect.TypeOf(Paths{}).Kind(), kind)
233+
require.IsType(t, &Paths{}, v)
234+
require.Equal(t, reflect.TypeOf(&Paths{}).Kind(), kind)
235235

236236
ptr, err = jsonpointer.New("/paths/~1pet")
237237
require.NoError(t, err)

openapi3filter/req_resp_decoder_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1042,7 +1042,7 @@ func TestDecodeParameter(t *testing.T) {
10421042
Title: "MyAPI",
10431043
Version: "0.1",
10441044
}
1045-
doc := &openapi3.T{OpenAPI: "3.0.0", Info: info, Paths: openapi3.Paths{}}
1045+
doc := &openapi3.T{OpenAPI: "3.0.0", Info: info, Paths: openapi3.NewPaths()}
10461046
op := &openapi3.Operation{
10471047
OperationID: "test",
10481048
Parameters: []*openapi3.ParameterRef{{Value: tc.param}},

0 commit comments

Comments
 (0)