Documentation ¶
Overview ¶
Package design contains the generic API machinery code of our adder API generated using goa framework. This generated API accepts HTTP GET/POST/PATCH/PUT/DELETE requests from multiple clients.
Index ¶
- Variables
- func JSONList(name, description string, data *d.UserTypeDefinition, ...) *d.MediaTypeDefinition
- func JSONResourceObject(name string, attributes *d.UserTypeDefinition, ...) *d.UserTypeDefinition
- func JSONSingle(name, description string, data *d.UserTypeDefinition, ...) *d.MediaTypeDefinition
- func Reorder(name, description string, data *d.UserTypeDefinition, ...) *d.MediaTypeDefinition
Constants ¶
This section is empty.
Variables ¶
var AuthToken = a.MediaType("application/vnd.authtoken+json", func() { a.TypeName("AuthToken") a.Description("JWT Token") a.Attributes(func() { a.Attribute("token", tokenData) a.Required("token") }) a.View("default", func() { a.Attribute("token") }) })
AuthToken represents an authentication JWT Token
var CreateTrackerAlternatePayload = a.Type("CreateTrackerAlternatePayload", func() { a.Attribute("url", d.String, "URL of the tracker", func() { a.Example("https://api.github.com/") a.MinLength(1) }) a.Attribute("type", d.String, "Type of the tracker", func() { a.Example("github") a.Pattern("^[\\p{L}]+$") a.MinLength(1) }) a.Required("url", "type") })
CreateTrackerAlternatePayload defines the structure of tracker payload for create
var CreateTrackerQueryAlternatePayload = a.Type("CreateTrackerQueryAlternatePayload", func() { a.Attribute("query", d.String, "Search query", func() { a.Example("is:open is:issue user:wit") a.MinLength(1) }) a.Attribute("schedule", d.String, "Schedule for fetch and import", func() { a.Example("0 0/15 * * * *") a.Pattern("^[\\d]+|[\\d]+[\\/][\\d]+|\\*|\\-|\\?\\s{0,6}$") a.MinLength(1) }) a.Attribute("trackerID", d.String, "Tracker ID", func() { a.Example("1") a.MinLength(1) a.Pattern("^[\\p{N}]+$") }) a.Attribute("relationships", trackerQueryRelationships) a.Required("query", "schedule", "trackerID") })
CreateTrackerQueryAlternatePayload defines the structure of tracker query payload for create
var CreateWorkItemPayload = a.Type("CreateWorkItemPayload", func() { a.Attribute("type", d.UUID, "ID of the work item type of the newly created work item") a.Attribute("fields", a.HashOf(d.String, d.Any), "The field values, must conform to the type", func() { a.Example(map[string]interface{}{"system.creator": "user-ref", "system.state": "new", "system.title": "Example story"}) a.MinLength(1) }) a.Required("type", "fields") })
CreateWorkItemPayload defines the structure of work item payload
var JSONAPIError = a.Type("JSONAPIError", func() { a.Description(`Error objects provide additional information about problems encountered while performing an operation. Error objects MUST be returned as an array keyed by errors in the top level of a JSON API document. See. also http://jsonapi.org/format/#error-objects.`) a.Attribute("id", d.String, "a unique identifier for this particular occurrence of the problem.") a.Attribute("links", a.HashOf(d.String, JSONAPILink), `a links object containing the following members: * about: a link that leads to further details about this particular occurrence of the problem.`) a.Attribute("status", d.String, "the HTTP status code applicable to this problem, expressed as a string value.") a.Attribute("code", d.String, "an application-specific error code, expressed as a string value.") a.Attribute("title", d.String, `a short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.`) a.Attribute("detail", d.String, `a human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized.`) a.Attribute("source", a.HashOf(d.String, d.Any), `an object containing references to the source of the error, optionally including any of the following members * pointer: a JSON Pointer [RFC6901] to the associated entity in the request document [e.g. "/data" for a primary data object, or "/data/attributes/title" for a specific attribute]. * parameter: a string indicating which URI query parameter caused the error.`) a.Attribute("meta", a.HashOf(d.String, d.Any), "a meta object containing non-standard meta-information about the error") a.Required("detail") })
JSONAPIError represents a JSONAPI error object (see http://jsonapi.org/format/#error-objects)
var JSONAPIErrors = a.MediaType("application/vnd.jsonapierrors+json", func() { a.UseTrait("jsonapi-media-type") a.TypeName("JSONAPIErrors") a.Description(``) a.Attributes(func() { a.Attribute("errors", a.ArrayOf(JSONAPIError)) a.Required("errors") }) a.View("default", func() { a.Attribute("errors") a.Required("errors") }) })
JSONAPIErrors is an array of JSONAPI error objects
var JSONAPILink = a.Type("JSONAPILink", func() { a.Description(`See also http://jsonapi.org/format/#document-links.`) a.Attribute("href", d.String, "a string containing the link's URL.", func() { a.Example("http://example.com/articles/1/comments") }) a.Attribute("meta", a.HashOf(d.String, d.Any), "a meta object containing non-standard meta-information about the link.") })
JSONAPILink represents a JSONAPI link object (see http://jsonapi.org/format/#document-links)
var Tracker = a.MediaType("application/vnd.tracker+json", func() { a.TypeName("Tracker") a.Description("Tracker configuration") a.Attribute("id", d.String, "unique id per tracker") a.Attribute("url", d.String, "URL of the tracker") a.Attribute("type", d.String, "Type of the tracker") a.Required("id") a.Required("url") a.Required("type") a.View("default", func() { a.Attribute("id") a.Attribute("url") a.Attribute("type") }) })
Tracker configuration
var TrackerQuery = a.MediaType("application/vnd.trackerquery+json", func() { a.TypeName("TrackerQuery") a.Description("Tracker query with schedule") a.Attribute("id", d.String, "unique id per installation") a.Attribute("query", d.String, "Search query") a.Attribute("schedule", d.String, "Schedule for fetch and import") a.Attribute("trackerID", d.String, "Tracker ID") a.Attribute("relationships", trackerQueryRelationships) a.Required("id") a.Required("query") a.Required("schedule") a.Required("trackerID") a.Required("relationships") a.View("default", func() { a.Attribute("id") a.Attribute("query") a.Attribute("schedule") a.Attribute("trackerID") a.Attribute("relationships") }) })
TrackerQuery represents the search query with schedule
var UpdateTrackerAlternatePayload = a.Type("UpdateTrackerAlternatePayload", func() { a.Attribute("url", d.String, "URL of the tracker", func() { a.Example("https://api.github.com/") a.MinLength(1) }) a.Attribute("type", d.String, "Type of the tracker", func() { a.Example("github") a.MinLength(1) a.Pattern("^[\\p{L}]+$") }) a.Required("url", "type") })
UpdateTrackerAlternatePayload defines the structure of tracker payload for update
var UpdateTrackerQueryAlternatePayload = a.Type("UpdateTrackerQueryAlternatePayload", func() { a.Attribute("query", d.String, "Search query", func() { a.Example("is:open is:issue user:wit") a.MinLength(1) }) a.Attribute("schedule", d.String, "Schedule for fetch and import", func() { a.Example("0 0/15 * * * *") a.Pattern("^[\\d]+|[\\d]+[\\/][\\d]+|\\*|\\-|\\?\\s{0,6}$") a.MinLength(1) }) a.Attribute("trackerID", d.String, "Tracker ID", func() { a.Example("1") a.MinLength(1) a.Pattern("[\\p{N}]+") }) a.Attribute("relationships", trackerQueryRelationships) a.Required("query", "schedule", "trackerID") })
UpdateTrackerQueryAlternatePayload defines the structure of tracker query payload for update
var UpdateWorkItemPayload = a.Type("UpdateWorkItemPayload", func() { a.Attribute("type", d.UUID, "ID of the work item type") a.Attribute("fields", a.HashOf(d.String, d.Any), "The field values, must conform to the type", func() { a.Example(map[string]interface{}{"system.creator": "user-ref", "system.state": "new", "system.title": "Example story"}) a.MinLength(1) }) a.Attribute("version", d.Integer, "Version for optimistic concurrency control", func() { a.Example(0) }) a.Attribute("executionorder", d.Number, "The order of execution of workitem", func() { a.Example(1000) }) a.Attribute("relationships", workItemRelationships) a.Required("type", "fields", "version", "executionorder") })
UpdateWorkItemPayload has been added because the design.WorkItem could not be used since it mandated the presence of the ID in the payload which ideally should be optional. The ID should be passed on to REST URL.
var WITStatus = a.MediaType("application/vnd.status+json", func() { a.Description("The status of the current running instance") a.Attributes(func() { a.Attribute("commit", d.String, "Commit SHA this build is based on") a.Attribute("buildTime", d.String, "The time when built") a.Attribute("startTime", d.String, "The time when started") a.Attribute("error", d.String, "The error if any") a.Required("commit", "buildTime", "startTime") }) a.View("default", func() { a.Attribute("commit") a.Attribute("buildTime") a.Attribute("startTime") a.Attribute("error") }) })
WITStatus defines the status of the current running WIT instance
Functions ¶
func JSONList ¶
func JSONList(name, description string, data *d.UserTypeDefinition, links *d.UserTypeDefinition, meta *d.UserTypeDefinition) *d.MediaTypeDefinition
JSONList creates a UserTypeDefinition
func JSONResourceObject ¶
func JSONResourceObject(name string, attributes *d.UserTypeDefinition, relationships *d.UserTypeDefinition) *d.UserTypeDefinition
JSONResourceObject creates a single resource object
func JSONSingle ¶
func JSONSingle(name, description string, data *d.UserTypeDefinition, links *d.UserTypeDefinition) *d.MediaTypeDefinition
JSONSingle creates a Single
func Reorder ¶
func Reorder(name, description string, data *d.UserTypeDefinition, position *d.UserTypeDefinition) *d.MediaTypeDefinition
Reorder creates a UserTypeDefinition for Reorder action
Types ¶
This section is empty.
Source Files ¶
- account.go
- api.go
- areas.go
- auth.go
- codebases.go
- collaborators.go
- comments.go
- doc.go
- filters.go
- iterations.go
- jsonapi_helpers.go
- media_types.go
- models.go
- namedspaces.go
- render.go
- resources.go
- search.go
- space_template.go
- spaces.go
- user_service.go
- user_types.go
- userspace.go
- work_item_link.go
- work_item_link_category.go
- work_item_link_type.go
- work_item_type_group.go
- workitems.go
- workitemtype.go