Skip to content

Commit 126cef1

Browse files
Revert "feat: update the merge logic to generate an OAS where the fields are the same order as Atlas OAS"
This reverts commit 2d47372.
1 parent c17c42f commit 126cef1

File tree

4 files changed

+23
-39
lines changed

4 files changed

+23
-39
lines changed

tools/cli/internal/cli/merge/merge.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package merge
1616

1717
import (
18+
"bytes"
1819
"encoding/json"
1920
"fmt"
2021
"log"
@@ -40,14 +41,13 @@ func (o *Opts) Run() error {
4041
return err
4142
}
4243

43-
federatedBytes, err := json.MarshalIndent(*federated, "", " ")
44+
federatedBytes, err := federated.Spec.MarshalJSON()
4445
if err != nil {
4546
return err
4647
}
4748

4849
if o.outputPath == "" {
49-
fmt.Println(string(federatedBytes))
50-
return nil
50+
return prettyPrintJSON(federatedBytes)
5151
}
5252

5353
return o.saveFile(federatedBytes)
@@ -67,6 +67,15 @@ func (o *Opts) PreRunE(_ []string) error {
6767
return err
6868
}
6969

70+
func prettyPrintJSON(jsonBytes []byte) error {
71+
var prettyJSON bytes.Buffer
72+
if err := json.Indent(&prettyJSON, jsonBytes, "", " "); err != nil {
73+
return err
74+
}
75+
fmt.Println(prettyJSON.String())
76+
return nil
77+
}
78+
7079
func (o *Opts) saveFile(data []byte) error {
7180
if err := afero.WriteFile(o.fs, o.outputPath, data, 0o600); err != nil {
7281
return err

tools/cli/internal/cli/merge/merge_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@ package merge
1616

1717
import (
1818
"fmt"
19-
"github.com/getkin/kin-openapi/openapi3"
2019
"testing"
2120

21+
"github.com/getkin/kin-openapi/openapi3"
2222
"github.com/mongodb/openapi/tools/cli/internal/cli/flag"
2323
"github.com/mongodb/openapi/tools/cli/internal/openapi"
2424
"github.com/spf13/afero"
2525
"github.com/stretchr/testify/require"
26+
"github.com/tufin/oasdiff/load"
2627
"go.uber.org/mock/gomock"
2728
)
2829

@@ -39,11 +40,10 @@ func TestSuccessfulMerge_Run(t *testing.T) {
3940
fs: fs,
4041
}
4142

42-
response := &openapi.Spec{
43-
OpenAPI: "v3.0.1",
44-
Info: &openapi3.Info{},
45-
Servers: nil,
46-
Tags: openapi3.Tags{},
43+
response := &load.SpecInfo{
44+
Spec: &openapi3.T{},
45+
Url: "test",
46+
Version: "3.0.1",
4747
}
4848

4949
mockMergerStore.

tools/cli/internal/openapi/mock_openapi.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tools/cli/internal/openapi/openapi.go

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package openapi
1616

1717
//go:generate mockgen -destination=../openapi/mock_openapi.go -package=openapi github.com/mongodb/openapi/tools/cli/internal/openapi Parser,Merger
1818
import (
19-
"github.com/getkin/kin-openapi/openapi3"
2019
"log"
2120

2221
"github.com/tufin/oasdiff/diff"
@@ -28,21 +27,10 @@ type Parser interface {
2827
}
2928

3029
type Merger interface {
31-
MergeOpenAPISpecs([]string) (*Spec, error)
30+
MergeOpenAPISpecs([]string) (*load.SpecInfo, error)
3231
}
3332

34-
type Spec struct {
35-
OpenAPI string `json:"openapi" yaml:"openapi"`
36-
Info *openapi3.Info `json:"info" yaml:"info"`
37-
Servers openapi3.Servers `json:"servers,omitempty" yaml:"servers,omitempty"`
38-
Tags openapi3.Tags `json:"tags,omitempty" yaml:"tags,omitempty"`
39-
Paths *openapi3.Paths `json:"paths" yaml:"paths"`
40-
Components *openapi3.Components `json:"components,omitempty" yaml:"components,omitempty"`
41-
Security openapi3.SecurityRequirements `json:"security,omitempty" yaml:"security,omitempty"`
42-
ExternalDocs *openapi3.ExternalDocs `json:"externalDocs,omitempty" yaml:"externalDocs,omitempty"`
43-
}
44-
45-
func (o *OasDiff) MergeOpenAPISpecs(paths []string) (*Spec, error) {
33+
func (o *OasDiff) MergeOpenAPISpecs(paths []string) (*load.SpecInfo, error) {
4634
for _, p := range paths {
4735
spec, err := o.parser.CreateOpenAPISpecFromPath(p)
4836
if err != nil {
@@ -63,7 +51,7 @@ func (o *OasDiff) MergeOpenAPISpecs(paths []string) (*Spec, error) {
6351
}
6452
}
6553

66-
return newSpec(o.base), nil
54+
return o.base, nil
6755
}
6856

6957
func NewOasDiff(base string) (*OasDiff, error) {
@@ -81,16 +69,3 @@ func NewOasDiff(base string) (*OasDiff, error) {
8169
},
8270
}, nil
8371
}
84-
85-
func newSpec(specInfo *load.SpecInfo) *Spec {
86-
return &Spec{
87-
OpenAPI: specInfo.Spec.OpenAPI,
88-
Components: specInfo.Spec.Components,
89-
Info: specInfo.Spec.Info,
90-
Paths: specInfo.Spec.Paths,
91-
Security: specInfo.Spec.Security,
92-
Servers: specInfo.Spec.Servers,
93-
Tags: specInfo.Spec.Tags,
94-
ExternalDocs: specInfo.Spec.ExternalDocs,
95-
}
96-
}

0 commit comments

Comments
 (0)