// JSONList creates a UserTypeDefinition func JSONList(name, description string, data *d.UserTypeDefinition, links *d.UserTypeDefinition, meta *d.UserTypeDefinition) *d.MediaTypeDefinition { return a.MediaType("application/vnd."+strings.ToLower(name)+"list+json", func() { a.UseTrait("jsonapi-media-type") a.TypeName(name + "List") a.Description(description) if links != nil { a.Attribute("links", links) } if meta != nil { a.Attribute("meta", meta) } a.Attribute("data", a.ArrayOf(data)) a.Attribute("included", a.ArrayOf(d.Any), "An array of mixed types") a.Required("data") a.View("default", func() { if links != nil { a.Attribute("links") } if meta != nil { a.Attribute("meta") } a.Attribute("data") a.Attribute("included") a.Required("data") }) }) }
// JSONSingle creates a Single func JSONSingle(name, description string, data *d.UserTypeDefinition, links *d.UserTypeDefinition) *d.MediaTypeDefinition { // WorkItemSingle is the media type for work items return a.MediaType("application/vnd."+strings.ToLower(name)+"+json", func() { a.UseTrait("jsonapi-media-type") a.TypeName(name + "Single") a.Description(description) if links != nil { a.Attribute("links", links) } a.Attribute("data", data) a.Attribute("included", a.ArrayOf(d.Any), "An array of mixed types") a.Required("data") a.View("default", func() { if links != nil { a.Attribute("links") } a.Attribute("data") a.Attribute("included") a.Required("data") }) }) }
package design import ( d "github.com/goadesign/goa/design" a "github.com/goadesign/goa/design/apidsl" ) // identity represents an identified user object var identity = a.MediaType("application/vnd.identity+json", func() { a.UseTrait("jsonapi-media-type") a.TypeName("Identity") a.Description("ALM User Identity") a.Attributes(func() { a.Attribute("data", identityData) a.Required("data") }) a.View("default", func() { a.Attribute("data") a.Required("data") }) }) // identityArray represents an array of identified user objects var identityArray = a.MediaType("application/vnd.identity-array+json", func() { a.UseTrait("jsonapi-media-type") a.TypeName("IdentityArray") a.Description("ALM User Identity Array") a.Attributes(func() { a.Attribute("data", a.ArrayOf(identityData)) a.Required("data")