Skip to content

Commit 0a3ac12

Browse files
committed
Update
1 parent 03aa2ac commit 0a3ac12

File tree

3 files changed

+65
-48
lines changed

3 files changed

+65
-48
lines changed

tools/cli/internal/changelog/merge.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,7 @@ func (m *Changelog) newPathsFromDeprecatedChanges(
204204
}
205205

206206
func (m *Changelog) newOasDiffEntries() ([]*outputfilter.OasDiffEntry, error) {
207-
// CLOUDP-267267: @Todo need to add the logic to hide from exceptions
208-
diffResult, err := m.OasDiff.NewDiffResult()
207+
diffResult, err := m.OasDiff.GetFlattenedDiff(m.Base, m.Revision)
209208
if err != nil {
210209
return nil, err
211210
}

tools/cli/internal/openapi/oasdiff.go

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"github.com/getkin/kin-openapi/openapi3"
2323
"github.com/mongodb/openapi/tools/cli/internal/openapi/errors"
2424
"github.com/tufin/oasdiff/diff"
25-
"github.com/tufin/oasdiff/flatten/allof"
2625
"github.com/tufin/oasdiff/load"
2726
)
2827

@@ -34,51 +33,6 @@ type OasDiff struct {
3433
parser Parser
3534
}
3635

37-
type OasDiffResult struct {
38-
Report *diff.Diff
39-
SourceMap *diff.OperationsSourcesMap
40-
SpecInfoPair *load.SpecInfoPair
41-
}
42-
43-
func (O *OasDiff) NewDiffResult() (*OasDiffResult, error) {
44-
45-
}
46-
47-
func (o OasDiff) NewDiffResult() (*OasDiffResult, error) {
48-
flattenBaseSpec, err := allof.MergeSpec(o.base.Spec)
49-
if err != nil {
50-
return nil, err
51-
}
52-
53-
baseSpecInfo := &load.SpecInfo{
54-
Spec: flattenBaseSpec,
55-
Url: o.base.Url,
56-
Version: o.base.GetVersion(),
57-
}
58-
59-
flattenExternalSpec, err := allof.MergeSpec(o.external.Spec)
60-
if err != nil {
61-
return nil, err
62-
}
63-
64-
externalSpecInfo := &load.SpecInfo{
65-
Spec: flattenExternalSpec,
66-
Url: o.external.Url,
67-
Version: o.external.GetVersion(),
68-
}
69-
70-
diffReport, operationsSources, err := diff.GetWithOperationsSourcesMap(o.config, baseSpecInfo, externalSpecInfo)
71-
if err != nil {
72-
return nil, err
73-
}
74-
75-
return &OasDiffResult{
76-
Report: diffReport,
77-
SourceMap: operationsSources,
78-
SpecInfoPair: load.NewSpecInfoPair(baseSpecInfo, externalSpecInfo),
79-
}, nil
80-
}
81-
8236
func (o OasDiff) mergeSpecIntoBase() (*load.SpecInfo, error) {
8337
if o.external == nil || o.external.Spec == nil {
8438
return o.base, nil
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
// Copyright 2024 MongoDB Inc
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
package openapi
16+
17+
import (
18+
"github.com/tufin/oasdiff/diff"
19+
"github.com/tufin/oasdiff/flatten/allof"
20+
"github.com/tufin/oasdiff/load"
21+
)
22+
23+
type OasDiffResult struct {
24+
Report *diff.Diff
25+
SourceMap *diff.OperationsSourcesMap
26+
SpecInfoPair *load.SpecInfoPair
27+
Config *diff.Config
28+
}
29+
30+
// GetFlattenedDiff returns the diff between two OpenAPI specs after flattening them.
31+
func (o OasDiff) GetFlattenedDiff(base, revision *load.SpecInfo) (*OasDiffResult, error) {
32+
flattenBaseSpec, err := allof.MergeSpec(base.Spec)
33+
if err != nil {
34+
return nil, err
35+
}
36+
37+
baseSpecInfo := &load.SpecInfo{
38+
Spec: flattenBaseSpec,
39+
Url: base.Url,
40+
Version: base.GetVersion(),
41+
}
42+
43+
flattenExternalSpec, err := allof.MergeSpec(revision.Spec)
44+
if err != nil {
45+
return nil, err
46+
}
47+
48+
revisionSpecInfo := &load.SpecInfo{
49+
Spec: flattenExternalSpec,
50+
Url: revision.Url,
51+
Version: revision.GetVersion(),
52+
}
53+
54+
diffReport, operationsSources, err := diff.GetWithOperationsSourcesMap(o.config, baseSpecInfo, revisionSpecInfo)
55+
if err != nil {
56+
return nil, err
57+
}
58+
59+
return &OasDiffResult{
60+
Report: diffReport,
61+
SourceMap: operationsSources,
62+
SpecInfoPair: load.NewSpecInfoPair(baseSpecInfo, revisionSpecInfo),
63+
}, nil
64+
}

0 commit comments

Comments
 (0)