Files
libopenapi/datamodel/high/v2/examples.go
2024-08-26 20:42:40 +01:00

35 lines
993 B
Go

// Copyright 2022 Princess B33f Heavy Industries / Dave Shanley
// SPDX-License-Identifier: MIT
package v2
import (
"github.com/pb33f/libopenapi/datamodel/low"
lowv2 "github.com/pb33f/libopenapi/datamodel/low/v2"
"github.com/pb33f/libopenapi/orderedmap"
"gopkg.in/yaml.v3"
)
// Example represents a high-level Swagger / OpenAPI 2 Example object, backed by a low level one.
// Allows sharing examples for operation responses
// - https://swagger.io/specification/v2/#exampleObject
type Example struct {
Values *orderedmap.Map[string, *yaml.Node]
low *lowv2.Examples
}
// NewExample creates a new high-level Example instance from a low-level one.
func NewExample(examples *lowv2.Examples) *Example {
e := new(Example)
e.low = examples
if orderedmap.Len(examples.Values) > 0 {
e.Values = low.FromReferenceMap(examples.Values)
}
return e
}
// GoLow returns the low-level Example used to create the high-level one.
func (e *Example) GoLow() *lowv2.Examples {
return e.low
}