github.com/goadesign/goa/codegen/service/testdata
testdata
import "github.com/goadesign/goa/codegen/service/testdata"
Overview
Index
- Constants
- Variables
- type ArrayStringT
- type ObjectExtraT
- type ObjectFieldT
- type ObjectT
- type StringPointerT
- type StringT
Package files
client_code.go convert_dsls.go convert_functions.go create_dsls.go create_functions.go endpoint_code.go endpoint_dsls.go security_dsls.go security_functions.go service_code.go service_dsls.go types.go views_code.go views_dsls.go
Constants
const BidirectionalStreamingMethod = `
// Service is the BidirectionalStreamingService service interface.
type Service interface {
// BidirectionalStreamingMethod implements BidirectionalStreamingMethod.
BidirectionalStreamingMethod(context.Context, *BPayload, BidirectionalStreamingMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "BidirectionalStreamingService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"BidirectionalStreamingMethod"}
// BidirectionalStreamingMethodServerStream is the interface a
// "BidirectionalStreamingMethod" endpoint server stream must satisfy.
type BidirectionalStreamingMethodServerStream interface {
// Send streams instances of "AResult".
Send(*AResult) error
// Recv reads instances of "APayload" from the stream.
Recv() (*APayload, error)
// Close closes the stream.
Close() error
}
// BidirectionalStreamingMethodClientStream is the interface a
// "BidirectionalStreamingMethod" endpoint client stream must satisfy.
type BidirectionalStreamingMethodClientStream interface {
// Send streams instances of "APayload".
Send(*APayload) error
// Recv reads instances of "AResult" from the stream.
Recv() (*AResult, error)
// Close closes the stream.
Close() error
}
// BPayload is the payload type of the BidirectionalStreamingService service
// BidirectionalStreamingMethod method.
type BPayload struct {
ArrayField []bool
MapField map[int]string
ObjectField *struct {
IntField *int
StringField *string
}
UserTypeField *Parent
}
// APayload is the streaming payload type of the BidirectionalStreamingService
// service BidirectionalStreamingMethod method.
type APayload struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
// AResult is the result type of the BidirectionalStreamingService service
// BidirectionalStreamingMethod method.
type AResult struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
type Parent struct {
C *Child
}
type Child struct {
P *Parent
}
`
const BidirectionalStreamingMethodClient = `// Client is the "BidirectionalStreamingService" service client.
type Client struct {
BidirectionalStreamingMethodEndpoint goa.Endpoint
}
// NewClient initializes a "BidirectionalStreamingService" service client given
// the endpoints.
func NewClient(bidirectionalStreamingMethod goa.Endpoint) *Client {
return &Client{
BidirectionalStreamingMethodEndpoint: bidirectionalStreamingMethod,
}
}
// BidirectionalStreamingMethod calls the "BidirectionalStreamingMethod"
// endpoint of the "BidirectionalStreamingService" service.
func (c *Client) BidirectionalStreamingMethod(ctx context.Context, p *BPayload)(res BidirectionalStreamingMethodClientStream, err error) {
var ires interface{}
ires, err = c.BidirectionalStreamingMethodEndpoint(ctx, p)
if err != nil {
return
}
return ires.(BidirectionalStreamingMethodClientStream), nil
}
`
const BidirectionalStreamingMethodEndpoint = `// Endpoints wraps the "BidirectionalStreamingEndpoint" service endpoints.
type Endpoints struct {
BidirectionalStreamingMethod goa.Endpoint
}
// BidirectionalStreamingMethodEndpointInput is the input type of
// "BidirectionalStreamingMethod" endpoint that holds the method payload and
// the server stream.
type BidirectionalStreamingMethodEndpointInput struct {
// Payload is the method payload.
Payload *AType
// Stream is the server stream used by the "BidirectionalStreamingMethod"
// method to send data.
Stream BidirectionalStreamingMethodServerStream
}
// NewEndpoints wraps the methods of the "BidirectionalStreamingEndpoint"
// service with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
BidirectionalStreamingMethod: NewBidirectionalStreamingMethodEndpoint(s),
}
}
// Use applies the given middleware to all the "BidirectionalStreamingEndpoint"
// service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.BidirectionalStreamingMethod = m(e.BidirectionalStreamingMethod)
}
// NewBidirectionalStreamingMethodEndpoint returns an endpoint function that
// calls the method "BidirectionalStreamingMethod" of service
// "BidirectionalStreamingEndpoint".
func NewBidirectionalStreamingMethodEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
ep := req.(*BidirectionalStreamingMethodEndpointInput)
return nil, s.BidirectionalStreamingMethod(ctx, ep.Payload, ep.Stream)
}
}
`
const BidirectionalStreamingNoPayloadMethod = `
// Service is the BidirectionalStreamingNoPayloadService service interface.
type Service interface {
// BidirectionalStreamingNoPayloadMethod implements
// BidirectionalStreamingNoPayloadMethod.
BidirectionalStreamingNoPayloadMethod(context.Context, BidirectionalStreamingNoPayloadMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "BidirectionalStreamingNoPayloadService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"BidirectionalStreamingNoPayloadMethod"}
// BidirectionalStreamingNoPayloadMethodServerStream is the interface a
// "BidirectionalStreamingNoPayloadMethod" endpoint server stream must satisfy.
type BidirectionalStreamingNoPayloadMethodServerStream interface {
// Send streams instances of "int".
Send(int) error
// Recv reads instances of "string" from the stream.
Recv() (string, error)
// Close closes the stream.
Close() error
}
// BidirectionalStreamingNoPayloadMethodClientStream is the interface a
// "BidirectionalStreamingNoPayloadMethod" endpoint client stream must satisfy.
type BidirectionalStreamingNoPayloadMethodClientStream interface {
// Send streams instances of "string".
Send(string) error
// Recv reads instances of "int" from the stream.
Recv() (int, error)
// Close closes the stream.
Close() error
}
`
const BidirectionalStreamingNoPayloadMethodClient = `// Client is the "BidirectionalStreamingNoPayloadService" service client.
type Client struct {
BidirectionalStreamingNoPayloadMethodEndpoint goa.Endpoint
}
// NewClient initializes a "BidirectionalStreamingNoPayloadService" service
// client given the endpoints.
func NewClient(bidirectionalStreamingNoPayloadMethod goa.Endpoint) *Client {
return &Client{
BidirectionalStreamingNoPayloadMethodEndpoint: bidirectionalStreamingNoPayloadMethod,
}
}
// BidirectionalStreamingNoPayloadMethod calls the
// "BidirectionalStreamingNoPayloadMethod" endpoint of the
// "BidirectionalStreamingNoPayloadService" service.
func (c *Client) BidirectionalStreamingNoPayloadMethod(ctx context.Context, )(res BidirectionalStreamingNoPayloadMethodClientStream, err error) {
var ires interface{}
ires, err = c.BidirectionalStreamingNoPayloadMethodEndpoint(ctx, nil)
if err != nil {
return
}
return ires.(BidirectionalStreamingNoPayloadMethodClientStream), nil
}
`
const BidirectionalStreamingNoPayloadMethodEndpoint = `// Endpoints wraps the "BidirectionalStreamingNoPayloadService" service
// endpoints.
type Endpoints struct {
BidirectionalStreamingNoPayloadMethod goa.Endpoint
}
// BidirectionalStreamingNoPayloadMethodEndpointInput is the input type of
// "BidirectionalStreamingNoPayloadMethod" endpoint that holds the method
// payload and the server stream.
type BidirectionalStreamingNoPayloadMethodEndpointInput struct {
// Stream is the server stream used by the
// "BidirectionalStreamingNoPayloadMethod" method to send data.
Stream BidirectionalStreamingNoPayloadMethodServerStream
}
// NewEndpoints wraps the methods of the
// "BidirectionalStreamingNoPayloadService" service with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
BidirectionalStreamingNoPayloadMethod: NewBidirectionalStreamingNoPayloadMethodEndpoint(s),
}
}
// Use applies the given middleware to all the
// "BidirectionalStreamingNoPayloadService" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.BidirectionalStreamingNoPayloadMethod = m(e.BidirectionalStreamingNoPayloadMethod)
}
// NewBidirectionalStreamingNoPayloadMethodEndpoint returns an endpoint
// function that calls the method "BidirectionalStreamingNoPayloadMethod" of
// service "BidirectionalStreamingNoPayloadService".
func NewBidirectionalStreamingNoPayloadMethodEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
ep := req.(*BidirectionalStreamingNoPayloadMethodEndpointInput)
return nil, s.BidirectionalStreamingNoPayloadMethod(ctx, ep.Stream)
}
}
`
const BidirectionalStreamingResultWithExplicitViewMethod = `
// Service is the BidirectionalStreamingResultWithExplicitViewService service
// interface.
type Service interface {
// BidirectionalStreamingResultWithExplicitViewMethod implements
// BidirectionalStreamingResultWithExplicitViewMethod.
BidirectionalStreamingResultWithExplicitViewMethod(context.Context, BidirectionalStreamingResultWithExplicitViewMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "BidirectionalStreamingResultWithExplicitViewService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"BidirectionalStreamingResultWithExplicitViewMethod"}
// BidirectionalStreamingResultWithExplicitViewMethodServerStream is the
// interface a "BidirectionalStreamingResultWithExplicitViewMethod" endpoint
// server stream must satisfy.
type BidirectionalStreamingResultWithExplicitViewMethodServerStream interface {
// Send streams instances of "MultipleViews".
Send(*MultipleViews) error
// Recv reads instances of "[][]byte" from the stream.
Recv() ([][]byte, error)
// Close closes the stream.
Close() error
}
// BidirectionalStreamingResultWithExplicitViewMethodClientStream is the
// interface a "BidirectionalStreamingResultWithExplicitViewMethod" endpoint
// client stream must satisfy.
type BidirectionalStreamingResultWithExplicitViewMethodClientStream interface {
// Send streams instances of "[][]byte".
Send([][]byte) error
// Recv reads instances of "MultipleViews" from the stream.
Recv() (*MultipleViews, error)
// Close closes the stream.
Close() error
}
// MultipleViews is the result type of the
// BidirectionalStreamingResultWithExplicitViewService service
// BidirectionalStreamingResultWithExplicitViewMethod method.
type MultipleViews struct {
A *string
B *string
}
// NewMultipleViews initializes result type MultipleViews from viewed result
// type MultipleViews.
func NewMultipleViews(vres *bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViews) *MultipleViews {
var res *MultipleViews
switch vres.View {
case "default", "":
res = newMultipleViews(vres.Projected)
case "tiny":
res = newMultipleViewsTiny(vres.Projected)
}
return res
}
// NewViewedMultipleViews initializes viewed result type MultipleViews from
// result type MultipleViews using the given view.
func NewViewedMultipleViews(res *MultipleViews, view string) *bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViews {
var vres *bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViews
switch view {
case "default", "":
p := newMultipleViewsView(res)
vres = &bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViews{p, "default"}
case "tiny":
p := newMultipleViewsViewTiny(res)
vres = &bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViews{p, "tiny"}
}
return vres
}
// newMultipleViews converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViews(vres *bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
B: vres.B,
}
return res
}
// newMultipleViewsTiny converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViewsTiny(vres *bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
}
return res
}
// newMultipleViewsView projects result type MultipleViews into projected type
// MultipleViewsView using the "default" view.
func newMultipleViewsView(res *MultipleViews) *bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViewsView {
vres := &bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViewsView{
A: res.A,
B: res.B,
}
return vres
}
// newMultipleViewsViewTiny projects result type MultipleViews into projected
// type MultipleViewsView using the "tiny" view.
func newMultipleViewsViewTiny(res *MultipleViews) *bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViewsView {
vres := &bidirectionalstreamingresultwithexplicitviewserviceviews.MultipleViewsView{
A: res.A,
}
return vres
}
`
const BidirectionalStreamingResultWithViewsMethod = `
// Service is the BidirectionalStreamingResultWithViewsService service
// interface.
type Service interface {
// BidirectionalStreamingResultWithViewsMethod implements
// BidirectionalStreamingResultWithViewsMethod.
// The "view" return value must have one of the following views
// - "default"
// - "tiny"
BidirectionalStreamingResultWithViewsMethod(context.Context, BidirectionalStreamingResultWithViewsMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "BidirectionalStreamingResultWithViewsService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"BidirectionalStreamingResultWithViewsMethod"}
// BidirectionalStreamingResultWithViewsMethodServerStream is the interface a
// "BidirectionalStreamingResultWithViewsMethod" endpoint server stream must
// satisfy.
type BidirectionalStreamingResultWithViewsMethodServerStream interface {
// Send streams instances of "MultipleViews".
Send(*MultipleViews) error
// Recv reads instances of "APayload" from the stream.
Recv() (*APayload, error)
// Close closes the stream.
Close() error
// SetView sets the view used to render the result before streaming.
SetView(view string)
}
// BidirectionalStreamingResultWithViewsMethodClientStream is the interface a
// "BidirectionalStreamingResultWithViewsMethod" endpoint client stream must
// satisfy.
type BidirectionalStreamingResultWithViewsMethodClientStream interface {
// Send streams instances of "APayload".
Send(*APayload) error
// Recv reads instances of "MultipleViews" from the stream.
Recv() (*MultipleViews, error)
// Close closes the stream.
Close() error
}
// APayload is the streaming payload type of the
// BidirectionalStreamingResultWithViewsService service
// BidirectionalStreamingResultWithViewsMethod method.
type APayload struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
// MultipleViews is the result type of the
// BidirectionalStreamingResultWithViewsService service
// BidirectionalStreamingResultWithViewsMethod method.
type MultipleViews struct {
A *string
B *string
}
// NewMultipleViews initializes result type MultipleViews from viewed result
// type MultipleViews.
func NewMultipleViews(vres *bidirectionalstreamingresultwithviewsserviceviews.MultipleViews) *MultipleViews {
var res *MultipleViews
switch vres.View {
case "default", "":
res = newMultipleViews(vres.Projected)
case "tiny":
res = newMultipleViewsTiny(vres.Projected)
}
return res
}
// NewViewedMultipleViews initializes viewed result type MultipleViews from
// result type MultipleViews using the given view.
func NewViewedMultipleViews(res *MultipleViews, view string) *bidirectionalstreamingresultwithviewsserviceviews.MultipleViews {
var vres *bidirectionalstreamingresultwithviewsserviceviews.MultipleViews
switch view {
case "default", "":
p := newMultipleViewsView(res)
vres = &bidirectionalstreamingresultwithviewsserviceviews.MultipleViews{p, "default"}
case "tiny":
p := newMultipleViewsViewTiny(res)
vres = &bidirectionalstreamingresultwithviewsserviceviews.MultipleViews{p, "tiny"}
}
return vres
}
// newMultipleViews converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViews(vres *bidirectionalstreamingresultwithviewsserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
B: vres.B,
}
return res
}
// newMultipleViewsTiny converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViewsTiny(vres *bidirectionalstreamingresultwithviewsserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
}
return res
}
// newMultipleViewsView projects result type MultipleViews into projected type
// MultipleViewsView using the "default" view.
func newMultipleViewsView(res *MultipleViews) *bidirectionalstreamingresultwithviewsserviceviews.MultipleViewsView {
vres := &bidirectionalstreamingresultwithviewsserviceviews.MultipleViewsView{
A: res.A,
B: res.B,
}
return vres
}
// newMultipleViewsViewTiny projects result type MultipleViews into projected
// type MultipleViewsView using the "tiny" view.
func newMultipleViewsViewTiny(res *MultipleViews) *bidirectionalstreamingresultwithviewsserviceviews.MultipleViewsView {
vres := &bidirectionalstreamingresultwithviewsserviceviews.MultipleViewsView{
A: res.A,
}
return vres
}
`
const EmptyMethod = `
// Service is the Empty service interface.
type Service interface {
// Empty implements Empty.
Empty(context.Context) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "Empty"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"Empty"}
`
const EmptyPayloadMethod = `
// Service is the EmptyPayload service interface.
type Service interface {
// EmptyPayload implements EmptyPayload.
EmptyPayload(context.Context) (res *AResult, err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "EmptyPayload"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"EmptyPayload"}
// AResult is the result type of the EmptyPayload service EmptyPayload method.
type AResult struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
`
const EmptyResultMethod = `
// Service is the EmptyResult service interface.
type Service interface {
// EmptyResult implements EmptyResult.
EmptyResult(context.Context, *APayload) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "EmptyResult"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"EmptyResult"}
// APayload is the payload type of the EmptyResult service EmptyResult method.
type APayload struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
`
const ForceGenerateType = `
// Service is the ForceGenerateType service interface.
type Service interface {
// A implements A.
A(context.Context) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "ForceGenerateType"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"A"}
type ForcedType struct {
A *string
}
`
const ForceGenerateTypeExplicit = `
// Service is the ForceGenerateTypeExplicit service interface.
type Service interface {
// A implements A.
A(context.Context) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "ForceGenerateTypeExplicit"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"A"}
type ForcedType struct {
A *string
}
`
const MultipleEndpoints = `// Endpoints wraps the "MultipleEndpoints" service endpoints.
type Endpoints struct {
B goa.Endpoint
C goa.Endpoint
}
// NewEndpoints wraps the methods of the "MultipleEndpoints" service with
// endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
B: NewBEndpoint(s),
C: NewCEndpoint(s),
}
}
// Use applies the given middleware to all the "MultipleEndpoints" service
// endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.B = m(e.B)
e.C = m(e.C)
}
// NewBEndpoint returns an endpoint function that calls the method "B" of
// service "MultipleEndpoints".
func NewBEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
p := req.(*BType)
return nil, s.B(ctx, p)
}
}
// NewCEndpoint returns an endpoint function that calls the method "C" of
// service "MultipleEndpoints".
func NewCEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
p := req.(*CType)
return nil, s.C(ctx, p)
}
}
`
const MultipleMethods = `
// Service is the MultipleMethods service interface.
type Service interface {
// A implements A.
A(context.Context, *APayload) (res *AResult, err error)
// B implements B.
B(context.Context, *BPayload) (res *BResult, err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "MultipleMethods"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [2]string{"A", "B"}
// APayload is the payload type of the MultipleMethods service A method.
type APayload struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
// AResult is the result type of the MultipleMethods service A method.
type AResult struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
// BPayload is the payload type of the MultipleMethods service B method.
type BPayload struct {
ArrayField []bool
MapField map[int]string
ObjectField *struct {
IntField *int
StringField *string
}
UserTypeField *Parent
}
// BResult is the result type of the MultipleMethods service B method.
type BResult struct {
ArrayField []bool
MapField map[int]string
ObjectField *struct {
IntField *int
StringField *string
}
UserTypeField *Parent
}
type Parent struct {
C *Child
}
type Child struct {
P *Parent
}
`
const MultipleMethodsClient = `// Client is the "MultipleEndpoints" service client.
type Client struct {
BEndpoint goa.Endpoint
CEndpoint goa.Endpoint
}
// NewClient initializes a "MultipleEndpoints" service client given the
// endpoints.
func NewClient(b, c goa.Endpoint) *Client {
return &Client{
BEndpoint: b,
CEndpoint: c,
}
}
// B calls the "B" endpoint of the "MultipleEndpoints" service.
func (c *Client) B(ctx context.Context, p *BType)(err error) {
_, err = c.BEndpoint(ctx, p)
return
}
// C calls the "C" endpoint of the "MultipleEndpoints" service.
func (c *Client) C(ctx context.Context, p *CType)(err error) {
_, err = c.CEndpoint(ctx, p)
return
}
`
const MultipleMethodsResultMultipleViews = `
// Service is the MultipleMethodsResultMultipleViews service interface.
type Service interface {
// A implements A.
// The "view" return value must have one of the following views
// - "default"
// - "tiny"
A(context.Context, *APayload) (res *MultipleViews, view string, err error)
// B implements B.
B(context.Context) (res *SingleView, err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "MultipleMethodsResultMultipleViews"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [2]string{"A", "B"}
// APayload is the payload type of the MultipleMethodsResultMultipleViews
// service A method.
type APayload struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
// MultipleViews is the result type of the MultipleMethodsResultMultipleViews
// service A method.
type MultipleViews struct {
A *string
B *string
}
// SingleView is the result type of the MultipleMethodsResultMultipleViews
// service B method.
type SingleView struct {
A *string
B *string
}
// NewMultipleViews initializes result type MultipleViews from viewed result
// type MultipleViews.
func NewMultipleViews(vres *multiplemethodsresultmultipleviewsviews.MultipleViews) *MultipleViews {
var res *MultipleViews
switch vres.View {
case "default", "":
res = newMultipleViews(vres.Projected)
case "tiny":
res = newMultipleViewsTiny(vres.Projected)
}
return res
}
// NewViewedMultipleViews initializes viewed result type MultipleViews from
// result type MultipleViews using the given view.
func NewViewedMultipleViews(res *MultipleViews, view string) *multiplemethodsresultmultipleviewsviews.MultipleViews {
var vres *multiplemethodsresultmultipleviewsviews.MultipleViews
switch view {
case "default", "":
p := newMultipleViewsView(res)
vres = &multiplemethodsresultmultipleviewsviews.MultipleViews{p, "default"}
case "tiny":
p := newMultipleViewsViewTiny(res)
vres = &multiplemethodsresultmultipleviewsviews.MultipleViews{p, "tiny"}
}
return vres
}
// NewSingleView initializes result type SingleView from viewed result type
// SingleView.
func NewSingleView(vres *multiplemethodsresultmultipleviewsviews.SingleView) *SingleView {
var res *SingleView
switch vres.View {
case "default", "":
res = newSingleView(vres.Projected)
}
return res
}
// NewViewedSingleView initializes viewed result type SingleView from result
// type SingleView using the given view.
func NewViewedSingleView(res *SingleView, view string) *multiplemethodsresultmultipleviewsviews.SingleView {
var vres *multiplemethodsresultmultipleviewsviews.SingleView
switch view {
case "default", "":
p := newSingleViewView(res)
vres = &multiplemethodsresultmultipleviewsviews.SingleView{p, "default"}
}
return vres
}
// newMultipleViews converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViews(vres *multiplemethodsresultmultipleviewsviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
B: vres.B,
}
return res
}
// newMultipleViewsTiny converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViewsTiny(vres *multiplemethodsresultmultipleviewsviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
}
return res
}
// newMultipleViewsView projects result type MultipleViews into projected type
// MultipleViewsView using the "default" view.
func newMultipleViewsView(res *MultipleViews) *multiplemethodsresultmultipleviewsviews.MultipleViewsView {
vres := &multiplemethodsresultmultipleviewsviews.MultipleViewsView{
A: res.A,
B: res.B,
}
return vres
}
// newMultipleViewsViewTiny projects result type MultipleViews into projected
// type MultipleViewsView using the "tiny" view.
func newMultipleViewsViewTiny(res *MultipleViews) *multiplemethodsresultmultipleviewsviews.MultipleViewsView {
vres := &multiplemethodsresultmultipleviewsviews.MultipleViewsView{
A: res.A,
}
return vres
}
// newSingleView converts projected type SingleView to service type SingleView.
func newSingleView(vres *multiplemethodsresultmultipleviewsviews.SingleViewView) *SingleView {
res := &SingleView{
A: vres.A,
B: vres.B,
}
return res
}
// newSingleViewView projects result type SingleView into projected type
// SingleViewView using the "default" view.
func newSingleViewView(res *SingleView) *multiplemethodsresultmultipleviewsviews.SingleViewView {
vres := &multiplemethodsresultmultipleviewsviews.SingleViewView{
A: res.A,
B: res.B,
}
return vres
}
`
const NoPayloadEndpoint = `// Endpoints wraps the "NoPayload" service endpoints.
type Endpoints struct {
NoPayload goa.Endpoint
}
// NewEndpoints wraps the methods of the "NoPayload" service with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
NoPayload: NewNoPayloadEndpoint(s),
}
}
// Use applies the given middleware to all the "NoPayload" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.NoPayload = m(e.NoPayload)
}
// NewNoPayloadEndpoint returns an endpoint function that calls the method
// "NoPayload" of service "NoPayload".
func NewNoPayloadEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
return nil, s.NoPayload(ctx)
}
}
`
const NoPayloadMethodsClient = `// Client is the "NoPayload" service client.
type Client struct {
NoPayloadEndpoint goa.Endpoint
}
// NewClient initializes a "NoPayload" service client given the endpoints.
func NewClient(noPayload goa.Endpoint) *Client {
return &Client{
NoPayloadEndpoint: noPayload,
}
}
// NoPayload calls the "NoPayload" endpoint of the "NoPayload" service.
func (c *Client) NoPayload(ctx context.Context, )(err error) {
_, err = c.NoPayloadEndpoint(ctx, nil)
return
}
`
const ResultCollectionMultipleViewsCode = `// ResultTypeCollection is the viewed result type that is projected based on a
// view.
type ResultTypeCollection struct {
// Type to project
Projected ResultTypeCollectionView
// View to render
View string
}
// ResultTypeCollectionView is a type that runs validations on a projected type.
type ResultTypeCollectionView []*ResultTypeView
// ResultTypeView is a type that runs validations on a projected type.
type ResultTypeView struct {
A *string
B *string
}
// Validate runs the validations defined on the viewed result type
// ResultTypeCollection.
func (result ResultTypeCollection) Validate() (err error) {
switch result.View {
case "default", "":
err = result.Projected.Validate()
case "tiny":
err = result.Projected.ValidateTiny()
default:
err = goa.InvalidEnumValueError("view", result.View, []interface{}{"default", "tiny"})
}
return
}
// Validate runs the validations defined on ResultTypeCollectionView using the
// "default" view.
func (result ResultTypeCollectionView) Validate() (err error) {
for _, item := range result {
if err2 := item.Validate(); err2 != nil {
err = goa.MergeErrors(err, err2)
}
}
return
}
// ValidateTiny runs the validations defined on ResultTypeCollectionView using
// the "tiny" view.
func (result ResultTypeCollectionView) ValidateTiny() (err error) {
for _, item := range result {
if err2 := item.ValidateTiny(); err2 != nil {
err = goa.MergeErrors(err, err2)
}
}
return
}
// Validate runs the validations defined on ResultTypeView using the "default"
// view.
func (result *ResultTypeView) Validate() (err error) {
if result.A == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("a", "result"))
}
if result.B == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("b", "result"))
}
return
}
// ValidateTiny runs the validations defined on ResultTypeView using the "tiny"
// view.
func (result *ResultTypeView) ValidateTiny() (err error) {
if result.A == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("a", "result"))
}
return
}
`
const ResultCollectionMultipleViewsMethod = `
// Service is the ResultCollectionMultipleViewsMethod service interface.
type Service interface {
// A implements A.
// The "view" return value must have one of the following views
// - "default"
// - "tiny"
A(context.Context) (res MultipleViewsCollection, view string, err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "ResultCollectionMultipleViewsMethod"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"A"}
// MultipleViewsCollection is the result type of the
// ResultCollectionMultipleViewsMethod service A method.
type MultipleViewsCollection []*MultipleViews
type MultipleViews struct {
A string
B int
}
// NewMultipleViewsCollection initializes result type MultipleViewsCollection
// from viewed result type MultipleViewsCollection.
func NewMultipleViewsCollection(vres resultcollectionmultipleviewsmethodviews.MultipleViewsCollection) MultipleViewsCollection {
var res MultipleViewsCollection
switch vres.View {
case "default", "":
res = newMultipleViewsCollection(vres.Projected)
case "tiny":
res = newMultipleViewsCollectionTiny(vres.Projected)
}
return res
}
// NewViewedMultipleViewsCollection initializes viewed result type
// MultipleViewsCollection from result type MultipleViewsCollection using the
// given view.
func NewViewedMultipleViewsCollection(res MultipleViewsCollection, view string) resultcollectionmultipleviewsmethodviews.MultipleViewsCollection {
var vres resultcollectionmultipleviewsmethodviews.MultipleViewsCollection
switch view {
case "default", "":
p := newMultipleViewsCollectionView(res)
vres = resultcollectionmultipleviewsmethodviews.MultipleViewsCollection{p, "default"}
case "tiny":
p := newMultipleViewsCollectionViewTiny(res)
vres = resultcollectionmultipleviewsmethodviews.MultipleViewsCollection{p, "tiny"}
}
return vres
}
// newMultipleViewsCollection converts projected type MultipleViewsCollection
// to service type MultipleViewsCollection.
func newMultipleViewsCollection(vres resultcollectionmultipleviewsmethodviews.MultipleViewsCollectionView) MultipleViewsCollection {
res := make(MultipleViewsCollection, len(vres))
for i, n := range vres {
res[i] = newMultipleViews(n)
}
return res
}
// newMultipleViewsCollectionTiny converts projected type
// MultipleViewsCollection to service type MultipleViewsCollection.
func newMultipleViewsCollectionTiny(vres resultcollectionmultipleviewsmethodviews.MultipleViewsCollectionView) MultipleViewsCollection {
res := make(MultipleViewsCollection, len(vres))
for i, n := range vres {
res[i] = newMultipleViewsTiny(n)
}
return res
}
// newMultipleViewsCollectionView projects result type MultipleViewsCollection
// into projected type MultipleViewsCollectionView using the "default" view.
func newMultipleViewsCollectionView(res MultipleViewsCollection) resultcollectionmultipleviewsmethodviews.MultipleViewsCollectionView {
vres := make(resultcollectionmultipleviewsmethodviews.MultipleViewsCollectionView, len(res))
for i, n := range res {
vres[i] = newMultipleViewsView(n)
}
return vres
}
// newMultipleViewsCollectionViewTiny projects result type
// MultipleViewsCollection into projected type MultipleViewsCollectionView
// using the "tiny" view.
func newMultipleViewsCollectionViewTiny(res MultipleViewsCollection) resultcollectionmultipleviewsmethodviews.MultipleViewsCollectionView {
vres := make(resultcollectionmultipleviewsmethodviews.MultipleViewsCollectionView, len(res))
for i, n := range res {
vres[i] = newMultipleViewsViewTiny(n)
}
return vres
}
// newMultipleViews converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViews(vres *resultcollectionmultipleviewsmethodviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{}
if vres.A != nil {
res.A = *vres.A
}
if vres.B != nil {
res.B = *vres.B
}
return res
}
// newMultipleViewsTiny converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViewsTiny(vres *resultcollectionmultipleviewsmethodviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{}
if vres.A != nil {
res.A = *vres.A
}
return res
}
// newMultipleViewsView projects result type MultipleViews into projected type
// MultipleViewsView using the "default" view.
func newMultipleViewsView(res *MultipleViews) *resultcollectionmultipleviewsmethodviews.MultipleViewsView {
vres := &resultcollectionmultipleviewsmethodviews.MultipleViewsView{
A: &res.A,
B: &res.B,
}
return vres
}
// newMultipleViewsViewTiny projects result type MultipleViews into projected
// type MultipleViewsView using the "tiny" view.
func newMultipleViewsViewTiny(res *MultipleViews) *resultcollectionmultipleviewsmethodviews.MultipleViewsView {
vres := &resultcollectionmultipleviewsmethodviews.MultipleViewsView{
A: &res.A,
}
return vres
}
`
const ResultWithMultipleViewsCode = `// ResultType is the viewed result type that is projected based on a view.
type ResultType struct {
// Type to project
Projected *ResultTypeView
// View to render
View string
}
// ResultTypeView is a type that runs validations on a projected type.
type ResultTypeView struct {
A *string
B *string
}
// Validate runs the validations defined on the viewed result type ResultType.
func (result *ResultType) Validate() (err error) {
switch result.View {
case "default", "":
err = result.Projected.Validate()
case "tiny":
err = result.Projected.ValidateTiny()
default:
err = goa.InvalidEnumValueError("view", result.View, []interface{}{"default", "tiny"})
}
return
}
// Validate runs the validations defined on ResultTypeView using the "default"
// view.
func (result *ResultTypeView) Validate() (err error) {
if result.A == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("a", "result"))
}
if result.B == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("b", "result"))
}
return
}
// ValidateTiny runs the validations defined on ResultTypeView using the "tiny"
// view.
func (result *ResultTypeView) ValidateTiny() (err error) {
if result.A == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("a", "result"))
}
return
}
`
const ResultWithOtherResultMethod = `
// Service is the ResultWithOtherResult service interface.
type Service interface {
// A implements A.
// The "view" return value must have one of the following views
// - "default"
// - "tiny"
A(context.Context) (res *MultipleViews, view string, err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "ResultWithOtherResult"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"A"}
// MultipleViews is the result type of the ResultWithOtherResult service A
// method.
type MultipleViews struct {
A string
B *MultipleViews2
}
type MultipleViews2 struct {
A string
B *string
}
// NewMultipleViews initializes result type MultipleViews from viewed result
// type MultipleViews.
func NewMultipleViews(vres *resultwithotherresultviews.MultipleViews) *MultipleViews {
var res *MultipleViews
switch vres.View {
case "default", "":
res = newMultipleViews(vres.Projected)
case "tiny":
res = newMultipleViewsTiny(vres.Projected)
}
return res
}
// NewViewedMultipleViews initializes viewed result type MultipleViews from
// result type MultipleViews using the given view.
func NewViewedMultipleViews(res *MultipleViews, view string) *resultwithotherresultviews.MultipleViews {
var vres *resultwithotherresultviews.MultipleViews
switch view {
case "default", "":
p := newMultipleViewsView(res)
vres = &resultwithotherresultviews.MultipleViews{p, "default"}
case "tiny":
p := newMultipleViewsViewTiny(res)
vres = &resultwithotherresultviews.MultipleViews{p, "tiny"}
}
return vres
}
// newMultipleViews converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViews(vres *resultwithotherresultviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{}
if vres.A != nil {
res.A = *vres.A
}
if vres.B != nil {
res.B = newMultipleViews2(vres.B)
}
return res
}
// newMultipleViewsTiny converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViewsTiny(vres *resultwithotherresultviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{}
if vres.A != nil {
res.A = *vres.A
}
if vres.B != nil {
res.B = newMultipleViews2(vres.B)
}
return res
}
// newMultipleViewsView projects result type MultipleViews into projected type
// MultipleViewsView using the "default" view.
func newMultipleViewsView(res *MultipleViews) *resultwithotherresultviews.MultipleViewsView {
vres := &resultwithotherresultviews.MultipleViewsView{
A: &res.A,
}
if res.B != nil {
vres.B = newMultipleViews2View(res.B)
}
return vres
}
// newMultipleViewsViewTiny projects result type MultipleViews into projected
// type MultipleViewsView using the "tiny" view.
func newMultipleViewsViewTiny(res *MultipleViews) *resultwithotherresultviews.MultipleViewsView {
vres := &resultwithotherresultviews.MultipleViewsView{
A: &res.A,
}
return vres
}
// newMultipleViews2 converts projected type MultipleViews2 to service type
// MultipleViews2.
func newMultipleViews2(vres *resultwithotherresultviews.MultipleViews2View) *MultipleViews2 {
res := &MultipleViews2{
B: vres.B,
}
if vres.A != nil {
res.A = *vres.A
}
return res
}
// newMultipleViews2Tiny converts projected type MultipleViews2 to service type
// MultipleViews2.
func newMultipleViews2Tiny(vres *resultwithotherresultviews.MultipleViews2View) *MultipleViews2 {
res := &MultipleViews2{}
if vres.A != nil {
res.A = *vres.A
}
return res
}
// newMultipleViews2View projects result type MultipleViews2 into projected
// type MultipleViews2View using the "default" view.
func newMultipleViews2View(res *MultipleViews2) *resultwithotherresultviews.MultipleViews2View {
vres := &resultwithotherresultviews.MultipleViews2View{
A: &res.A,
B: res.B,
}
return vres
}
// newMultipleViews2ViewTiny projects result type MultipleViews2 into projected
// type MultipleViews2View using the "tiny" view.
func newMultipleViews2ViewTiny(res *MultipleViews2) *resultwithotherresultviews.MultipleViews2View {
vres := &resultwithotherresultviews.MultipleViews2View{
A: &res.A,
}
return vres
}
`
const ResultWithRecursiveResultTypeCode = `// RT is the viewed result type that is projected based on a view.
type RT struct {
// Type to project
Projected *RTView
// View to render
View string
}
// RTView is a type that runs validations on a projected type.
type RTView struct {
A *RTView
}
// Validate runs the validations defined on the viewed result type RT.
func (result *RT) Validate() (err error) {
switch result.View {
case "default", "":
err = result.Projected.Validate()
case "tiny":
err = result.Projected.ValidateTiny()
default:
err = goa.InvalidEnumValueError("view", result.View, []interface{}{"default", "tiny"})
}
return
}
// Validate runs the validations defined on RTView using the "default" view.
func (result *RTView) Validate() (err error) {
if result.A == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("a", "result"))
}
if result.A != nil {
if err2 := result.A.ValidateTiny(); err2 != nil {
err = goa.MergeErrors(err, err2)
}
}
return
}
// ValidateTiny runs the validations defined on RTView using the "tiny" view.
func (result *RTView) ValidateTiny() (err error) {
if result.A == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("a", "result"))
}
if result.A != nil {
if err2 := result.A.Validate(); err2 != nil {
err = goa.MergeErrors(err, err2)
}
}
return
}
`
const ResultWithResultTypeCode = `// RT is the viewed result type that is projected based on a view.
type RT struct {
// Type to project
Projected *RTView
// View to render
View string
}
// RTView is a type that runs validations on a projected type.
type RTView struct {
A *string
B *RT2View
C *RT3View
}
// RT2View is a type that runs validations on a projected type.
type RT2View struct {
C *string
D *UserTypeView
E *string
}
// UserTypeView is a type that runs validations on a projected type.
type UserTypeView struct {
P *string
}
// RT3View is a type that runs validations on a projected type.
type RT3View struct {
X []string
Y map[int]*UserTypeView
Z *string
}
// Validate runs the validations defined on the viewed result type RT.
func (result *RT) Validate() (err error) {
switch result.View {
case "default", "":
err = result.Projected.Validate()
case "tiny":
err = result.Projected.ValidateTiny()
default:
err = goa.InvalidEnumValueError("view", result.View, []interface{}{"default", "tiny"})
}
return
}
// Validate runs the validations defined on RTView using the "default" view.
func (result *RTView) Validate() (err error) {
if result.B != nil {
if err2 := result.B.ValidateExtended(); err2 != nil {
err = goa.MergeErrors(err, err2)
}
}
if result.C != nil {
if err2 := result.C.Validate(); err2 != nil {
err = goa.MergeErrors(err, err2)
}
}
return
}
// ValidateTiny runs the validations defined on RTView using the "tiny" view.
func (result *RTView) ValidateTiny() (err error) {
if result.B != nil {
if err2 := result.B.ValidateTiny(); err2 != nil {
err = goa.MergeErrors(err, err2)
}
}
if result.C != nil {
if err2 := result.C.Validate(); err2 != nil {
err = goa.MergeErrors(err, err2)
}
}
return
}
// Validate runs the validations defined on RT2View using the "default" view.
func (result *RT2View) Validate() (err error) {
if result.C == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("c", "result"))
}
if result.D == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("d", "result"))
}
return
}
// ValidateExtended runs the validations defined on RT2View using the
// "extended" view.
func (result *RT2View) ValidateExtended() (err error) {
if result.C == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("c", "result"))
}
if result.D == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("d", "result"))
}
return
}
// ValidateTiny runs the validations defined on RT2View using the "tiny" view.
func (result *RT2View) ValidateTiny() (err error) {
if result.D == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("d", "result"))
}
return
}
// Validate runs the validations defined on UserTypeView.
func (result *UserTypeView) Validate() (err error) {
return
}
// Validate runs the validations defined on RT3View using the "default" view.
func (result *RT3View) Validate() (err error) {
if result.X == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("x", "result"))
}
if result.Y == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("y", "result"))
}
return
}
// ValidateTiny runs the validations defined on RT3View using the "tiny" view.
func (result *RT3View) ValidateTiny() (err error) {
if result.X == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("x", "result"))
}
return
}
`
const ResultWithUserTypeCode = `// ResultType is the viewed result type that is projected based on a view.
type ResultType struct {
// Type to project
Projected *ResultTypeView
// View to render
View string
}
// ResultTypeView is a type that runs validations on a projected type.
type ResultTypeView struct {
A *UserTypeView
B *string
}
// UserTypeView is a type that runs validations on a projected type.
type UserTypeView struct {
A *string
}
// Validate runs the validations defined on the viewed result type ResultType.
func (result *ResultType) Validate() (err error) {
switch result.View {
case "default", "":
err = result.Projected.Validate()
case "tiny":
err = result.Projected.ValidateTiny()
default:
err = goa.InvalidEnumValueError("view", result.View, []interface{}{"default", "tiny"})
}
return
}
// Validate runs the validations defined on ResultTypeView using the "default"
// view.
func (result *ResultTypeView) Validate() (err error) {
if result.A == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("a", "result"))
}
return
}
// ValidateTiny runs the validations defined on ResultTypeView using the "tiny"
// view.
func (result *ResultTypeView) ValidateTiny() (err error) {
if result.A == nil {
err = goa.MergeErrors(err, goa.MissingFieldError("a", "result"))
}
return
}
// Validate runs the validations defined on UserTypeView.
func (result *UserTypeView) Validate() (err error) {
return
}
`
const ServiceError = `
// Service is the ServiceError service interface.
type Service interface {
// A implements A.
A(context.Context) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "ServiceError"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"A"}
// MakeError builds a goa.ServiceError from an error.
func MakeError(err error) *goa.ServiceError {
return &goa.ServiceError{
Name: "error",
ID: goa.NewErrorID(),
Message: err.Error(),
}
}
`
const SingleEndpoint = `// Endpoints wraps the "SingleEndpoint" service endpoints.
type Endpoints struct {
A goa.Endpoint
}
// NewEndpoints wraps the methods of the "SingleEndpoint" service with
// endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
A: NewAEndpoint(s),
}
}
// Use applies the given middleware to all the "SingleEndpoint" service
// endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.A = m(e.A)
}
// NewAEndpoint returns an endpoint function that calls the method "A" of
// service "SingleEndpoint".
func NewAEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
p := req.(*AType)
return nil, s.A(ctx, p)
}
}
`
const SingleMethod = `
// Service is the SingleMethod service interface.
type Service interface {
// A implements A.
A(context.Context, *APayload) (res *AResult, err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "SingleMethod"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"A"}
// APayload is the payload type of the SingleMethod service A method.
type APayload struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
// AResult is the result type of the SingleMethod service A method.
type AResult struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
`
const SingleMethodClient = `// Client is the "SingleEndpoint" service client.
type Client struct {
AEndpoint goa.Endpoint
}
// NewClient initializes a "SingleEndpoint" service client given the endpoints.
func NewClient(a goa.Endpoint) *Client {
return &Client{
AEndpoint: a,
}
}
// A calls the "A" endpoint of the "SingleEndpoint" service.
func (c *Client) A(ctx context.Context, p *AType)(err error) {
_, err = c.AEndpoint(ctx, p)
return
}
`
const StreamingPayloadMethod = `
// Service is the StreamingPayloadService service interface.
type Service interface {
// StreamingPayloadMethod implements StreamingPayloadMethod.
StreamingPayloadMethod(context.Context, *BPayload, StreamingPayloadMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "StreamingPayloadService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"StreamingPayloadMethod"}
// StreamingPayloadMethodServerStream is the interface a
// "StreamingPayloadMethod" endpoint server stream must satisfy.
type StreamingPayloadMethodServerStream interface {
// SendAndClose streams instances of "AResult" and closes the stream.
SendAndClose(*AResult) error
// Recv reads instances of "APayload" from the stream.
Recv() (*APayload, error)
}
// StreamingPayloadMethodClientStream is the interface a
// "StreamingPayloadMethod" endpoint client stream must satisfy.
type StreamingPayloadMethodClientStream interface {
// Send streams instances of "APayload".
Send(*APayload) error
// CloseAndRecv stops sending messages to the stream and reads instances of
// "AResult" from the stream.
CloseAndRecv() (*AResult, error)
}
// BPayload is the payload type of the StreamingPayloadService service
// StreamingPayloadMethod method.
type BPayload struct {
ArrayField []bool
MapField map[int]string
ObjectField *struct {
IntField *int
StringField *string
}
UserTypeField *Parent
}
// APayload is the streaming payload type of the StreamingPayloadService
// service StreamingPayloadMethod method.
type APayload struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
// AResult is the result type of the StreamingPayloadService service
// StreamingPayloadMethod method.
type AResult struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
type Parent struct {
C *Child
}
type Child struct {
P *Parent
}
`
const StreamingPayloadMethodClient = `// Client is the "StreamingPayloadService" service client.
type Client struct {
StreamingPayloadMethodEndpoint goa.Endpoint
}
// NewClient initializes a "StreamingPayloadService" service client given the
// endpoints.
func NewClient(streamingPayloadMethod goa.Endpoint) *Client {
return &Client{
StreamingPayloadMethodEndpoint: streamingPayloadMethod,
}
}
// StreamingPayloadMethod calls the "StreamingPayloadMethod" endpoint of the
// "StreamingPayloadService" service.
func (c *Client) StreamingPayloadMethod(ctx context.Context, p *BPayload)(res StreamingPayloadMethodClientStream, err error) {
var ires interface{}
ires, err = c.StreamingPayloadMethodEndpoint(ctx, p)
if err != nil {
return
}
return ires.(StreamingPayloadMethodClientStream), nil
}
`
const StreamingPayloadMethodEndpoint = `// Endpoints wraps the "StreamingPayloadEndpoint" service endpoints.
type Endpoints struct {
StreamingPayloadMethod goa.Endpoint
}
// StreamingPayloadMethodEndpointInput is the input type of
// "StreamingPayloadMethod" endpoint that holds the method payload and the
// server stream.
type StreamingPayloadMethodEndpointInput struct {
// Payload is the method payload.
Payload *BType
// Stream is the server stream used by the "StreamingPayloadMethod" method to
// send data.
Stream StreamingPayloadMethodServerStream
}
// NewEndpoints wraps the methods of the "StreamingPayloadEndpoint" service
// with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
StreamingPayloadMethod: NewStreamingPayloadMethodEndpoint(s),
}
}
// Use applies the given middleware to all the "StreamingPayloadEndpoint"
// service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.StreamingPayloadMethod = m(e.StreamingPayloadMethod)
}
// NewStreamingPayloadMethodEndpoint returns an endpoint function that calls
// the method "StreamingPayloadMethod" of service "StreamingPayloadEndpoint".
func NewStreamingPayloadMethodEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
ep := req.(*StreamingPayloadMethodEndpointInput)
return nil, s.StreamingPayloadMethod(ctx, ep.Payload, ep.Stream)
}
}
`
const StreamingPayloadNoPayloadMethod = `
// Service is the StreamingPayloadNoPayloadService service interface.
type Service interface {
// StreamingPayloadNoPayloadMethod implements StreamingPayloadNoPayloadMethod.
StreamingPayloadNoPayloadMethod(context.Context, StreamingPayloadNoPayloadMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "StreamingPayloadNoPayloadService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"StreamingPayloadNoPayloadMethod"}
// StreamingPayloadNoPayloadMethodServerStream is the interface a
// "StreamingPayloadNoPayloadMethod" endpoint server stream must satisfy.
type StreamingPayloadNoPayloadMethodServerStream interface {
// SendAndClose streams instances of "string" and closes the stream.
SendAndClose(string) error
// Recv reads instances of "interface{}" from the stream.
Recv() (interface{}, error)
}
// StreamingPayloadNoPayloadMethodClientStream is the interface a
// "StreamingPayloadNoPayloadMethod" endpoint client stream must satisfy.
type StreamingPayloadNoPayloadMethodClientStream interface {
// Send streams instances of "interface{}".
Send(interface{}) error
// CloseAndRecv stops sending messages to the stream and reads instances of
// "string" from the stream.
CloseAndRecv() (string, error)
}
`
const StreamingPayloadNoPayloadMethodClient = `// Client is the "StreamingPayloadNoPayloadService" service client.
type Client struct {
StreamingPayloadNoPayloadMethodEndpoint goa.Endpoint
}
// NewClient initializes a "StreamingPayloadNoPayloadService" service client
// given the endpoints.
func NewClient(streamingPayloadNoPayloadMethod goa.Endpoint) *Client {
return &Client{
StreamingPayloadNoPayloadMethodEndpoint: streamingPayloadNoPayloadMethod,
}
}
// StreamingPayloadNoPayloadMethod calls the "StreamingPayloadNoPayloadMethod"
// endpoint of the "StreamingPayloadNoPayloadService" service.
func (c *Client) StreamingPayloadNoPayloadMethod(ctx context.Context, )(res StreamingPayloadNoPayloadMethodClientStream, err error) {
var ires interface{}
ires, err = c.StreamingPayloadNoPayloadMethodEndpoint(ctx, nil)
if err != nil {
return
}
return ires.(StreamingPayloadNoPayloadMethodClientStream), nil
}
`
const StreamingPayloadNoPayloadMethodEndpoint = `// Endpoints wraps the "StreamingPayloadNoPayloadService" service endpoints.
type Endpoints struct {
StreamingPayloadNoPayloadMethod goa.Endpoint
}
// StreamingPayloadNoPayloadMethodEndpointInput is the input type of
// "StreamingPayloadNoPayloadMethod" endpoint that holds the method payload and
// the server stream.
type StreamingPayloadNoPayloadMethodEndpointInput struct {
// Stream is the server stream used by the "StreamingPayloadNoPayloadMethod"
// method to send data.
Stream StreamingPayloadNoPayloadMethodServerStream
}
// NewEndpoints wraps the methods of the "StreamingPayloadNoPayloadService"
// service with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
StreamingPayloadNoPayloadMethod: NewStreamingPayloadNoPayloadMethodEndpoint(s),
}
}
// Use applies the given middleware to all the
// "StreamingPayloadNoPayloadService" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.StreamingPayloadNoPayloadMethod = m(e.StreamingPayloadNoPayloadMethod)
}
// NewStreamingPayloadNoPayloadMethodEndpoint returns an endpoint function that
// calls the method "StreamingPayloadNoPayloadMethod" of service
// "StreamingPayloadNoPayloadService".
func NewStreamingPayloadNoPayloadMethodEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
ep := req.(*StreamingPayloadNoPayloadMethodEndpointInput)
return nil, s.StreamingPayloadNoPayloadMethod(ctx, ep.Stream)
}
}
`
const StreamingPayloadNoResultMethod = `
// Service is the StreamingPayloadNoResultService service interface.
type Service interface {
// StreamingPayloadNoResultMethod implements StreamingPayloadNoResultMethod.
StreamingPayloadNoResultMethod(context.Context, StreamingPayloadNoResultMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "StreamingPayloadNoResultService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"StreamingPayloadNoResultMethod"}
// StreamingPayloadNoResultMethodServerStream is the interface a
// "StreamingPayloadNoResultMethod" endpoint server stream must satisfy.
type StreamingPayloadNoResultMethodServerStream interface {
// Recv reads instances of "int" from the stream.
Recv() (int, error)
// Close closes the stream.
Close() error
}
// StreamingPayloadNoResultMethodClientStream is the interface a
// "StreamingPayloadNoResultMethod" endpoint client stream must satisfy.
type StreamingPayloadNoResultMethodClientStream interface {
// Send streams instances of "int".
Send(int) error
// Close closes the stream.
Close() error
}
`
const StreamingPayloadNoResultMethodEndpoint = `// Endpoints wraps the "StreamingPayloadNoResultService" service endpoints.
type Endpoints struct {
StreamingPayloadNoResultMethod goa.Endpoint
}
// StreamingPayloadNoResultMethodEndpointInput is the input type of
// "StreamingPayloadNoResultMethod" endpoint that holds the method payload and
// the server stream.
type StreamingPayloadNoResultMethodEndpointInput struct {
// Stream is the server stream used by the "StreamingPayloadNoResultMethod"
// method to send data.
Stream StreamingPayloadNoResultMethodServerStream
}
// NewEndpoints wraps the methods of the "StreamingPayloadNoResultService"
// service with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
StreamingPayloadNoResultMethod: NewStreamingPayloadNoResultMethodEndpoint(s),
}
}
// Use applies the given middleware to all the
// "StreamingPayloadNoResultService" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.StreamingPayloadNoResultMethod = m(e.StreamingPayloadNoResultMethod)
}
// NewStreamingPayloadNoResultMethodEndpoint returns an endpoint function that
// calls the method "StreamingPayloadNoResultMethod" of service
// "StreamingPayloadNoResultService".
func NewStreamingPayloadNoResultMethodEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
ep := req.(*StreamingPayloadNoResultMethodEndpointInput)
return nil, s.StreamingPayloadNoResultMethod(ctx, ep.Stream)
}
}
`
const StreamingPayloadResultWithExplicitViewMethod = `
// Service is the StreamingPayloadResultWithExplicitViewService service
// interface.
type Service interface {
// StreamingPayloadResultWithExplicitViewMethod implements
// StreamingPayloadResultWithExplicitViewMethod.
StreamingPayloadResultWithExplicitViewMethod(context.Context, StreamingPayloadResultWithExplicitViewMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "StreamingPayloadResultWithExplicitViewService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"StreamingPayloadResultWithExplicitViewMethod"}
// StreamingPayloadResultWithExplicitViewMethodServerStream is the interface a
// "StreamingPayloadResultWithExplicitViewMethod" endpoint server stream must
// satisfy.
type StreamingPayloadResultWithExplicitViewMethodServerStream interface {
// SendAndClose streams instances of "MultipleViews" and closes the stream.
SendAndClose(*MultipleViews) error
// Recv reads instances of "[]string" from the stream.
Recv() ([]string, error)
}
// StreamingPayloadResultWithExplicitViewMethodClientStream is the interface a
// "StreamingPayloadResultWithExplicitViewMethod" endpoint client stream must
// satisfy.
type StreamingPayloadResultWithExplicitViewMethodClientStream interface {
// Send streams instances of "[]string".
Send([]string) error
// CloseAndRecv stops sending messages to the stream and reads instances of
// "MultipleViews" from the stream.
CloseAndRecv() (*MultipleViews, error)
}
// MultipleViews is the result type of the
// StreamingPayloadResultWithExplicitViewService service
// StreamingPayloadResultWithExplicitViewMethod method.
type MultipleViews struct {
A *string
B *string
}
// NewMultipleViews initializes result type MultipleViews from viewed result
// type MultipleViews.
func NewMultipleViews(vres *streamingpayloadresultwithexplicitviewserviceviews.MultipleViews) *MultipleViews {
var res *MultipleViews
switch vres.View {
case "default", "":
res = newMultipleViews(vres.Projected)
case "tiny":
res = newMultipleViewsTiny(vres.Projected)
}
return res
}
// NewViewedMultipleViews initializes viewed result type MultipleViews from
// result type MultipleViews using the given view.
func NewViewedMultipleViews(res *MultipleViews, view string) *streamingpayloadresultwithexplicitviewserviceviews.MultipleViews {
var vres *streamingpayloadresultwithexplicitviewserviceviews.MultipleViews
switch view {
case "default", "":
p := newMultipleViewsView(res)
vres = &streamingpayloadresultwithexplicitviewserviceviews.MultipleViews{p, "default"}
case "tiny":
p := newMultipleViewsViewTiny(res)
vres = &streamingpayloadresultwithexplicitviewserviceviews.MultipleViews{p, "tiny"}
}
return vres
}
// newMultipleViews converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViews(vres *streamingpayloadresultwithexplicitviewserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
B: vres.B,
}
return res
}
// newMultipleViewsTiny converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViewsTiny(vres *streamingpayloadresultwithexplicitviewserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
}
return res
}
// newMultipleViewsView projects result type MultipleViews into projected type
// MultipleViewsView using the "default" view.
func newMultipleViewsView(res *MultipleViews) *streamingpayloadresultwithexplicitviewserviceviews.MultipleViewsView {
vres := &streamingpayloadresultwithexplicitviewserviceviews.MultipleViewsView{
A: res.A,
B: res.B,
}
return vres
}
// newMultipleViewsViewTiny projects result type MultipleViews into projected
// type MultipleViewsView using the "tiny" view.
func newMultipleViewsViewTiny(res *MultipleViews) *streamingpayloadresultwithexplicitviewserviceviews.MultipleViewsView {
vres := &streamingpayloadresultwithexplicitviewserviceviews.MultipleViewsView{
A: res.A,
}
return vres
}
`
const StreamingPayloadResultWithViewsMethod = `
// Service is the StreamingPayloadResultWithViewsService service interface.
type Service interface {
// StreamingPayloadResultWithViewsMethod implements
// StreamingPayloadResultWithViewsMethod.
// The "view" return value must have one of the following views
// - "default"
// - "tiny"
StreamingPayloadResultWithViewsMethod(context.Context, StreamingPayloadResultWithViewsMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "StreamingPayloadResultWithViewsService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"StreamingPayloadResultWithViewsMethod"}
// StreamingPayloadResultWithViewsMethodServerStream is the interface a
// "StreamingPayloadResultWithViewsMethod" endpoint server stream must satisfy.
type StreamingPayloadResultWithViewsMethodServerStream interface {
// SendAndClose streams instances of "MultipleViews" and closes the stream.
SendAndClose(*MultipleViews) error
// Recv reads instances of "APayload" from the stream.
Recv() (*APayload, error)
// SetView sets the view used to render the result before streaming.
SetView(view string)
}
// StreamingPayloadResultWithViewsMethodClientStream is the interface a
// "StreamingPayloadResultWithViewsMethod" endpoint client stream must satisfy.
type StreamingPayloadResultWithViewsMethodClientStream interface {
// Send streams instances of "APayload".
Send(*APayload) error
// CloseAndRecv stops sending messages to the stream and reads instances of
// "MultipleViews" from the stream.
CloseAndRecv() (*MultipleViews, error)
}
// APayload is the streaming payload type of the
// StreamingPayloadResultWithViewsService service
// StreamingPayloadResultWithViewsMethod method.
type APayload struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
// MultipleViews is the result type of the
// StreamingPayloadResultWithViewsService service
// StreamingPayloadResultWithViewsMethod method.
type MultipleViews struct {
A *string
B *string
}
// NewMultipleViews initializes result type MultipleViews from viewed result
// type MultipleViews.
func NewMultipleViews(vres *streamingpayloadresultwithviewsserviceviews.MultipleViews) *MultipleViews {
var res *MultipleViews
switch vres.View {
case "default", "":
res = newMultipleViews(vres.Projected)
case "tiny":
res = newMultipleViewsTiny(vres.Projected)
}
return res
}
// NewViewedMultipleViews initializes viewed result type MultipleViews from
// result type MultipleViews using the given view.
func NewViewedMultipleViews(res *MultipleViews, view string) *streamingpayloadresultwithviewsserviceviews.MultipleViews {
var vres *streamingpayloadresultwithviewsserviceviews.MultipleViews
switch view {
case "default", "":
p := newMultipleViewsView(res)
vres = &streamingpayloadresultwithviewsserviceviews.MultipleViews{p, "default"}
case "tiny":
p := newMultipleViewsViewTiny(res)
vres = &streamingpayloadresultwithviewsserviceviews.MultipleViews{p, "tiny"}
}
return vres
}
// newMultipleViews converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViews(vres *streamingpayloadresultwithviewsserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
B: vres.B,
}
return res
}
// newMultipleViewsTiny converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViewsTiny(vres *streamingpayloadresultwithviewsserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
}
return res
}
// newMultipleViewsView projects result type MultipleViews into projected type
// MultipleViewsView using the "default" view.
func newMultipleViewsView(res *MultipleViews) *streamingpayloadresultwithviewsserviceviews.MultipleViewsView {
vres := &streamingpayloadresultwithviewsserviceviews.MultipleViewsView{
A: res.A,
B: res.B,
}
return vres
}
// newMultipleViewsViewTiny projects result type MultipleViews into projected
// type MultipleViewsView using the "tiny" view.
func newMultipleViewsViewTiny(res *MultipleViews) *streamingpayloadresultwithviewsserviceviews.MultipleViewsView {
vres := &streamingpayloadresultwithviewsserviceviews.MultipleViewsView{
A: res.A,
}
return vres
}
`
const StreamingResultMethod = `
// Service is the StreamingResultService service interface.
type Service interface {
// StreamingResultMethod implements StreamingResultMethod.
StreamingResultMethod(context.Context, *APayload, StreamingResultMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "StreamingResultService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"StreamingResultMethod"}
// StreamingResultMethodServerStream is the interface a "StreamingResultMethod"
// endpoint server stream must satisfy.
type StreamingResultMethodServerStream interface {
// Send streams instances of "AResult".
Send(*AResult) error
// Close closes the stream.
Close() error
}
// StreamingResultMethodClientStream is the interface a "StreamingResultMethod"
// endpoint client stream must satisfy.
type StreamingResultMethodClientStream interface {
// Recv reads instances of "AResult" from the stream.
Recv() (*AResult, error)
}
// APayload is the payload type of the StreamingResultService service
// StreamingResultMethod method.
type APayload struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
// AResult is the result type of the StreamingResultService service
// StreamingResultMethod method.
type AResult struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
`
const StreamingResultMethodClient = `// Client is the "StreamingResultService" service client.
type Client struct {
StreamingResultMethodEndpoint goa.Endpoint
}
// NewClient initializes a "StreamingResultService" service client given the
// endpoints.
func NewClient(streamingResultMethod goa.Endpoint) *Client {
return &Client{
StreamingResultMethodEndpoint: streamingResultMethod,
}
}
// StreamingResultMethod calls the "StreamingResultMethod" endpoint of the
// "StreamingResultService" service.
func (c *Client) StreamingResultMethod(ctx context.Context, p *APayload)(res StreamingResultMethodClientStream, err error) {
var ires interface{}
ires, err = c.StreamingResultMethodEndpoint(ctx, p)
if err != nil {
return
}
return ires.(StreamingResultMethodClientStream), nil
}
`
const StreamingResultMethodEndpoint = `// Endpoints wraps the "StreamingResultEndpoint" service endpoints.
type Endpoints struct {
StreamingResultMethod goa.Endpoint
}
// StreamingResultMethodEndpointInput is the input type of
// "StreamingResultMethod" endpoint that holds the method payload and the
// server stream.
type StreamingResultMethodEndpointInput struct {
// Payload is the method payload.
Payload *AType
// Stream is the server stream used by the "StreamingResultMethod" method to
// send data.
Stream StreamingResultMethodServerStream
}
// NewEndpoints wraps the methods of the "StreamingResultEndpoint" service with
// endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
StreamingResultMethod: NewStreamingResultMethodEndpoint(s),
}
}
// Use applies the given middleware to all the "StreamingResultEndpoint"
// service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.StreamingResultMethod = m(e.StreamingResultMethod)
}
// NewStreamingResultMethodEndpoint returns an endpoint function that calls the
// method "StreamingResultMethod" of service "StreamingResultEndpoint".
func NewStreamingResultMethodEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
ep := req.(*StreamingResultMethodEndpointInput)
return nil, s.StreamingResultMethod(ctx, ep.Payload, ep.Stream)
}
}
`
const StreamingResultNoPayloadMethod = `
// Service is the StreamingResultNoPayloadService service interface.
type Service interface {
// StreamingResultNoPayloadMethod implements StreamingResultNoPayloadMethod.
StreamingResultNoPayloadMethod(context.Context, StreamingResultNoPayloadMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "StreamingResultNoPayloadService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"StreamingResultNoPayloadMethod"}
// StreamingResultNoPayloadMethodServerStream is the interface a
// "StreamingResultNoPayloadMethod" endpoint server stream must satisfy.
type StreamingResultNoPayloadMethodServerStream interface {
// Send streams instances of "AResult".
Send(*AResult) error
// Close closes the stream.
Close() error
}
// StreamingResultNoPayloadMethodClientStream is the interface a
// "StreamingResultNoPayloadMethod" endpoint client stream must satisfy.
type StreamingResultNoPayloadMethodClientStream interface {
// Recv reads instances of "AResult" from the stream.
Recv() (*AResult, error)
}
// AResult is the result type of the StreamingResultNoPayloadService service
// StreamingResultNoPayloadMethod method.
type AResult struct {
IntField int
StringField string
BooleanField bool
BytesField []byte
OptionalField *string
}
`
const StreamingResultNoPayloadMethodClient = `// Client is the "StreamingResultNoPayloadService" service client.
type Client struct {
StreamingResultNoPayloadMethodEndpoint goa.Endpoint
}
// NewClient initializes a "StreamingResultNoPayloadService" service client
// given the endpoints.
func NewClient(streamingResultNoPayloadMethod goa.Endpoint) *Client {
return &Client{
StreamingResultNoPayloadMethodEndpoint: streamingResultNoPayloadMethod,
}
}
// StreamingResultNoPayloadMethod calls the "StreamingResultNoPayloadMethod"
// endpoint of the "StreamingResultNoPayloadService" service.
func (c *Client) StreamingResultNoPayloadMethod(ctx context.Context, )(res StreamingResultNoPayloadMethodClientStream, err error) {
var ires interface{}
ires, err = c.StreamingResultNoPayloadMethodEndpoint(ctx, nil)
if err != nil {
return
}
return ires.(StreamingResultNoPayloadMethodClientStream), nil
}
`
const StreamingResultNoPayloadMethodEndpoint = `// Endpoints wraps the "StreamingResultNoPayloadEndpoint" service endpoints.
type Endpoints struct {
StreamingResultNoPayloadMethod goa.Endpoint
}
// StreamingResultNoPayloadMethodEndpointInput is the input type of
// "StreamingResultNoPayloadMethod" endpoint that holds the method payload and
// the server stream.
type StreamingResultNoPayloadMethodEndpointInput struct {
// Stream is the server stream used by the "StreamingResultNoPayloadMethod"
// method to send data.
Stream StreamingResultNoPayloadMethodServerStream
}
// NewEndpoints wraps the methods of the "StreamingResultNoPayloadEndpoint"
// service with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
StreamingResultNoPayloadMethod: NewStreamingResultNoPayloadMethodEndpoint(s),
}
}
// Use applies the given middleware to all the
// "StreamingResultNoPayloadEndpoint" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.StreamingResultNoPayloadMethod = m(e.StreamingResultNoPayloadMethod)
}
// NewStreamingResultNoPayloadMethodEndpoint returns an endpoint function that
// calls the method "StreamingResultNoPayloadMethod" of service
// "StreamingResultNoPayloadEndpoint".
func NewStreamingResultNoPayloadMethodEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
ep := req.(*StreamingResultNoPayloadMethodEndpointInput)
return nil, s.StreamingResultNoPayloadMethod(ctx, ep.Stream)
}
}
`
const StreamingResultWithExplicitViewMethod = `
// Service is the StreamingResultWithExplicitViewService service interface.
type Service interface {
// StreamingResultWithExplicitViewMethod implements
// StreamingResultWithExplicitViewMethod.
StreamingResultWithExplicitViewMethod(context.Context, []int32, StreamingResultWithExplicitViewMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "StreamingResultWithExplicitViewService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"StreamingResultWithExplicitViewMethod"}
// StreamingResultWithExplicitViewMethodServerStream is the interface a
// "StreamingResultWithExplicitViewMethod" endpoint server stream must satisfy.
type StreamingResultWithExplicitViewMethodServerStream interface {
// Send streams instances of "MultipleViews".
Send(*MultipleViews) error
// Close closes the stream.
Close() error
}
// StreamingResultWithExplicitViewMethodClientStream is the interface a
// "StreamingResultWithExplicitViewMethod" endpoint client stream must satisfy.
type StreamingResultWithExplicitViewMethodClientStream interface {
// Recv reads instances of "MultipleViews" from the stream.
Recv() (*MultipleViews, error)
}
// MultipleViews is the result type of the
// StreamingResultWithExplicitViewService service
// StreamingResultWithExplicitViewMethod method.
type MultipleViews struct {
A *string
B *string
}
// NewMultipleViews initializes result type MultipleViews from viewed result
// type MultipleViews.
func NewMultipleViews(vres *streamingresultwithexplicitviewserviceviews.MultipleViews) *MultipleViews {
var res *MultipleViews
switch vres.View {
case "default", "":
res = newMultipleViews(vres.Projected)
case "tiny":
res = newMultipleViewsTiny(vres.Projected)
}
return res
}
// NewViewedMultipleViews initializes viewed result type MultipleViews from
// result type MultipleViews using the given view.
func NewViewedMultipleViews(res *MultipleViews, view string) *streamingresultwithexplicitviewserviceviews.MultipleViews {
var vres *streamingresultwithexplicitviewserviceviews.MultipleViews
switch view {
case "default", "":
p := newMultipleViewsView(res)
vres = &streamingresultwithexplicitviewserviceviews.MultipleViews{p, "default"}
case "tiny":
p := newMultipleViewsViewTiny(res)
vres = &streamingresultwithexplicitviewserviceviews.MultipleViews{p, "tiny"}
}
return vres
}
// newMultipleViews converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViews(vres *streamingresultwithexplicitviewserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
B: vres.B,
}
return res
}
// newMultipleViewsTiny converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViewsTiny(vres *streamingresultwithexplicitviewserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
}
return res
}
// newMultipleViewsView projects result type MultipleViews into projected type
// MultipleViewsView using the "default" view.
func newMultipleViewsView(res *MultipleViews) *streamingresultwithexplicitviewserviceviews.MultipleViewsView {
vres := &streamingresultwithexplicitviewserviceviews.MultipleViewsView{
A: res.A,
B: res.B,
}
return vres
}
// newMultipleViewsViewTiny projects result type MultipleViews into projected
// type MultipleViewsView using the "tiny" view.
func newMultipleViewsViewTiny(res *MultipleViews) *streamingresultwithexplicitviewserviceviews.MultipleViewsView {
vres := &streamingresultwithexplicitviewserviceviews.MultipleViewsView{
A: res.A,
}
return vres
}
`
const StreamingResultWithViewsMethod = `
// Service is the StreamingResultWithViewsService service interface.
type Service interface {
// StreamingResultWithViewsMethod implements StreamingResultWithViewsMethod.
// The "view" return value must have one of the following views
// - "default"
// - "tiny"
StreamingResultWithViewsMethod(context.Context, string, StreamingResultWithViewsMethodServerStream) (err error)
}
// ServiceName is the name of the service as defined in the design. This is the
// same value that is set in the endpoint request contexts under the ServiceKey
// key.
const ServiceName = "StreamingResultWithViewsService"
// MethodNames lists the service method names as defined in the design. These
// are the same values that are set in the endpoint request contexts under the
// MethodKey key.
var MethodNames = [1]string{"StreamingResultWithViewsMethod"}
// StreamingResultWithViewsMethodServerStream is the interface a
// "StreamingResultWithViewsMethod" endpoint server stream must satisfy.
type StreamingResultWithViewsMethodServerStream interface {
// Send streams instances of "MultipleViews".
Send(*MultipleViews) error
// Close closes the stream.
Close() error
// SetView sets the view used to render the result before streaming.
SetView(view string)
}
// StreamingResultWithViewsMethodClientStream is the interface a
// "StreamingResultWithViewsMethod" endpoint client stream must satisfy.
type StreamingResultWithViewsMethodClientStream interface {
// Recv reads instances of "MultipleViews" from the stream.
Recv() (*MultipleViews, error)
}
// MultipleViews is the result type of the StreamingResultWithViewsService
// service StreamingResultWithViewsMethod method.
type MultipleViews struct {
A *string
B *string
}
// NewMultipleViews initializes result type MultipleViews from viewed result
// type MultipleViews.
func NewMultipleViews(vres *streamingresultwithviewsserviceviews.MultipleViews) *MultipleViews {
var res *MultipleViews
switch vres.View {
case "default", "":
res = newMultipleViews(vres.Projected)
case "tiny":
res = newMultipleViewsTiny(vres.Projected)
}
return res
}
// NewViewedMultipleViews initializes viewed result type MultipleViews from
// result type MultipleViews using the given view.
func NewViewedMultipleViews(res *MultipleViews, view string) *streamingresultwithviewsserviceviews.MultipleViews {
var vres *streamingresultwithviewsserviceviews.MultipleViews
switch view {
case "default", "":
p := newMultipleViewsView(res)
vres = &streamingresultwithviewsserviceviews.MultipleViews{p, "default"}
case "tiny":
p := newMultipleViewsViewTiny(res)
vres = &streamingresultwithviewsserviceviews.MultipleViews{p, "tiny"}
}
return vres
}
// newMultipleViews converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViews(vres *streamingresultwithviewsserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
B: vres.B,
}
return res
}
// newMultipleViewsTiny converts projected type MultipleViews to service type
// MultipleViews.
func newMultipleViewsTiny(vres *streamingresultwithviewsserviceviews.MultipleViewsView) *MultipleViews {
res := &MultipleViews{
A: vres.A,
}
return res
}
// newMultipleViewsView projects result type MultipleViews into projected type
// MultipleViewsView using the "default" view.
func newMultipleViewsView(res *MultipleViews) *streamingresultwithviewsserviceviews.MultipleViewsView {
vres := &streamingresultwithviewsserviceviews.MultipleViewsView{
A: res.A,
B: res.B,
}
return vres
}
// newMultipleViewsViewTiny projects result type MultipleViews into projected
// type MultipleViewsView using the "tiny" view.
func newMultipleViewsViewTiny(res *MultipleViews) *streamingresultwithviewsserviceviews.MultipleViewsView {
vres := &streamingresultwithviewsserviceviews.MultipleViewsView{
A: res.A,
}
return vres
}
`
const StreamingResultWithViewsMethodEndpoint = `// Endpoints wraps the "StreamingResultWithViewsService" service endpoints.
type Endpoints struct {
StreamingResultWithViewsMethod goa.Endpoint
}
// StreamingResultWithViewsMethodEndpointInput is the input type of
// "StreamingResultWithViewsMethod" endpoint that holds the method payload and
// the server stream.
type StreamingResultWithViewsMethodEndpointInput struct {
// Payload is the method payload.
Payload string
// Stream is the server stream used by the "StreamingResultWithViewsMethod"
// method to send data.
Stream StreamingResultWithViewsMethodServerStream
}
// NewEndpoints wraps the methods of the "StreamingResultWithViewsService"
// service with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
StreamingResultWithViewsMethod: NewStreamingResultWithViewsMethodEndpoint(s),
}
}
// Use applies the given middleware to all the
// "StreamingResultWithViewsService" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.StreamingResultWithViewsMethod = m(e.StreamingResultWithViewsMethod)
}
// NewStreamingResultWithViewsMethodEndpoint returns an endpoint function that
// calls the method "StreamingResultWithViewsMethod" of service
// "StreamingResultWithViewsService".
func NewStreamingResultWithViewsMethodEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
ep := req.(*StreamingResultWithViewsMethodEndpointInput)
return nil, s.StreamingResultWithViewsMethod(ctx, ep.Payload, ep.Stream)
}
}
`
const WithResultEndpoint = `// Endpoints wraps the "WithResult" service endpoints.
type Endpoints struct {
A goa.Endpoint
}
// NewEndpoints wraps the methods of the "WithResult" service with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
A: NewAEndpoint(s),
}
}
// Use applies the given middleware to all the "WithResult" service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.A = m(e.A)
}
// NewAEndpoint returns an endpoint function that calls the method "A" of
// service "WithResult".
func NewAEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
res, err := s.A(ctx)
if err != nil {
return nil, err
}
vres := NewViewedRtype(res, "default")
return vres, nil
}
}
`
const WithResultMultipleViewsEndpoint = `// Endpoints wraps the "WithResultMultipleViews" service endpoints.
type Endpoints struct {
A goa.Endpoint
}
// NewEndpoints wraps the methods of the "WithResultMultipleViews" service with
// endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
A: NewAEndpoint(s),
}
}
// Use applies the given middleware to all the "WithResultMultipleViews"
// service endpoints.
func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
e.A = m(e.A)
}
// NewAEndpoint returns an endpoint function that calls the method "A" of
// service "WithResultMultipleViews".
func NewAEndpoint(s Service) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
res, view, err := s.A(ctx)
if err != nil {
return nil, err
}
vres := NewViewedViewtype(res, view)
return vres, nil
}
}
`
Variables
var APIKeyAuth = APIKeySecurity("api_key")
var APayload = Type("APayload", func() {
Attribute("IntField", Int)
Attribute("StringField", String)
Attribute("BooleanField", Boolean)
Attribute("BytesField", Bytes)
Attribute("OptionalField", String)
Required("IntField", "StringField", "BooleanField", "BytesField")
})
var AResult = Type("AResult", func() {
Attribute("IntField", Int)
Attribute("StringField", String)
Attribute("BooleanField", Boolean)
Attribute("BytesField", Bytes)
Attribute("OptionalField", String)
Required("IntField", "StringField", "BooleanField", "BytesField")
})
var BPayload = Type("BPayload", func() {
Attribute("ArrayField", ArrayOf(Boolean))
Attribute("MapField", MapOf(Int, String))
Attribute("ObjectField", func() {
Attribute("IntField", Int)
Attribute("StringField", String)
})
Attribute("UserTypeField", ParentType)
})
var BResult = Type("BResult", func() {
Attribute("ArrayField", ArrayOf(Boolean))
Attribute("MapField", MapOf(Int, String))
Attribute("ObjectField", func() {
Attribute("IntField", Int)
Attribute("StringField", String)
})
Attribute("UserTypeField", ParentType)
})
var BasicAuth = BasicAuthSecurity("basic")
var BidirectionalStreamingEndpointDSL = func() {
var AType = Type("AType", func() {
Attribute("a", String)
})
var BType = Type("BType", func() {
Attribute("x", String)
})
Service("BidirectionalStreamingEndpoint", func() {
Method("BidirectionalStreamingMethod", func() {
Payload(AType)
StreamingPayload(BType)
StreamingResult(AResult)
})
})
}
var BidirectionalStreamingMethodDSL = func() {
Service("BidirectionalStreamingService", func() {
Method("BidirectionalStreamingMethod", func() {
Payload(BPayload)
StreamingPayload(APayload)
StreamingResult(AResult)
})
})
}
var BidirectionalStreamingNoPayloadMethodDSL = func() {
Service("BidirectionalStreamingNoPayloadService", func() {
Method("BidirectionalStreamingNoPayloadMethod", func() {
StreamingPayload(String)
StreamingResult(Int)
})
})
}
var BidirectionalStreamingResultWithExplicitViewMethodDSL = func() {
var RTWithViews = ResultType("application/vnd.result.multiple.views", func() {
TypeName("MultipleViews")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("BidirectionalStreamingResultWithExplicitViewService", func() {
Method("BidirectionalStreamingResultWithExplicitViewMethod", func() {
StreamingPayload(ArrayOf(Bytes))
StreamingResult(RTWithViews, func() {
View("default")
})
})
})
}
var BidirectionalStreamingResultWithViewsMethodDSL = func() {
var RTWithViews = ResultType("application/vnd.result.multiple.views", func() {
TypeName("MultipleViews")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("BidirectionalStreamingResultWithViewsService", func() {
Method("BidirectionalStreamingResultWithViewsMethod", func() {
StreamingPayload(APayload)
StreamingResult(RTWithViews)
})
})
}
var ChildType = Type("Child", func() {
Attribute("p", "Parent")
})
var ConvertAliasDSL = func() {
var StringType = Type("StringType", func() {
CreateFrom(aliasd.ConvertModel{})
Attribute("Bar", String)
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var ConvertArrayStringCode = `// ConvertToArrayStringT creates an instance of ArrayStringT initialized from t.
func (t *ArrayStringType) ConvertToArrayStringT() *testdata.ArrayStringT {
v := &testdata.ArrayStringT{}
if t.ArrayString != nil {
v.ArrayString = make([]string, len(t.ArrayString))
for i, val := range t.ArrayString {
v.ArrayString[i] = val
}
}
return v
}
`
var ConvertArrayStringDSL = func() {
var ArrayStringType = Type("ArrayStringType", func() {
ConvertTo(ArrayStringT{})
Attribute("ArrayString", ArrayOf(String))
})
Service("Service", func() {
Method("Method", func() {
Payload(ArrayStringType)
})
})
}
var ConvertArrayStringRequiredCode = `// ConvertToArrayStringT creates an instance of ArrayStringT initialized from t.
func (t *ArrayStringType) ConvertToArrayStringT() *testdata.ArrayStringT {
v := &testdata.ArrayStringT{}
if t.ArrayString != nil {
v.ArrayString = make([]string, len(t.ArrayString))
for i, val := range t.ArrayString {
v.ArrayString[i] = val
}
}
return v
}
`
var ConvertArrayStringRequiredDSL = func() {
var ArrayStringType = Type("ArrayStringType", func() {
ConvertTo(ArrayStringT{})
Attribute("ArrayString", ArrayOf(String))
Required("ArrayString")
})
Service("Service", func() {
Method("Method", func() {
Payload(ArrayStringType)
})
})
}
var ConvertExternalDSL = func() {
var StringType = Type("StringType", func() {
CreateFrom(external.ConvertModel{})
Attribute("Foo", String)
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var ConvertObjectCode = `// ConvertToObjectT creates an instance of ObjectT initialized from t.
func (t *ObjectType) ConvertToObjectT() *testdata.ObjectT {
v := &testdata.ObjectT{}
if t.Object != nil {
v.Object = marshalObjectFieldToObjectFieldT(t.Object)
}
return v
}
`
var ConvertObjectDSL = func() {
var ObjectField = Type("ObjectField", func() {
Attribute("Bool", Boolean)
Attribute("Int", Int)
Attribute("Int32", Int32)
Attribute("Int64", Int64)
Attribute("UInt", UInt)
Attribute("UInt32", UInt32)
Attribute("UInt64", UInt64)
Attribute("Float32", Float32)
Attribute("Float64", Float64)
Attribute("Bytes", Bytes)
Attribute("String", String)
Attribute("Array", ArrayOf(Boolean))
Attribute("Map", MapOf(String, Boolean))
})
var ObjectType = Type("ObjectType", func() {
ConvertTo(ObjectT{})
Attribute("Object", ObjectField)
Required("Object")
})
Service("Service", func() {
Method("Method", func() {
Payload(ObjectType)
})
})
}
var ConvertObjectHelperCode = `// marshalObjectFieldToObjectFieldT builds a value of type
// *testdata.ObjectFieldT from a value of type *ObjectField.
func marshalObjectFieldToObjectFieldT(v *ObjectField) *testdata.ObjectFieldT {
res := &testdata.ObjectFieldT{
Bytes: v.Bytes,
}
if v.Bool != nil {
res.Bool = *v.Bool
}
if v.Int != nil {
res.Int = *v.Int
}
if v.Int32 != nil {
res.Int32 = *v.Int32
}
if v.Int64 != nil {
res.Int64 = *v.Int64
}
if v.UInt != nil {
res.UInt = *v.UInt
}
if v.UInt32 != nil {
res.UInt32 = *v.UInt32
}
if v.UInt64 != nil {
res.UInt64 = *v.UInt64
}
if v.Float32 != nil {
res.Float32 = *v.Float32
}
if v.Float64 != nil {
res.Float64 = *v.Float64
}
if v.String != nil {
res.String = *v.String
}
if v.Array != nil {
res.Array = make([]bool, len(v.Array))
for i, val := range v.Array {
res.Array[i] = val
}
}
if v.Map != nil {
res.Map = make(map[string]bool, len(v.Map))
for key, val := range v.Map {
tk := key
tv := val
res.Map[tk] = tv
}
}
return res
}
`
var ConvertObjectRequiredCode = `// ConvertToObjectT creates an instance of ObjectT initialized from t.
func (t *ObjectType) ConvertToObjectT() *testdata.ObjectT {
v := &testdata.ObjectT{}
if t.Object != nil {
v.Object = marshalObjectFieldToObjectFieldT(t.Object)
}
return v
}
`
var ConvertObjectRequiredDSL = func() {
var ObjectField = Type("ObjectField", func() {
Attribute("Bool", Boolean)
Attribute("Int", Int)
Attribute("Int32", Int32)
Attribute("Int64", Int64)
Attribute("UInt", UInt)
Attribute("UInt32", UInt32)
Attribute("UInt64", UInt64)
Attribute("Float32", Float32)
Attribute("Float64", Float64)
Attribute("Bytes", Bytes)
Attribute("String", String)
Attribute("Array", ArrayOf(Boolean))
Attribute("Map", MapOf(String, Boolean))
Required("Bool", "Int", "Int32", "Int64", "UInt", "UInt32",
"UInt64", "Float32", "Float64", "Bytes", "String", "Array", "Map")
})
var ObjectType = Type("ObjectType", func() {
ConvertTo(ObjectT{})
Attribute("Object", ObjectField)
Required("Object")
})
Service("Service", func() {
Method("Method", func() {
Payload(ObjectType)
})
})
}
var ConvertObjectRequiredHelperCode = `// marshalObjectFieldToObjectFieldT builds a value of type
// *testdata.ObjectFieldT from a value of type *ObjectField.
func marshalObjectFieldToObjectFieldT(v *ObjectField) *testdata.ObjectFieldT {
res := &testdata.ObjectFieldT{
Bool: v.Bool,
Int: v.Int,
Int32: v.Int32,
Int64: v.Int64,
UInt: v.UInt,
UInt32: v.UInt32,
UInt64: v.UInt64,
Float32: v.Float32,
Float64: v.Float64,
Bytes: v.Bytes,
String: v.String,
}
if v.Array != nil {
res.Array = make([]bool, len(v.Array))
for i, val := range v.Array {
res.Array[i] = val
}
}
if v.Map != nil {
res.Map = make(map[string]bool, len(v.Map))
for key, val := range v.Map {
tk := key
tv := val
res.Map[tk] = tv
}
}
return res
}
`
var ConvertStringCode = `// ConvertToStringT creates an instance of StringT initialized from t.
func (t *StringType) ConvertToStringT() *testdata.StringT {
v := &testdata.StringT{}
if t.String != nil {
v.String = *t.String
}
return v
}
`
var ConvertStringDSL = func() {
var StringType = Type("StringType", func() {
ConvertTo(StringT{})
Attribute("String", String)
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var ConvertStringPointerCode = `// ConvertToStringPointerT creates an instance of StringPointerT initialized
// from t.
func (t *StringPointerType) ConvertToStringPointerT() *testdata.StringPointerT {
v := &testdata.StringPointerT{
String: t.String,
}
return v
}
`
var ConvertStringPointerDSL = func() {
var StringPointerType = Type("StringPointerType", func() {
ConvertTo(StringPointerT{})
Attribute("String", String)
})
Service("Service", func() {
Method("Method", func() {
Payload(StringPointerType)
})
})
}
var ConvertStringPointerRequiredCode = `// ConvertToStringPointerT creates an instance of StringPointerT initialized
// from t.
func (t *StringPointerType) ConvertToStringPointerT() *testdata.StringPointerT {
v := &testdata.StringPointerT{
String: &t.String,
}
return v
}
`
var ConvertStringPointerRequiredDSL = func() {
var StringPointerType = Type("StringPointerType", func() {
ConvertTo(StringPointerT{})
Attribute("String", String)
Required("String")
})
Service("Service", func() {
Method("Method", func() {
Payload(StringPointerType)
})
})
}
var ConvertStringRequiredCode = `// ConvertToStringT creates an instance of StringT initialized from t.
func (t *StringType) ConvertToStringT() *testdata.StringT {
v := &testdata.StringT{
String: t.String,
}
return v
}
`
var ConvertStringRequiredDSL = func() {
var StringType = Type("StringType", func() {
ConvertTo(StringT{})
Attribute("String", String)
Required("String")
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var CreateAliasConvert = `// Service service type conversion functions
//
// Command:
// $ goa
package service
import (
aliasd "goa.design/goa/codegen/service/testdata/alias-external"
)
// CreateFromConvertModel initializes t from the fields of v
func (t *StringType) CreateFromConvertModel(v *aliasd.ConvertModel) {
temp := &StringType{
Bar: &v.Bar,
}
*t = *temp
}
`
var CreateAliasDSL = func() {
var StringType = Type("StringType", func() {
CreateFrom(aliasd.ConvertModel{})
Attribute("Bar", String)
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var CreateArrayStringCode = `// CreateFromArrayStringT initializes t from the fields of v
func (t *ArrayStringType) CreateFromArrayStringT(v *testdata.ArrayStringT) {
temp := &ArrayStringType{}
if v.ArrayString != nil {
temp.ArrayString = make([]string, len(v.ArrayString))
for i, val := range v.ArrayString {
temp.ArrayString[i] = val
}
}
*t = *temp
}
`
var CreateArrayStringDSL = func() {
var ArrayStringType = Type("ArrayStringType", func() {
CreateFrom(ArrayStringT{})
Attribute("ArrayString", ArrayOf(String))
})
Service("Service", func() {
Method("Method", func() {
Payload(ArrayStringType)
})
})
}
var CreateArrayStringRequiredCode = `// CreateFromArrayStringT initializes t from the fields of v
func (t *ArrayStringType) CreateFromArrayStringT(v *testdata.ArrayStringT) {
temp := &ArrayStringType{}
if v.ArrayString != nil {
temp.ArrayString = make([]string, len(v.ArrayString))
for i, val := range v.ArrayString {
temp.ArrayString[i] = val
}
}
*t = *temp
}
`
var CreateArrayStringRequiredDSL = func() {
var ArrayStringType = Type("ArrayStringType", func() {
CreateFrom(ArrayStringT{})
Attribute("ArrayString", ArrayOf(String))
Required("ArrayString")
})
Service("Service", func() {
Method("Method", func() {
Payload(ArrayStringType)
})
})
}
var CreateExternalConvert = `// Service service type conversion functions
//
// Command:
// $ goa
package service
import (
external "goa.design/goa/codegen/service/testdata/external"
)
// CreateFromConvertModel initializes t from the fields of v
func (t *StringType) CreateFromConvertModel(v *external.ConvertModel) {
temp := &StringType{
Foo: &v.Foo,
}
*t = *temp
}
`
var CreateExternalDSL = func() {
var StringType = Type("StringType", func() {
CreateFrom(external.ConvertModel{})
Attribute("Foo", String)
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var CreateObjectCode = `// CreateFromObjectT initializes t from the fields of v
func (t *ObjectType) CreateFromObjectT(v *testdata.ObjectT) {
temp := &ObjectType{}
if v.Object != nil {
temp.Object = marshalObjectFieldTToObjectField(v.Object)
}
*t = *temp
}
`
var CreateObjectDSL = func() {
var ObjectField = Type("ObjectField", func() {
Attribute("Bool", Boolean)
Attribute("Int", Int)
Attribute("Int32", Int32)
Attribute("Int64", Int64)
Attribute("UInt", UInt)
Attribute("UInt32", UInt32)
Attribute("UInt64", UInt64)
Attribute("Float32", Float32)
Attribute("Float64", Float64)
Attribute("Bytes", Bytes)
Attribute("String", String)
Attribute("Array", ArrayOf(Boolean))
Attribute("Map", MapOf(String, Boolean))
})
var ObjectType = Type("ObjectType", func() {
CreateFrom(ObjectT{})
Attribute("Object", ObjectField)
Required("Object")
})
Service("Service", func() {
Method("Method", func() {
Payload(ObjectType)
})
})
}
var CreateObjectExtraCode = `// CreateFromObjectExtraT initializes t from the fields of v
func (t *ObjectType) CreateFromObjectExtraT(v *testdata.ObjectExtraT) {
temp := &ObjectType{}
if v.Object != nil {
temp.Object = marshalObjectFieldTToObjectField(v.Object)
}
*t = *temp
}
`
var CreateObjectExtraDSL = func() {
var ObjectField = Type("ObjectField", func() {
Attribute("Bool", Boolean)
Attribute("Int", Int)
Attribute("Int32", Int32)
Attribute("Int64", Int64)
Attribute("UInt", UInt)
Attribute("UInt32", UInt32)
Attribute("UInt64", UInt64)
Attribute("Float32", Float32)
Attribute("Float64", Float64)
Attribute("Bytes", Bytes)
Attribute("String", String)
Attribute("Array", ArrayOf(Boolean))
Attribute("Map", MapOf(String, Boolean))
})
var ObjectType = Type("ObjectType", func() {
CreateFrom(ObjectExtraT{})
Attribute("Object", ObjectField)
Required("Object")
})
Service("Service", func() {
Method("Method", func() {
Payload(ObjectType)
})
})
}
var CreateObjectRequiredCode = `// CreateFromObjectT initializes t from the fields of v
func (t *ObjectType) CreateFromObjectT(v *testdata.ObjectT) {
temp := &ObjectType{}
if v.Object != nil {
temp.Object = marshalObjectFieldTToObjectField(v.Object)
}
*t = *temp
}
`
var CreateObjectRequiredDSL = func() {
var ObjectField = Type("ObjectField", func() {
Attribute("Bool", Boolean)
Attribute("Int", Int)
Attribute("Int32", Int32)
Attribute("Int64", Int64)
Attribute("UInt", UInt)
Attribute("UInt32", UInt32)
Attribute("UInt64", UInt64)
Attribute("Float32", Float32)
Attribute("Float64", Float64)
Attribute("Bytes", Bytes)
Attribute("String", String)
Attribute("Array", ArrayOf(Boolean))
Attribute("Map", MapOf(String, Boolean))
Required("Bool", "Int", "Int32", "Int64", "UInt", "UInt32",
"UInt64", "Float32", "Float64", "Bytes", "String", "Array", "Map")
})
var ObjectType = Type("ObjectType", func() {
CreateFrom(ObjectT{})
Attribute("Object", ObjectField)
Required("Object")
})
Service("Service", func() {
Method("Method", func() {
Payload(ObjectType)
})
})
}
var CreateStringCode = `// CreateFromStringT initializes t from the fields of v
func (t *StringType) CreateFromStringT(v *testdata.StringT) {
temp := &StringType{
String: &v.String,
}
*t = *temp
}
`
var CreateStringDSL = func() {
var StringType = Type("StringType", func() {
CreateFrom(StringT{})
Attribute("String", String)
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var CreateStringPointerCode = `// CreateFromStringPointerT initializes t from the fields of v
func (t *StringType) CreateFromStringPointerT(v *testdata.StringPointerT) {
temp := &StringType{
String: v.String,
}
*t = *temp
}
`
var CreateStringPointerDSL = func() {
var StringType = Type("StringType", func() {
CreateFrom(StringPointerT{})
Attribute("String", String)
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var CreateStringPointerRequiredCode = `// CreateFromStringPointerT initializes t from the fields of v
func (t *StringType) CreateFromStringPointerT(v *testdata.StringPointerT) {
temp := &StringType{}
if v.String != nil {
temp.String = *v.String
}
*t = *temp
}
`
var CreateStringPointerRequiredDSL = func() {
var StringType = Type("StringType", func() {
CreateFrom(StringPointerT{})
Attribute("String", String)
Required("String")
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var CreateStringRequiredCode = `// CreateFromStringT initializes t from the fields of v
func (t *StringType) CreateFromStringT(v *testdata.StringT) {
temp := &StringType{
String: v.String,
}
*t = *temp
}
`
var CreateStringRequiredDSL = func() {
var StringType = Type("StringType", func() {
CreateFrom(StringT{})
Attribute("String", String)
Required("String")
})
Service("Service", func() {
Method("Method", func() {
Payload(StringType)
})
})
}
var EmptyMethodDSL = func() {
Service("Empty", func() {
Method("Empty", func() {
})
})
}
var EmptyPayloadMethodDSL = func() {
Service("EmptyPayload", func() {
Method("EmptyPayload", func() {
Result(AResult)
})
})
}
var EmptyResultMethodDSL = func() {
Service("EmptyResult", func() {
Method("EmptyResult", func() {
Payload(APayload)
})
})
}
var EndpointInitNoSecurityCode = `// NewEndpoints wraps the methods of the "EndpointNoSecurity" service with
// endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
NoSecurity: NewNoSecurityEndpoint(s),
}
}
`
var EndpointInitWithRequirementsCode = `// NewEndpoints wraps the methods of the "EndpointsWithRequirements" service
// with endpoints.
func NewEndpoints(s Service, authBasicFn security.AuthBasicFunc, authJWTFn security.AuthJWTFunc) *Endpoints {
return &Endpoints{
SecureWithRequirements: NewSecureWithRequirementsEndpoint(s, authBasicFn),
DoublySecureWithRequirements: NewDoublySecureWithRequirementsEndpoint(s, authBasicFn, authJWTFn),
}
}
`
var EndpointInitWithServiceRequirementsCode = `// NewEndpoints wraps the methods of the "EndpointsWithServiceRequirements"
// service with endpoints.
func NewEndpoints(s Service, authBasicFn security.AuthBasicFunc) *Endpoints {
return &Endpoints{
SecureWithRequirements: NewSecureWithRequirementsEndpoint(s, authBasicFn),
AlsoSecureWithRequirements: NewAlsoSecureWithRequirementsEndpoint(s, authBasicFn),
}
}
`
var EndpointInitWithoutRequirementCode = `// NewEndpoints wraps the methods of the "EndpointWithoutRequirement" service
// with endpoints.
func NewEndpoints(s Service) *Endpoints {
return &Endpoints{
Unsecure: NewUnsecureEndpoint(s),
}
}
`
var EndpointNoSecurityDSL = func() {
Service("EndpointNoSecurity", func() {
Security(BasicAuth)
Method("NoSecurity", func() {
NoSecurity()
HTTP(func() {
GET("/")
})
})
})
}
var EndpointWithAPIKeyOverrideCode = `// NewSecureWithAPIKeyOverrideEndpoint returns an endpoint function that calls
// the method "SecureWithAPIKeyOverride" of service
// "EndpointWithAPIKeyOverride".
func NewSecureWithAPIKeyOverrideEndpoint(s Service, authAPIKeyFn security.AuthAPIKeyFunc) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
p := req.(*SecureWithAPIKeyOverridePayload)
var err error
sc := security.APIKeyScheme{
Name: "api_key",
}
var key string
if p.Key != nil {
key = *p.Key
}
ctx, err = authAPIKeyFn(ctx, key, &sc)
if err != nil {
return nil, err
}
return nil, s.SecureWithAPIKeyOverride(ctx, p)
}
}
`
var EndpointWithAPIKeyOverrideDSL = func() {
Service("EndpointWithAPIKeyOverride", func() {
Security(BasicAuth)
Method("SecureWithAPIKeyOverride", func() {
Security(APIKeyAuth)
Payload(func() {
APIKey("api_key", "key", String)
})
HTTP(func() {
GET("/")
})
})
})
}
var EndpointWithOAuth2Code = `// NewSecureWithOAuth2Endpoint returns an endpoint function that calls the
// method "SecureWithOAuth2" of service "EndpointWithOAuth2".
func NewSecureWithOAuth2Endpoint(s Service, authOAuth2Fn security.AuthOAuth2Func) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
p := req.(*SecureWithOAuth2Payload)
var err error
sc := security.OAuth2Scheme{
Name: "authCode",
Scopes: []string{"api:write", "api:read"},
RequiredScopes: []string{},
Flows: []*security.OAuthFlow{
&security.OAuthFlow{
Type: "authorization_code",
AuthorizationURL: "/authorization",
TokenURL: "/token",
RefreshURL: "/refresh",
},
},
}
var token string
if p.Token != nil {
token = *p.Token
}
ctx, err = authOAuth2Fn(ctx, token, &sc)
if err != nil {
return nil, err
}
return nil, s.SecureWithOAuth2(ctx, p)
}
}
`
var EndpointWithOAuth2DSL = func() {
Service("EndpointWithOAuth2", func() {
Method("SecureWithOAuth2", func() {
Security(OAuth2AuthorizationCode)
Payload(func() {
AccessToken("token", String)
})
HTTP(func() {
GET("/")
})
})
})
}
var EndpointWithRequiredScopesCode = `// NewSecureWithRequiredScopesEndpoint returns an endpoint function that calls
// the method "SecureWithRequiredScopes" of service
// "EndpointWithRequiredScopes".
func NewSecureWithRequiredScopesEndpoint(s Service, authJWTFn security.AuthJWTFunc) goa.Endpoint {
return func(ctx context.Context, req interface{}) (interface{}, error) {
p := req.(*SecureWithRequiredScopesPayload)
var err error
sc := security.JWTScheme{
Name: "jwt",
Scopes: []string{"api:read", "api:write", "api:admin"},
RequiredScopes: []string{"api:read", "api:write"},
}
var token string
if p.Token != nil {
token = *p.Token
}
ctx, err = authJWTFn(ctx, token, &sc)
if err != nil {
return nil, err
}
return nil, s.SecureWithRequiredScopes(ctx, p)
}
}
`
var EndpointWithRequiredScopesDSL = func() {
Service("EndpointWithRequiredScopes", func() {
Method("SecureWithRequiredScopes", func() {
Security(JWTAuth, func() {
Scope("api:read")
Scope("api:write")
})
Payload(func() {
Token("token", String)
})
HTTP(func() {
GET("/")
})
})
})
}
var EndpointWithoutRequirementDSL = func() {
Service("EndpointWithoutRequirement", func() {
Method("Unsecure", func() {
HTTP(func() {
GET("/")
})
})
})
}
var EndpointsWithRequirementsDSL = func() {
Service("EndpointsWithRequirements", func() {
Method("SecureWithRequirements", func() {
Security(BasicAuth)
Payload(func() {
Username("user", String)
Password("pass", String)
})
HTTP(func() {
GET("/")
})
})
Method("DoublySecureWithRequirements", func() {
Security(BasicAuth, JWTAuth)
Payload(func() {
Username("user", String)
Password("pass", String)
Token("token", String)
})
HTTP(func() {
POST("/")
})
})
})
}
var EndpointsWithServiceRequirementsDSL = func() {
Service("EndpointsWithServiceRequirements", func() {
Security(BasicAuth)
Method("SecureWithRequirements", func() {
Payload(func() {
Username("user", String)
Password("pass", String)
})
HTTP(func() {
GET("/")
})
})
Method("AlsoSecureWithRequirements", func() {
Payload(func() {
Username("user", String)
Password("pass", String)
})
HTTP(func() {
POST("/")
})
})
})
}
var ForceGenerateTypeDSL = func() {
var _ = Type("ForcedType", func() {
Attribute("a", String)
Metadata("type:generate:force")
})
Service("ForceGenerateType", func() {
Method("A", func() {})
})
}
var ForceGenerateTypeExplicitDSL = func() {
var _ = Type("ForcedType", func() {
Attribute("a", String)
Metadata("type:generate:force", "ForceGenerateTypeExplicit")
})
Service("ForceGenerateTypeExplicit", func() {
Method("A", func() {})
})
}
var JWTAuth = JWTSecurity("jwt", func() {
Scope("api:read", "Read-only access")
Scope("api:write", "Read and write access")
Scope("api:admin", "Admin access")
})
var MultipleEndpointsDSL = func() {
var BType = Type("BType", func() {
Attribute("b", String)
})
var CType = Type("CType", func() {
Attribute("c", String)
})
Service("MultipleEndpoints", func() {
Method("B", func() {
Payload(BType)
})
Method("C", func() {
Payload(CType)
})
})
}
var MultipleMethodsDSL = func() {
Service("MultipleMethods", func() {
Method("A", func() {
Payload(APayload)
Result(AResult)
})
Method("B", func() {
Payload(BPayload)
Result(BResult)
})
})
}
var MultipleMethodsResultMultipleViewsDSL = func() {
var RTWithViews = ResultType("application/vnd.result.multiple.views", func() {
TypeName("MultipleViews")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
var RTWithSingleView = ResultType("application/vnd.result.single.view", func() {
TypeName("SingleView")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
Attribute("b")
})
})
Service("MultipleMethodsResultMultipleViews", func() {
Method("A", func() {
Payload(APayload)
Result(RTWithViews)
})
Method("B", func() {
Result(RTWithSingleView)
})
})
}
var MultipleServicesDSL = func() {
Service("ServiceWithAPIKeyAuth", func() {
Method("Method", func() {
Security(APIKeyAuth)
Payload(func() {
APIKey("api_key", "key", String)
})
HTTP(func() {
GET("/")
})
})
})
Service("ServiceWithJWTAndAPIKey", func() {
Security(APIKeyAuth, JWTAuth)
Method("Method", func() {
Payload(func() {
APIKey("api_key", "key", String)
Token("token", String)
})
HTTP(func() {
GET("/")
})
})
})
Service("ServiceWithNoSecurity", func() {
Method("Method", func() {
Payload(func() {
Attribute("a", String)
})
HTTP(func() {
GET("/{a}")
})
})
})
}
var NoPayloadEndpointDSL = func() {
Service("NoPayload", func() {
Method("NoPayload", func() {
})
})
}
var OAuth2AuthorizationCode = OAuth2Security("authCode", func() {
AuthorizationCodeFlow("/authorization", "/token", "/refresh")
Scope("api:write", "Write acess")
Scope("api:read", "Read access")
})
var ParentType = Type("Parent", func() {
Attribute("c", "Child")
})
var ResultCollectionMultipleViewsDSL = func() {
var RT = ResultType("application/vnd.result", func() {
TypeName("ResultType")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
Required("a", "b")
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("ResultCollectionMultipleViews", func() {
Method("A", func() {
Result(CollectionOf(RT))
})
})
}
var ResultCollectionMultipleViewsMethodDSL = func() {
var RTWithViews = ResultType("application/vnd.result.multiple.views", func() {
TypeName("MultipleViews")
Attributes(func() {
Attribute("a", String)
Attribute("b", Int)
Required("a", "b")
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("ResultCollectionMultipleViewsMethod", func() {
Method("A", func() {
Result(CollectionOf(RTWithViews))
})
})
}
var ResultWithMultipleViewsDSL = func() {
var RT = ResultType("application/vnd.result", func() {
TypeName("ResultType")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
Required("a", "b")
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("ResultWithMultipleViews", func() {
Method("A", func() {
Result(RT)
})
})
}
var ResultWithOtherResultMethodDSL = func() {
var RTWithViews2 = ResultType("application/vnd.result.multiple.view.2", func() {
TypeName("MultipleViews2")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
Required("a")
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
var RTWithViews = ResultType("application/vnd.result.multiple.views", func() {
TypeName("MultipleViews")
Attributes(func() {
Attribute("a", String)
Attribute("b", RTWithViews2)
Required("a", "b")
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("ResultWithOtherResult", func() {
Method("A", func() {
Result(RTWithViews)
})
})
}
var ResultWithRecursiveResultTypeDSL = func() {
var RT = ResultType("application/vnd.result", func() {
TypeName("RT")
Attributes(func() {
Attribute("a", "RT")
Required("a")
})
View("default", func() {
Attribute("a", func() {
View("tiny")
})
})
View("tiny", func() {
Attribute("a")
})
})
Service("ResultWithRecursiveResultType", func() {
Method("A", func() {
Result(RT)
})
})
}
var ResultWithResultTypeDSL = func() {
var UT = Type("UserType", func() {
Attribute("p")
})
var RT3 = ResultType("application/vnd.result.3", func() {
TypeName("RT3")
Attributes(func() {
Attribute("x", ArrayOf(String))
Attribute("y", MapOf(Int, UT))
Attribute("z", String)
Required("x", "y", "z")
})
View("default", func() {
Attribute("x")
Attribute("y")
})
View("tiny", func() {
Attribute("x")
})
})
var RT2 = ResultType("application/vnd.result.2", func() {
TypeName("RT2")
Attributes(func() {
Attribute("c", String)
Attribute("d", UT)
Attribute("e", String)
Required("c", "d")
})
View("default", func() {
Attribute("c")
Attribute("d")
})
View("extended", func() {
Attribute("c")
Attribute("d")
Attribute("e")
})
View("tiny", func() {
Attribute("d")
})
})
var RT = ResultType("application/vnd.result", func() {
TypeName("RT")
Attributes(func() {
Attribute("a", String)
Attribute("b", RT2)
Attribute("c", RT3)
Required("b", "c")
})
View("default", func() {
Attribute("a")
Attribute("b", func() {
View("extended")
})
Attribute("c")
})
View("tiny", func() {
Attribute("b", func() {
View("tiny")
})
Attribute("c")
})
})
Service("ResultWithResultType", func() {
Method("A", func() {
Result(RT)
})
})
}
var ResultWithUserTypeDSL = func() {
var UT = Type("UserType", func() {
Attribute("a")
})
var RT = ResultType("application/vnd.result", func() {
TypeName("ResultType")
Attributes(func() {
Attribute("a", UT)
Attribute("b", String)
Required("a")
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("ResultWithUserType", func() {
Method("A", func() {
Result(RT)
})
})
}
var ServiceErrorDSL = func() {
Service("ServiceError", func() {
Error("error")
Method("A", func() {})
})
}
var SingleEndpointDSL = func() {
var AType = Type("AType", func() {
Attribute("a", String)
})
Service("SingleEndpoint", func() {
Method("A", func() {
Payload(AType)
})
})
}
var SingleMethodDSL = func() {
Service("SingleMethod", func() {
Method("A", func() {
Payload(APayload)
Result(AResult)
})
})
}
var SingleServiceDSL = func() {
Service("SingleService", func() {
Method("Method", func() {
Security(APIKeyAuth)
Payload(func() {
APIKey("api_key", "key", String)
})
HTTP(func() {
GET("/")
})
})
})
}
var StreamingPayloadEndpointDSL = func() {
var AType = Type("AType", func() {
Attribute("a", String)
})
var BType = Type("BType", func() {
Attribute("x", String)
})
Service("StreamingPayloadEndpoint", func() {
Method("StreamingPayloadMethod", func() {
Payload(BType)
StreamingPayload(AType)
Result(AResult)
})
})
}
var StreamingPayloadMethodDSL = func() {
Service("StreamingPayloadService", func() {
Method("StreamingPayloadMethod", func() {
Payload(BPayload)
StreamingPayload(APayload)
Result(AResult)
})
})
}
var StreamingPayloadNoPayloadMethodDSL = func() {
Service("StreamingPayloadNoPayloadService", func() {
Method("StreamingPayloadNoPayloadMethod", func() {
StreamingPayload(Any)
Result(String)
})
})
}
var StreamingPayloadNoResultMethodDSL = func() {
Service("StreamingPayloadNoResultService", func() {
Method("StreamingPayloadNoResultMethod", func() {
StreamingPayload(Int)
})
})
}
var StreamingPayloadResultWithExplicitViewMethodDSL = func() {
var RTWithViews = ResultType("application/vnd.result.multiple.views", func() {
TypeName("MultipleViews")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("StreamingPayloadResultWithExplicitViewService", func() {
Method("StreamingPayloadResultWithExplicitViewMethod", func() {
StreamingPayload(ArrayOf(String))
Result(RTWithViews, func() {
View("tiny")
})
})
})
}
var StreamingPayloadResultWithViewsMethodDSL = func() {
var RTWithViews = ResultType("application/vnd.result.multiple.views", func() {
TypeName("MultipleViews")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("StreamingPayloadResultWithViewsService", func() {
Method("StreamingPayloadResultWithViewsMethod", func() {
StreamingPayload(APayload)
Result(RTWithViews)
})
})
}
var StreamingResultEndpointDSL = func() {
var AType = Type("AType", func() {
Attribute("a", String)
})
var RType = ResultType("application/vnd.withresult", func() {
TypeName("Rtype")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
})
})
Service("StreamingResultEndpoint", func() {
Method("StreamingResultMethod", func() {
Payload(AType)
StreamingResult(RType)
})
})
}
var StreamingResultMethodDSL = func() {
Service("StreamingResultService", func() {
Method("StreamingResultMethod", func() {
Payload(APayload)
StreamingResult(AResult)
})
})
}
var StreamingResultNoPayloadEndpointDSL = func() {
var RType = ResultType("application/vnd.withresult", func() {
TypeName("Rtype")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
})
})
Service("StreamingResultNoPayloadEndpoint", func() {
Method("StreamingResultNoPayloadMethod", func() {
StreamingResult(RType)
})
})
}
var StreamingResultNoPayloadMethodDSL = func() {
Service("StreamingResultNoPayloadService", func() {
Method("StreamingResultNoPayloadMethod", func() {
StreamingResult(AResult)
})
})
}
var StreamingResultWithExplicitViewMethodDSL = func() {
var RTWithViews = ResultType("application/vnd.result.multiple.views", func() {
TypeName("MultipleViews")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("StreamingResultWithExplicitViewService", func() {
Method("StreamingResultWithExplicitViewMethod", func() {
Payload(ArrayOf(Int32))
StreamingResult(RTWithViews, func() {
View("tiny")
})
})
})
}
var StreamingResultWithViewsMethodDSL = func() {
var RTWithViews = ResultType("application/vnd.result.multiple.views", func() {
TypeName("MultipleViews")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("StreamingResultWithViewsService", func() {
Method("StreamingResultWithViewsMethod", func() {
Payload(String)
StreamingResult(RTWithViews)
})
})
}
var WithResultEndpointDSL = func() {
var RType = ResultType("application/vnd.withresult", func() {
TypeName("Rtype")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
})
})
Service("WithResult", func() {
Method("A", func() {
Result(RType)
})
})
}
var WithResultMultipleViewsEndpointDSL = func() {
var ViewType = ResultType("application/vnd.withresult.multiple.views", func() {
TypeName("Viewtype")
Attributes(func() {
Attribute("a", String)
Attribute("b", String)
})
View("default", func() {
Attribute("a")
Attribute("b")
})
View("tiny", func() {
Attribute("a")
})
})
Service("WithResultMultipleViews", func() {
Method("A", func() {
Result(ViewType)
})
})
}
type ArrayStringT
type ArrayStringT struct {
ArrayString []string
}
type ObjectExtraT
type ObjectExtraT struct {
Object *ObjectFieldT
// contains filtered or unexported fields
}
type ObjectFieldT
type ObjectFieldT struct {
Bool bool
Int int
Int32 int32
Int64 int64
UInt uint
UInt32 uint32
UInt64 uint64
Float32 float32
Float64 float64
Bytes []byte
String string
Array []bool
Map map[string]bool
}
type ObjectT
type ObjectT struct {
Object *ObjectFieldT
}
type StringPointerT
type StringPointerT struct {
String *string
}
type StringT
type StringT struct {
String string
}
Generated by godoc2md