mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-06 04:20:11 +00:00
Also ran `gofmt` across the entire project. Things need cleaning up. Signed-off-by: Dave Shanley <dave@quobix.com>
51 lines
1.5 KiB
Go
51 lines
1.5 KiB
Go
// Copyright 2022 Princess B33f Heavy Industries / Dave Shanley
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package base
|
|
|
|
import (
|
|
low2 "github.com/pb33f/libopenapi/datamodel/high"
|
|
low "github.com/pb33f/libopenapi/datamodel/low/base"
|
|
"gopkg.in/yaml.v3"
|
|
)
|
|
|
|
// Contact represents a high-level representation of the Contact definitions found at
|
|
//
|
|
// v2 - https://swagger.io/specification/v2/#contactObject
|
|
// v3 - https://spec.openapis.org/oas/v3.1.0#contact-object
|
|
type Contact struct {
|
|
Name string `json:"name,omitempty" yaml:"name,omitempty"`
|
|
URL string `json:"url,omitempty" yaml:"url,omitempty"`
|
|
Email string `json:"email,omitempty" yaml:"email,omitempty"`
|
|
low *low.Contact `json:"-" yaml:"-"` // low-level representation
|
|
}
|
|
|
|
// NewContact will create a new Contact instance using a low-level Contact
|
|
func NewContact(contact *low.Contact) *Contact {
|
|
c := new(Contact)
|
|
c.low = contact
|
|
c.URL = contact.URL.Value
|
|
c.Name = contact.Name.Value
|
|
c.Email = contact.Email.Value
|
|
return c
|
|
}
|
|
|
|
// GoLow returns the low level Contact object used to create the high-level one.
|
|
func (c *Contact) GoLow() *low.Contact {
|
|
return c.low
|
|
}
|
|
|
|
// GoLowUntyped will return the low-level Contact instance that was used to create the high-level one, with no type
|
|
func (c *Contact) GoLowUntyped() any {
|
|
return c.low
|
|
}
|
|
|
|
func (c *Contact) Render() ([]byte, error) {
|
|
return yaml.Marshal(c)
|
|
}
|
|
|
|
func (c *Contact) MarshalYAML() (interface{}, error) {
|
|
nb := low2.NewNodeBuilder(c, c.low)
|
|
return nb.Render(), nil
|
|
}
|