Documentation
¶
Index ¶
- Constants
- Variables
- func DirExists(dirname string) bool
- func FieldType(in string) (out string, err error)
- func FileExists(filename string) bool
- func Filepath(dirs ...string) string
- func MaskUserToken(b []byte) []byte
- func MaskUserTokenString(s string) string
- func NoValidation(s string) error
- func ParseList(in string) (out []string, err error)
- func ReadInConfig(cfg *viper.Viper) error
- func TableAlias(label string) string
- func ValidateHostname(hostname string) error
- func WriteConfigFile(dir string, cf ConfigFile) (err error)
- type App
- type Client
- func (c *Client) AddPlugin(p Plugin)
- func (c *Client) CopyApp(input *CopyAppInput) (output *CopyAppOutput, err error)
- func (c *Client) CreateApp(input *CreateAppInput) (output *CreateAppOutput, err error)
- func (c *Client) CreateField(input *CreateFieldInput) (output *CreateFieldOutput, err error)
- func (c *Client) CreateRelationship(input *CreateRelationshipInput) (output *CreateRelationshipOutput, err error)
- func (c *Client) CreateTable(input *CreateTableInput) (output *CreateTableOutput, err error)
- func (c *Client) DeleteApp(input *DeleteAppInput) (output *DeleteAppOutput, err error)
- func (c *Client) DeleteFields(input *DeleteFieldsInput) (output *DeleteFieldsOutput, err error)
- func (c *Client) DeleteRecords(input *DeleteRecordsInput) (output *DeleteRecordsOutput, err error)
- func (c *Client) DeleteRelationship(input *DeleteRelationshipInput) (output *DeleteRelationshipOutput, err error)
- func (c *Client) DeleteTable(input *DeleteTableInput) (output *DeleteTableOutput, err error)
- func (c *Client) Do(input Input, output Output) error
- func (c *Client) GetApp(input *GetAppInput) (output *GetAppOutput, err error)
- func (c *Client) GetAppByID(id string) (*GetAppOutput, error)
- func (c *Client) GetField(input *GetFieldInput) (output *GetFieldOutput, err error)
- func (c *Client) GetFieldByID(fid int) (*GetFieldOutput, error)
- func (c *Client) GetTable(input *GetTableInput) (output *GetTableOutput, err error)
- func (c *Client) GetVariable(input *GetVariableInput) (output *GetVariableOutput, err error)
- func (c *Client) InsertRecords(input *InsertRecordsInput) (output *InsertRecordsOutput, err error)
- func (c *Client) ListAppEvents(input *ListAppEventsInput) (output *ListAppEventsOutput, err error)
- func (c *Client) ListApps(input *ListAppsInput) (output *ListAppsOutput, err error)
- func (c *Client) ListFields(input *ListFieldsInput) (output *ListFieldsOutput, err error)
- func (c *Client) ListFieldsByTableID(tableID string) (*ListFieldsOutput, error)
- func (c *Client) ListRelationships(input *ListRelationshipsInput) (output *ListRelationshipsOutput, err error)
- func (c *Client) ListRelationshipsByTableID(id string) (*ListRelationshipsOutput, error)
- func (c *Client) ListTables(input *ListTablesInput) (output *ListTablesOutput, err error)
- func (c *Client) ListTablesByAppID(id string) (*ListTablesOutput, error)
- func (c *Client) QueryRecords(input *QueryRecordsInput) (output *QueryRecordsOutput, err error)
- func (c *Client) SetVariable(input *SetVariableInput) (output *SetVariableOutput, err error)
- func (c *Client) UpdateApp(input *UpdateAppInput) (output *UpdateAppOutput, err error)
- func (c *Client) UpdateField(input *UpdateFieldInput) (output *UpdateFieldOutput, err error)
- func (c *Client) UpdateRelationship(input *UpdateRelationshipInput) (output *UpdateRelationshipOutput, err error)
- func (c *Client) UpdateTable(input *UpdateTableInput) (output *UpdateTableOutput, err error)
- type Config
- type ConfigFile
- type ConfigFileProfile
- type ConfigIface
- type CopyAppInput
- type CopyAppInputProperties
- type CopyAppOutput
- type CreateAppInput
- type CreateAppOutput
- type CreateFieldInput
- type CreateFieldInputProperties
- type CreateFieldOutput
- type CreateFieldOutputProperties
- type CreateRelationshipInput
- type CreateRelationshipInputForeignKeyField
- type CreateRelationshipOutput
- type CreateTableInput
- type CreateTableOutput
- type DeleteAppInput
- type DeleteAppOutput
- type DeleteFieldsInput
- type DeleteFieldsOutput
- type DeleteRecordsInput
- type DeleteRecordsOutput
- type DeleteRelationshipInput
- type DeleteRelationshipOutput
- type DeleteTableInput
- type DeleteTableOutput
- type ErrorProperties
- type Field
- type FieldPermission
- type FieldProperties
- type GetAppInput
- type GetAppOutput
- type GetFieldInput
- type GetFieldOutput
- type GetFieldOutputProperties
- type GetTableInput
- type GetTableOutput
- type GetVariableInput
- type GetVariableOutput
- type Input
- type InsertRecordsInput
- type InsertRecordsInputData
- type InsertRecordsOutput
- type InsertRecordsOutputMetadata
- type ListAppEventsInput
- type ListAppEventsOutput
- type ListAppEventsOutputEvent
- type ListAppsInput
- type ListAppsOutput
- type ListAppsOutputDatabases
- type ListFieldsInput
- type ListFieldsOutput
- type ListFieldsOutputField
- type ListFieldsOutputFieldProperties
- type ListRelationshipsInput
- type ListRelationshipsOutput
- type ListRelationshipsOutputMetadata
- type ListTablesInput
- type ListTablesOutput
- type ListTablesOutputTable
- type Output
- type Plugin
- type QueryRecordsInput
- type QueryRecordsInputGroupBy
- type QueryRecordsInputSortBy
- type QueryRecordsOutput
- type QueryRecordsOutputData
- type QueryRecordsOutputFields
- type QueryRecordsOutputMetadata
- type Record
- type Relationship
- type RelationshipField
- type RelationshipSummaryField
- type SetVariableInput
- type SetVariableOutput
- type Timestamp
- type UpdateAppInput
- type UpdateAppOutput
- type UpdateFieldInput
- type UpdateFieldInputProperties
- type UpdateFieldOutput
- type UpdateRelationshipInput
- type UpdateRelationshipOutput
- type UpdateTableInput
- type UpdateTableOutput
- type User
- type ValidateStringFn
- type Value
- func NewAddressCityValue(val string) *Value
- func NewAddressCountryValue(val string) *Value
- func NewAddressPostalCodeValue(val string) *Value
- func NewAddressStateRegionValue(val string) *Value
- func NewAddressStreet1Value(val string) *Value
- func NewAddressStreet2Value(val string) *Value
- func NewAddressValue(val string) *Value
- func NewCheckboxValue(val bool) *Value
- func NewCheckboxValueFromString(val string) (v *Value, err error)
- func NewDateTimeValue(val time.Time) *Value
- func NewDateTimeValueFromString(val string) (*Value, error)
- func NewDateValue(val time.Time) *Value
- func NewDateValueFromString(val string) (*Value, error)
- func NewDurationValue(val time.Duration) *Value
- func NewDurationValueFromFloat64(val float64) *Value
- func NewDurationValueFromString(val string) (v *Value, err error)
- func NewEmailAddressValue(val string) *Value
- func NewFileAttachmentValue(val string) *Value
- func NewListUserValue(val []*User) *Value
- func NewListUserValueFromString(val string) *Value
- func NewMultiSelectTextValue(val []string) *Value
- func NewMultiSelectTextValueFromString(val string) (v *Value, err error)
- func NewNumericCurrencyValue(val float64) *Value
- func NewNumericCurrencyValueFromString(val string) (*Value, error)
- func NewNumericPercentValue(val float64) *Value
- func NewNumericPercentValueFromString(val string) (*Value, error)
- func NewNumericRatingValue(val float64) *Value
- func NewNumericRatingValueFromString(val string) (*Value, error)
- func NewNumericValue(val float64) *Value
- func NewNumericValueFromString(val string) (*Value, error)
- func NewPhoneNumberValue(val string) *Value
- func NewPredecessorValue(val string) *Value
- func NewRecordIDValue(val float64) *Value
- func NewReportLinkValue(val string) *Value
- func NewRichTextValue(val string) *Value
- func NewTextMultiLineValue(val string) *Value
- func NewTextMultipleChoiceValue(val string) *Value
- func NewTextValue(val string) *Value
- func NewTimeOfDayValue(val time.Time) *Value
- func NewTimeOfDayValueFromString(val string) (*Value, error)
- func NewURLValue(val *url.URL) *Value
- func NewURLValueFromString(val string) (v *Value, err error)
- func NewUserValue(val *User) *Value
- func NewUserValueFromString(val string) *Value
- func NewValueFromString(val, ftype string) (v *Value, err error)
- func NewiCalendarValue(val string) *Value
- func NewvCardValue(val string) *Value
- type Variable
- type XMLCredentialParameters
- type XMLInput
- type XMLRequestParameters
- type XMLResponseParameters
Constants ¶
const ( OptionAppID = "app-id" OptionConfigDir = "config-dir" OptionFieldID = "field-id" OptionProfile = "profile" OptionRealmHostname = "realm-hostname" OptionRelationshipID = "relationship-id" OptionTableID = "table-id" OptionTemporaryToken = "temp-token" OptionUserToken = "user-token" )
Option* constants contain CLI options.
const ( FieldRecordID = "recordid" FieldText = "text" FieldTextMultiLine = "text-multi-line" FieldTextMultipleChoice = "text-multiple-choice" FieldRichText = "rich-text" FieldMultiSelectText = "multitext" FieldNumeric = "numeric" FieldNumericCurrency = "currency" FieldNumericPercent = "percent" FieldNumericRating = "rating" FieldDate = "date" FieldDateTime = "timestamp" FieldTimeOfDay = "timeofday" FieldDuration = "duration" FieldCheckbox = "checkbox" FieldAddress = "address" FieldAddressStreet1 = "text" FieldAddressStreet2 = "text" FieldAddressCity = "text" FieldAddressStateRegion = "text" FieldAddressPostalCode = "text" FieldAddressCountry = "text" FieldPhoneNumber = "phone" FieldEmailAddress = "email" FieldUser = "userid" FieldUserList = "multiuserid" FieldFileAttachment = "file" FieldURL = "url" FieldReportLink = "dblink" FieldiCalendar = "ICalendarButton" FieldvCard = "vCardButton" FieldPredecessor = "predecessor" )
Field* constants contain the Quick Base field types.
const ( AccumulationTypeAverage = "AVG" AccumulationTypeSum = "SUM" AccumulationTypeMaximum = "MAX" AccumulationTypeMinimum = "MIN" AccumulationTypeStandardDeviation = "STD-DEV" AccumulationTypeCount = "COUNT" AccumulationTypeCombinedText = "COMBINED-TEXT" AccumulationTypeDistinctCount = "DISTINCT-COUNT" )
AccumulationType* constants contain valid accumulation types for summary fields.
const ( FormatDate = "2006-01-02" FormatDateTime = "2006-01-02T15:04:05Z" FormatTimeOfDay = "15:04:05" )
Format* constants contain common format strings.
const ( SortByASC = "ASC" SortByDESC = "DESC" )
SortBy* constants model values used in the the order property.
const ConfigFilename = "config.yml"
ConfigFilename is the name of the configuration file.
const EnvPrefix = "QUICKBASE"
EnvPrefix is the prefix for environment variables containing configuration.
Variables ¶
var ErrInvalidType = errors.New("field type invalid")
ErrInvalidType is an invalid field type error.
var Version string
Version is the application version. TODO set this with build tags.
Functions ¶
func FieldType ¶
FieldType returns the Quick Base field type from in, which is a string that contains the constant without the "Field" prefix.
func FileExists ¶
FileExists returns true if filename exists and is a file.
func MaskUserToken ¶
MaskUserToken masks user tokens in a byte slice.
func MaskUserTokenString ¶
MaskUserTokenString masks user tokens in a string.
func ReadInConfig ¶
ReadInConfig reads in configuration from the config file.
func TableAlias ¶
TableAlias converts a label to a table alias.
func ValidateHostname ¶
ValidateHostname validates the passed hostname.
func WriteConfigFile ¶
func WriteConfigFile(dir string, cf ConfigFile) (err error)
WriteConfigFile writes a configuration file.
Types ¶
type App ¶
type App struct {
AppID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
TimeZone string `json:"timeZone,omitempty"`
DateFormat string `json:"dateFormat,omitempty"`
Created *Timestamp `json:"created,omitempty"`
Updated *Timestamp `json:"updated,omitempty"`
Variables []*Variable `json:"variables,omitempty"`
HasEveryoneOnTheInternet bool `json:"hasEveryoneOnTheInternet,omitempty"`
}
App models an app. NOTE The description property is in ErrorProperties.
type Client ¶
type Client struct {
HTTPClient *http.Client
Plugins []Plugin
ReamlHostname string
TemporaryToken string
URL string
UserAgent string
UserToken string
}
Client makes requests to the Quick Base API.
func NewFromProfile ¶
NewFromProfile returns a new Client, initializing the config from the passed profile.
func (*Client) CopyApp ¶
func (c *Client) CopyApp(input *CopyAppInput) (output *CopyAppOutput, err error)
CopyApp sends a request to POST /v1/apps/{appId}/copy. See https://developer.quickbase.com/operation/copyApp
func (*Client) CreateApp ¶
func (c *Client) CreateApp(input *CreateAppInput) (output *CreateAppOutput, err error)
CreateApp sends a request to POST /v1/apps. See https://developer.quickbase.com/operation/getApp
func (*Client) CreateField ¶
func (c *Client) CreateField(input *CreateFieldInput) (output *CreateFieldOutput, err error)
CreateField sends a request to POST /v1/fields?tableId={tableId}. See https://developer.quickbase.com/operation/createField
func (*Client) CreateRelationship ¶
func (c *Client) CreateRelationship(input *CreateRelationshipInput) (output *CreateRelationshipOutput, err error)
CreateRelationship sends a request to POST /v1/tables/{tableId}/relationship. See https://developer.quickbase.com/operation/createRelationship
func (*Client) CreateTable ¶
func (c *Client) CreateTable(input *CreateTableInput) (output *CreateTableOutput, err error)
CreateTable sends a request to POST /v1/tables?appId={appId}. See https://developer.quickbase.com/operation/createTable
func (*Client) DeleteApp ¶
func (c *Client) DeleteApp(input *DeleteAppInput) (output *DeleteAppOutput, err error)
DeleteApp sends a request to DELETE /v1/apps/{appId}. See https://developer.quickbase.com/operation/deleteApp
func (*Client) DeleteFields ¶
func (c *Client) DeleteFields(input *DeleteFieldsInput) (output *DeleteFieldsOutput, err error)
DeleteFields sends a request to DELETE v1/fields?tableId={tableId}. See https://developer.quickbase.com/operation/deleteFields
func (*Client) DeleteRecords ¶
func (c *Client) DeleteRecords(input *DeleteRecordsInput) (output *DeleteRecordsOutput, err error)
DeleteRecords sends a request to DELETE /v1/records. See https://developer.quickbase.com/operation/deleteRecords
func (*Client) DeleteRelationship ¶
func (c *Client) DeleteRelationship(input *DeleteRelationshipInput) (output *DeleteRelationshipOutput, err error)
DeleteRelationship sends a request to DELETE /v1/tables/{tableId}/relationship/{relationshipId} See https://developer.quickbase.com/operation/deleteRelationship
func (*Client) DeleteTable ¶
func (c *Client) DeleteTable(input *DeleteTableInput) (output *DeleteTableOutput, err error)
DeleteTable sends a request to DELETE /v1/tables/{tableId}?appId={appId}. See https://developer.quickbase.com/operation/deleteTable
func (*Client) Do ¶
Do sends an arbitrary request to the Quick Base API. TODO Improve the error handling.
func (*Client) GetApp ¶
func (c *Client) GetApp(input *GetAppInput) (output *GetAppOutput, err error)
GetApp sends a request to GET /v1/apps/{appId}. See https://developer.quickbase.com/operation/getApp
func (*Client) GetAppByID ¶
func (c *Client) GetAppByID(id string) (*GetAppOutput, error)
GetAppByID sends a request to GET /v1/apps/{appId} and gets an app by ID. See https://developer.quickbase.com/operation/getApp
func (*Client) GetField ¶
func (c *Client) GetField(input *GetFieldInput) (output *GetFieldOutput, err error)
GetField sends a request to GET /v1/fields/{fieldId}?tableId={tableId}. See https://developer.quickbase.com/operation/getField
func (*Client) GetFieldByID ¶
func (c *Client) GetFieldByID(fid int) (*GetFieldOutput, error)
GetFieldByID sends a request to GET /v1/fields/{fieldId}?tableId={tableId} and gets a field by its ID. See https://developer.quickbase.com/operation/getField
func (*Client) GetTable ¶
func (c *Client) GetTable(input *GetTableInput) (output *GetTableOutput, err error)
GetTable sends a request to GET /v1/tables/{tableId}?appId={appId}. See https://developer.quickbase.com/operation/getTable
func (*Client) GetVariable ¶
func (c *Client) GetVariable(input *GetVariableInput) (output *GetVariableOutput, err error)
GetVariable sends an XML API request to API_GetDBvar. See https://help.quickbase.com/api-guide/index.html#getdbvar.html
func (*Client) InsertRecords ¶
func (c *Client) InsertRecords(input *InsertRecordsInput) (output *InsertRecordsOutput, err error)
InsertRecords sends a request to POST /v1/records. See https://developer.quickbase.com/operation/upsert
func (*Client) ListAppEvents ¶
func (c *Client) ListAppEvents(input *ListAppEventsInput) (output *ListAppEventsOutput, err error)
ListAppEvents sends a request to GET /v1/apps/{appId}/events. See https://developer.quickbase.com/operation/getAppEvents
func (*Client) ListApps ¶
func (c *Client) ListApps(input *ListAppsInput) (output *ListAppsOutput, err error)
ListApps sends an XML API request to API_GrantedDBs. See https://help.quickbase.com/api-guide/granteddbs.html
func (*Client) ListFields ¶
func (c *Client) ListFields(input *ListFieldsInput) (output *ListFieldsOutput, err error)
ListFields sends a request to GET /v1/fields?tableId={tableId}. See https://developer.quickbase.com/operation/getFields
func (*Client) ListFieldsByTableID ¶
func (c *Client) ListFieldsByTableID(tableID string) (*ListFieldsOutput, error)
ListFieldsByTableID sends a request to GET /v1/fields?tableId={tableId} an lists fields for the passed table. See https://developer.quickbase.com/operation/getFields
func (*Client) ListRelationships ¶
func (c *Client) ListRelationships(input *ListRelationshipsInput) (output *ListRelationshipsOutput, err error)
ListRelationships sends a request to GET /v1/tables/{tableId}/relationships. See https://developer.quickbase.com/operation/getRelationships
func (*Client) ListRelationshipsByTableID ¶
func (c *Client) ListRelationshipsByTableID(id string) (*ListRelationshipsOutput, error)
ListRelationshipsByTableID sends a request to GET /v1/tables/{tableId}/relationships and gets a relationship by table ID. See https://developer.quickbase.com/operation/getTable
func (*Client) ListTables ¶
func (c *Client) ListTables(input *ListTablesInput) (output *ListTablesOutput, err error)
ListTables sends a request to GET /v1/tables?appId={appId}. See https://developer.quickbase.com/operation/getAppTables
func (*Client) ListTablesByAppID ¶
func (c *Client) ListTablesByAppID(id string) (*ListTablesOutput, error)
ListTablesByAppID sends a request to GET /v1/tables?appId={appId} and gets a list of tables in an app by its ID. See https://developer.quickbase.com/operation/getAppTables
func (*Client) QueryRecords ¶
func (c *Client) QueryRecords(input *QueryRecordsInput) (output *QueryRecordsOutput, err error)
QueryRecords sends a request to POST /v1/records/query. See https://developer.quickbase.com/operation/runQuery
func (*Client) SetVariable ¶
func (c *Client) SetVariable(input *SetVariableInput) (output *SetVariableOutput, err error)
SetVariable sends an XML API request to API_SetDBvar. See https://help.quickbase.com/api-guide/index.html#setdbvar.html
func (*Client) UpdateApp ¶
func (c *Client) UpdateApp(input *UpdateAppInput) (output *UpdateAppOutput, err error)
UpdateApp sends a request to POST /v1/apps/{appId}. See https://developer.quickbase.com/operation/updateApp
func (*Client) UpdateField ¶
func (c *Client) UpdateField(input *UpdateFieldInput) (output *UpdateFieldOutput, err error)
UpdateField sends a request to POST /v1/fields/{fieldId}?tableId={tableId}. See https://developer.quickbase.com/operation/updateField
func (*Client) UpdateRelationship ¶
func (c *Client) UpdateRelationship(input *UpdateRelationshipInput) (output *UpdateRelationshipOutput, err error)
UpdateRelationship sends a request to POST /v1/tables/{tableId}/relationship/{relationshipId}. See https://developer.quickbase.com/operation/updateRelationship
func (*Client) UpdateTable ¶
func (c *Client) UpdateTable(input *UpdateTableInput) (output *UpdateTableOutput, err error)
UpdateTable sends a request to POST /v1/tables/{tableId}?appId={appId}. See https://developer.quickbase.com/operation/updateTable
type Config ¶
type Config struct {
// contains filtered or unexported fields
}
Config contains configuration for the client.
func (Config) DefaultAppID ¶
DefaultAppID returns the default app ID.
func (Config) DefaultFieldID ¶
DefaultFieldID returns the default field ID.
func (Config) DefaultTableID ¶
DefaultTableID returns the default table ID.
func (Config) RealmHostname ¶
RealmHostname returns the configured realm hostname.
func (Config) TemporaryToken ¶
TemporaryToken returns the configured log level.
type ConfigFile ¶
type ConfigFile map[string]*ConfigFileProfile
ConfigFile models the configuration file.
func ReadConfigFile ¶
func ReadConfigFile(dir string) (cf ConfigFile, err error)
ReadConfigFile reads and parses the configuration file.
type ConfigFileProfile ¶
type ConfigFileProfile struct {
RealmHostname string `yaml:"realm_hostname,omitempty" json:"realm_hostname,omitempty"`
UserToken string `yaml:"user_token,omitempty" json:"user_token,omitempty"`
TemporaryToken string `yaml:"temp_token,omitempty" json:"temp_token,omitempty"`
AppID string `yaml:"app_id,omitempty" json:"app_id,omitempty"`
TableID string `yaml:"table_id,omitempty" json:"table_id,omitempty"`
FieldID int `yaml:"field_id,omitempty" json:"field_id,omitempty"`
}
ConfigFileProfile models the configuration for a profile.
type ConfigIface ¶
type ConfigIface interface {
// ConfigDir returns the configuration directory.
ConfigDir() string
// DefaultAppID returns the default app ID.
DefaultAppID() string
// Default FieldID returns the default field ID
DefaultFieldID() int
// DefaultTableID returns the default table ID.
DefaultTableID() string
// Profile returns the configured profile.
Profile() string
// RealmHostname returns the configured realm hostname.
RealmHostname() string
// TemporaryToken returns the configured log level.
TemporaryToken() string
// UserToken returns the configured log level.
UserToken() string
}
ConfigIface is implemented by structs used to configure the cleint.
type CopyAppInput ¶
type CopyAppInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id usage='unique identifier of an app'"`
Name string `json:"name" validate:"required" cliutil:"option=name usage='name of the app'"`
Description string `json:"description,omitempty" cliutil:"option=description usage='description of the app'"`
Properties *CopyAppInputProperties `json:"properties,omitempty"`
// contains filtered or unexported fields
}
CopyAppInput models the input sent to POST /v1/apps/{appId}/copy. See https://developer.quickbase.com/operation/copyApp
type CopyAppInputProperties ¶
type CopyAppInputProperties struct {
AssignUserToken bool `json:"assignUserToken,omitempty" cliutil:"option=assign-token usage='assign the user token to the app'"`
ExcludeFiles bool `json:"excludeFiles,omitempty" cliutil:"option=exclude-files usage='exclude attached files if --copy-data is passed'"`
KeepData bool `json:"keepData,omitempty" cliutil:"option=keep-data usage='copy data'"`
KeepUsersAndRoles bool `json:"usersAndRoles,omitempty" cliutil:"option=keep-users-roles usage='copy users and roles'"`
}
CopyAppInputProperties models the properties property.
type CopyAppOutput ¶
type CopyAppOutput struct {
ErrorProperties
App
AncestorID string `json:"ancestorId,omitempty"`
}
CopyAppOutput models the output returned by POST /v1/apps/{appId}/copy. See https://developer.quickbase.com/operation/copyApp
type CreateAppInput ¶
type CreateAppInput struct {
Name string `json:"name" validate:"required" cliutil:"option=name usage='name of the app'"`
Description string `json:"description,omitempty" cliutil:"option=description usage='description of the app'"`
AssignUserToken bool `json:"assignToken,omitempty" cliutil:"option=assign-token usage='assign the user token to the app'"`
Variable []*Variable `json:"variables,omitempty"`
// contains filtered or unexported fields
}
CreateAppInput models the input sent to POST /v1/apps. See https://developer.quickbase.com/operation/createApp
type CreateAppOutput ¶
type CreateAppOutput struct {
ErrorProperties
App
}
CreateAppOutput models the output returned by POST /v1/apps. See https://developer.quickbase.com/operation/createApp
type CreateFieldInput ¶
type CreateFieldInput struct {
Field
TableID string `json:"-" validate:"required" cliutil:"option=table-id"`
Properties *CreateFieldInputProperties `json:"properties,omitempty"`
// contains filtered or unexported fields
}
CreateFieldInput models the input sent to POST /v1/fields?tableId={tableId}. See https://developer.quickbase.com/operation/createField
type CreateFieldInputProperties ¶
type CreateFieldInputProperties struct {
FieldProperties
}
CreateFieldInputProperties models the "properties" property.
type CreateFieldOutput ¶
type CreateFieldOutput struct {
ErrorProperties
Field
FieldID int `json:"id"`
Properties *CreateFieldOutputProperties `json:"properties,omitempty"`
}
CreateFieldOutput models the output returned by POST /v1/fields?tableId={tableId}. See https://developer.quickbase.com/operation/createField
type CreateFieldOutputProperties ¶
type CreateFieldOutputProperties struct {
FieldProperties
}
CreateFieldOutputProperties models the "properties" property.
type CreateRelationshipInput ¶
type CreateRelationshipInput struct {
ChildTableID string `json:"-" validate:"required" cliutil:"option=child-table-id"`
ParentTableID string `json:"parentTableId,omitempty" validate:"required" cliutil:"option=parent-table-id"`
ForeignKeyField *CreateRelationshipInputForeignKeyField `json:"foreignKeyField,omitempty"`
LookupFieldIDs []int `json:"lookupFieldIds,omitempty" cliutil:"option=lookup-field-ids"`
SummaryFields []*RelationshipSummaryField `json:"summaryFields,omitempty"`
// contains filtered or unexported fields
}
CreateRelationshipInput models the input sent to POST /v1/tables/{tableId}/relationship. See https://developer.quickbase.com/operation/createRelationship
type CreateRelationshipInputForeignKeyField ¶
type CreateRelationshipInputForeignKeyField struct {
Label string `json:"label,omitempty" cliutil:"option=foreign-key-label"`
}
CreateRelationshipInputForeignKeyField models the summaryFields property.
type CreateRelationshipOutput ¶
type CreateRelationshipOutput struct {
ErrorProperties
Relationship
}
CreateRelationshipOutput models the output returned by POST /v1/tables/{tableId}/relationship. See https://developer.quickbase.com/operation/createRelationship
type CreateTableInput ¶
type CreateTableInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id"`
Name string `json:"name" validate:"required" cliutil:"option=name"`
Description string `json:"description" cliutil:"option=description"`
IconName string `json:"iconName" cliutil:"option=icon-name"`
SingularNoun string `json:"singularNoun" cliutil:"option=singular-noun"`
PluralNoun string `json:"pluralNoun" cliutil:"option=plural-noun"`
// contains filtered or unexported fields
}
CreateTableInput models the input sent to POST /v1/tables?appId={appId}. See https://developer.quickbase.com/operation/createTable
type CreateTableOutput ¶
type CreateTableOutput struct {
ErrorProperties
TableID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
IconName string `json:"iconName,omitempty"`
SingularNoun string `json:"singularNoun,omitempty"`
PluralNoun string `json:"pluralNoun,omitempty"`
}
CreateTableOutput models the output returned by POST /v1/tables?appId={appId}. See https://developer.quickbase.com/operation/createTable
type DeleteAppInput ¶
type DeleteAppInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id"`
Name string `json:"name" validate:"required" cliutil:"option=name usage='name of the app'"`
// contains filtered or unexported fields
}
DeleteAppInput models the input sent to DELETE /v1/apps/{appId}. See https://developer.quickbase.com/operation/deleteApp
type DeleteAppOutput ¶
type DeleteAppOutput struct {
ErrorProperties
ID string `json:"deletedAppId,omitempty"`
}
DeleteAppOutput models the output returned by DELETE /v1/apps/{appId}. See https://developer.quickbase.com/operation/deleteApp
type DeleteFieldsInput ¶
type DeleteFieldsInput struct {
TableID string `json:"-" validate:"required" cliutil:"option=table-id"`
FieldIDs []int `json:"fieldIds" validate:"required,min=1" cliutil:"option=field-id"`
// contains filtered or unexported fields
}
DeleteFieldsInput models the input sent to DELETE v1/fields?tableId={tableId}. See https://developer.quickbase.com/operation/deleteFields
type DeleteFieldsOutput ¶
type DeleteFieldsOutput struct {
ErrorProperties
DeletedFieldIDs []int `json:"deletedFieldIds,omitempty"`
Errors []string `json:"errors,omitempty"`
}
DeleteFieldsOutput models the output returned by DELETE v1/fields?tableId={tableId}. See https://developer.quickbase.com/operation/deleteFields
type DeleteRecordsInput ¶
type DeleteRecordsInput struct {
From string `json:"from" validate:"required" cliutil:"option=from"`
Where string `json:"where" validate:"required" cliutil:"option=where func=query"`
// contains filtered or unexported fields
}
DeleteRecordsInput models the input sent to DELETE /v1/records. See https://developer.quickbase.com/operation/deleteRecords
type DeleteRecordsOutput ¶
type DeleteRecordsOutput struct {
ErrorProperties
NumberDeleted int `json:"numberDeleted,omitempty"`
}
DeleteRecordsOutput models the output returned by DELETE /v1/records. See https://developer.quickbase.com/operation/deleteRecords
type DeleteRelationshipInput ¶
type DeleteRelationshipInput struct {
ChildTableID string `json:"-" validate:"required" cliutil:"option=child-table-id"`
RelationshipID int `json:"-" validate:"required" cliutil:"option=relationship-id"`
// contains filtered or unexported fields
}
DeleteRelationshipInput models the input sent to DELETE /v1/tables/{tableId}/relationship/{relationshipId} See https://developer.quickbase.com/operation/deleteRelationship
type DeleteRelationshipOutput ¶
type DeleteRelationshipOutput struct {
ErrorProperties
RelationshipID int `json:"relationshipId,omitempty"`
}
DeleteRelationshipOutput models the output returned by DELETE /v1/tables/{tableId}/relationship/{relationshipId} See https://developer.quickbase.com/operation/deleteRelationship
type DeleteTableInput ¶
type DeleteTableInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id"`
TableID string `json:"-" validate:"required" cliutil:"option=table-id"`
// contains filtered or unexported fields
}
DeleteTableInput models the input sent to DELETE /v1/tables/{tableId}?appId={appId}. See https://developer.quickbase.com/operation/deleteTable
type DeleteTableOutput ¶
type DeleteTableOutput struct {
ErrorProperties
TableID string `json:"deletedTableId,omitempty"`
}
DeleteTableOutput models the output returned by DELETE /v1/tables/{tableId}?appId={appId}. See https://developer.quickbase.com/operation/deleteTable
type ErrorProperties ¶
type ErrorProperties struct {
Message string `json:"message,omitempty"`
Description string `json:"description,omitempty"`
}
ErrorProperties contains properties returned during errors.
type Field ¶
type Field struct {
// Create iss true if we are creating the field.
Create bool `json:"-"`
// Basics
Label string `json:"label,omitempty" validate:"required" cliutil:"option=label"`
Type string `json:"fieldType,omitempty" validate:"required_if=Create true" cliutil:"option=type"`
Required bool `json:"required,omitempty" cliutil:"option=required"`
Unique bool `json:"unique,omitempty" cliutil:"option=unique"`
// Display
DisplayInBold bool `json:"bold,omitempty" cliutil:"option=bold"`
DisplayWithoutWrapping bool `json:"noWrap,omitempty" cliutil:"option=no-wrap"`
// Advanced
AutoFill bool `json:"doesDataCopy,omitempty" cliutil:"option=auto-fill"`
Searchable bool `json:"findEnabled" cliutil:"option=searchable"` // Defaults to true, so we cannot omitempty.
AddToNewReports bool `json:"appearsByDefault" cliutil:"option=add-to-reports"` // Defaults to true, so we cannot omitempty.
FieldHelpText string `json:"fieldHelp,omitempty" cliutil:"option=help-text"`
TrackField bool `json:"audited,omitempty" cliutil:"option=track-field"`
// No UI
AddToForms bool `json:"addToForms,omitempty" cliutil:"option=add-to-forms"`
}
Field models a field.
type FieldPermission ¶
type FieldPermission struct {
Role string `json:"role"`
Type string `json:"permissionType"`
RoleID int `json:"roleId"`
}
FieldPermission models the permissions properties.
type FieldProperties ¶
type FieldProperties struct {
// Basics
DefaultValue string `json:"defaultValue,omitempty" cliutil:"option=default"`
// Text - Multiple Choice field options
AllowNewChoices bool `json:"allowNewChoices,omitempty" cliutil:"option=allow-new-choices"`
SortChoicesAsGiven bool `json:"sortAsGiven,omitempty" cliutil:"option=sort-as-given"`
// Display
NumberOfLines int `json:"numLines,omitempty" cliutil:"option=num-lines"`
MaxCharacters int `json:"maxLength,omitempty" cliutil:"option=max"`
WidthOfInputBox int `json:"width,omitempty" cliutil:"option=width"`
// No UI
ExactMatch bool `json:"exact,omitempty" cliutil:"option=exact-match"`
ForeignKey bool `json:"foreignKey,omitempty" cliutil:"option=foreign-key"`
Formula string `json:"formula,omitempty" cliutil:"option=formula"`
ParentTable string `json:"masterTableTag,omitempty" cliutil:"option=parent-table"`
PrimaryKey bool `json:"primaryKey,omitempty" cliutil:"option=primary-key"`
RelatedField int `json:"targetFieldId,omitempty" cliutil:"option=related-field"`
// Comments
Comments string `json:"comments,omitempty" cliutil:"option=comments"`
}
FieldProperties models field properties. TODO Make a custom unmarshaler to not show properties if the struct ie empty. SEE https://stackoverflow.com/a/28447372
type GetAppInput ¶
type GetAppInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id"`
// contains filtered or unexported fields
}
GetAppInput models the input sent to GET /v1/apps/{appId}. See https://developer.quickbase.com/operation/getApp
type GetAppOutput ¶
type GetAppOutput struct {
ErrorProperties
App
}
GetAppOutput models the output returned by GET /v1/apps/{appId}. See https://developer.quickbase.com/operation/getApp
type GetFieldInput ¶
type GetFieldInput struct {
TableID string `json:"-" validate:"required" cliutil:"option=table-id"`
FieldID int `json:"-" validate:"required" cliutil:"option=field-id"`
// contains filtered or unexported fields
}
GetFieldInput models the input sent to GET /v1/fields/{fieldId}?tableId={tableId}. See https://developer.quickbase.com/operation/getField
type GetFieldOutput ¶
type GetFieldOutput struct {
ErrorProperties
Field
FieldID int `json:"id,omitempty"`
Properties *GetFieldOutputProperties `json:"properties,omitempty"`
}
GetFieldOutput models the output returned by GET /v1/fields/{fieldId}?tableId={tableId}. See https://developer.quickbase.com/operation/getField
type GetFieldOutputProperties ¶
type GetFieldOutputProperties struct {
FieldProperties
}
GetFieldOutputProperties models the "properties" property.
type GetTableInput ¶
type GetTableInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id"`
TableID string `json:"-" validate:"required" cliutil:"option=table-id"`
// contains filtered or unexported fields
}
GetTableInput models the input sent to GET /v1/tables/{tableId}?appId={appId}s. See https://developer.quickbase.com/operation/getTable
type GetTableOutput ¶
type GetTableOutput struct {
ErrorProperties
Name string `json:"name,omitempty"`
TableID string `json:"id,omitempty"`
Alias string `json:"alias,omitempty"`
Created *Timestamp `json:"created,omitempty"`
Updated *Timestamp `json:"updated,omitempty"`
NextRecordID int `json:"nextRecordId,omitempty"`
NextFieldID int `json:"nextFieldId,omitempty"`
DefaultSortFieldID int `json:"defaultSortFieldId,omitempty"`
DefaultSortOrder string `json:"defaultSortOrder,omitempty"`
KeyFieldID int `json:"keyFieldId,omitempty"`
SingleRecordName string `json:"singleRecordName,omitempty"`
PluralRecordName string `json:"pluralRecordName,omitempty"`
TimeZone string `json:"timeZone,omitempty"`
DateFormat string `json:"dateFormat,omitempty"`
}
GetTableOutput models the output returned by GET /v1/tables/{tableId}?appId={appId}. See https://developer.quickbase.com/operation/getTable
type GetVariableInput ¶
type GetVariableInput struct {
XMLRequestParameters
XMLCredentialParameters
AppID string `xml:"-" validate:"required" cliutil:"option=app-id"`
Name string `xml:"varname" validate:"required" cliutil:"option=variable-name"`
// contains filtered or unexported fields
}
GetVariableInput models the XML API request sent to API_GetDBvar See https://help.quickbase.com/api-guide/index.html#getdbvar.html
type GetVariableOutput ¶
type GetVariableOutput struct {
XMLResponseParameters
Variable
}
GetVariableOutput models the XML API response returned by API_GetDBvar. See https://help.quickbase.com/api-guide/index.html#getdbvar.html
type Input ¶
type Input interface {
// contains filtered or unexported methods
}
Input models the payload of API requests.
type InsertRecordsInput ¶
type InsertRecordsInput struct {
Data []map[int]*InsertRecordsInputData `json:"data" validate:"required,min=1" cliutil:"option=data func=record"`
To string `json:"to" validate:"required" cliutil:"option=to"`
MergeFieldID int `json:"mergeFieldId,omitempty" cliutil:"option=merge-field-id"`
FieldsToReturn []int `json:"fieldsToReturn,omitempty" cliutil:"option=fields-to-return"`
// contains filtered or unexported fields
}
InsertRecordsInput models the input sent to POST /v1/records. See https://developer.quickbase.com/operation/upsert
func (*InsertRecordsInput) SetRecords ¶
func (i *InsertRecordsInput) SetRecords(records []*Record)
SetRecords sets the records to insert.
This function converts the a Records slice and sets it as the InsertRecordsInput.Data property.
type InsertRecordsInputData ¶
type InsertRecordsInputData struct {
Value *Value `json:"value" validate:"required"`
}
InsertRecordsInputData models the data property.
type InsertRecordsOutput ¶
type InsertRecordsOutput struct {
ErrorProperties
Metadata *InsertRecordsOutputMetadata `json:"metadata,omitempty"`
}
InsertRecordsOutput models the output returned by POST /v1/records. See https://developer.quickbase.com/operation/upsert
type InsertRecordsOutputMetadata ¶
type InsertRecordsOutputMetadata struct {
CreatedRecordIDs []int `json:"createdRecordIds"`
TotalNumberOfRecordsProcessed int `json:"totalNumberOfRecordsProcessed"`
UnchangedRecordIDs []int `json:"unchangedRecordIds"`
IpdatedRecordIDs []int `json:"updatedRecordIds"`
}
InsertRecordsOutputMetadata models the metadata property.
type ListAppEventsInput ¶
type ListAppEventsInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id"`
// contains filtered or unexported fields
}
ListAppEventsInput models the input sent to GET /v1/apps/{appId}/events. See https://developer.quickbase.com/operation/getAppEvents
type ListAppEventsOutput ¶
type ListAppEventsOutput struct {
ErrorProperties
Events []*ListAppEventsOutputEvent `json:"events,omitempty"`
}
ListAppEventsOutput models the output returned by GET /v1/apps/{appId}/events. See https://developer.quickbase.com/operation/getAppEvents
func (*ListAppEventsOutput) MarshalJSON ¶
func (o *ListAppEventsOutput) MarshalJSON() ([]byte, error)
MarshalJSON implements json.MarshalJSON by marshaling output.Tables.
func (*ListAppEventsOutput) UnmarshalJSON ¶
func (o *ListAppEventsOutput) UnmarshalJSON(b []byte) (err error)
UnmarshalJSON implements json.UnmarshalJSON by unmarshaling the payload into ListTablesOutput.Events.
type ListAppEventsOutputEvent ¶
type ListAppEventsOutputEvent struct {
Type string `json:"type"`
Owner *User `json:"owner"`
IsActive bool `json:"isActive"`
TableID string `json:"tableId"`
Name string `json:"name"`
URL string `json:"url,omitempty"`
}
ListAppEventsOutputEvent models the event object.
type ListAppsInput ¶
type ListAppsInput struct {
XMLRequestParameters
XMLCredentialParameters
AdminOnly bool `xml:"adminOnly,omitempty" cliutil:"option=admin-only"`
ExcludeParents bool `xml:"excludeparents,int,omitempty" cliutil:"option=exclude-parents"`
IncludeAncestors bool `xml:"includeancestors,int,omitempty" cliutil:"option=include-ancestors"`
RealmAppsOnly bool `xml:"realmAppsOnly,omitempty" cliutil:"option=realm-apps-only"`
WithEmbeddedTables bool `xml:"withembeddedtables,int" cliutil:"option=with-embedded-tables"`
// contains filtered or unexported fields
}
ListAppsInput models the XML API request sent to API_GrantedDBs. See https://help.quickbase.com/api-guide/granteddbs.html
type ListAppsOutput ¶
type ListAppsOutput struct {
XMLResponseParameters
Databases []*ListAppsOutputDatabases `xml:"databases>dbinfo" json:"apps,omitempty"`
}
ListAppsOutput models the XML API response returned by API_GrantedDBs. See https://help.quickbase.com/api-guide/granteddbs.html
type ListAppsOutputDatabases ¶
type ListAppsOutputDatabases struct {
AncestorAppID string `xml:"ancestorappid,omitempty" json:"ancestorAppId,omitempty"`
ID string `xml:"dbid" json:"appId"`
Name string `xml:"dbname" json:"name"`
OldestAncestorAppID string `xml:"oldestancestorappid,omitempty" json:"oldAncestorAppId,omitempty"`
}
ListAppsOutputDatabases modesl the databases propertie.
type ListFieldsInput ¶
type ListFieldsInput struct {
TableID string `json:"-" validate:"required" cliutil:"option=table-id"`
IncludeFieldPermissions bool `json:"includeFieldPerms" cliutil:"option=include-field-permissions"`
// contains filtered or unexported fields
}
ListFieldsInput models the input sent to GET /v1/fields?tableId={tableId}. See https://developer.quickbase.com/operation/getFields
type ListFieldsOutput ¶
type ListFieldsOutput struct {
ErrorProperties
Fields []*ListFieldsOutputField `json:"fields,omitempty"`
}
ListFieldsOutput models the output returned by GET /v1/fields?tableId={tableId}. See https://developer.quickbase.com/operation/getFields
func (*ListFieldsOutput) UnmarshalJSON ¶
func (o *ListFieldsOutput) UnmarshalJSON(b []byte) (err error)
UnmarshalJSON implements json.UnmarshalJSON by unmarshaling the payload into ListFieldsOutput.Fields.
type ListFieldsOutputField ¶
type ListFieldsOutputField struct {
Field
FieldID int `json:"id,omitempty"`
Properties *ListFieldsOutputFieldProperties `json:"properties,omitempty"`
}
ListFieldsOutputField models the field object.
type ListFieldsOutputFieldProperties ¶
type ListFieldsOutputFieldProperties struct {
FieldProperties
}
ListFieldsOutputFieldProperties models the field object properties.
type ListRelationshipsInput ¶
type ListRelationshipsInput struct {
ChildTableID string `json:"-" validate:"required" cliutil:"option=child-table-id"`
// contains filtered or unexported fields
}
ListRelationshipsInput models the input sent to GET /v1/tables/{tableId}/relationships. See https://developer.quickbase.com/operation/getRelationships
type ListRelationshipsOutput ¶
type ListRelationshipsOutput struct {
ErrorProperties
Metadata *ListRelationshipsOutputMetadata `json:"metadata,omitempty"`
Relationships []*Relationship `json:"relationships,omitempty"`
}
ListRelationshipsOutput models the output returned by GET /v1/tables/{tableId}/relationships. See https://developer.quickbase.com/operation/getRelationships
type ListRelationshipsOutputMetadata ¶
type ListRelationshipsOutputMetadata struct {
NumberOfRelationships int `json:"numRelationships,omitempty"`
Skip int `json:"skip,omitempty"`
TotalRelationships int `json:"totalRelationships,omitempty"`
}
ListRelationshipsOutputMetadata models the metadata property.
type ListTablesInput ¶
type ListTablesInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id"`
// contains filtered or unexported fields
}
ListTablesInput models the input sent to GET /v1/tables?appId={appId}. See https://developer.quickbase.com/operation/getAppTables
type ListTablesOutput ¶
type ListTablesOutput struct {
ErrorProperties
Tables []*ListTablesOutputTable `json:"tables,omitempty"`
}
ListTablesOutput models the input sent to GET /v1/tables?appId={appId}. See https://developer.quickbase.com/operation/getAppTables
func (*ListTablesOutput) MarshalJSON ¶
func (o *ListTablesOutput) MarshalJSON() ([]byte, error)
MarshalJSON implements json.MarshalJSON by marshaling output.Tables.
func (*ListTablesOutput) UnmarshalJSON ¶
func (o *ListTablesOutput) UnmarshalJSON(b []byte) (err error)
UnmarshalJSON implements json.UnmarshalJSON by unmarshaling the payload into ListTablesOutput.Tables.
type ListTablesOutputTable ¶
type ListTablesOutputTable struct {
Name string `json:"name"`
TableID string `json:"id"`
Alias string `json:"alias"`
Description string `json:"description"`
Created *Timestamp `json:"created"`
Updated *Timestamp `json:"updated"`
NextRecordID int `json:"nextRecordId"`
NextFieldID int `json:"nextFieldId"`
DefaultSortFieldID int `json:"defaultSortFieldId"`
DefaultSortOrder string `json:"defaultSortOrder"`
KeyFieldID int `json:"keyFieldId"`
SingleRecordName string `json:"singleRecordName"`
PluralRecordName string `json:"pluralRecordName"`
TimeZone string `json:"timeZone"`
DateFormat string `json:"dateFormat"`
SizeLimit string `json:"sizeLimit"`
SpaceRemaining string `json:"spaceRemaining"`
SpaceUsed string `json:"spaceUsed"`
}
ListTablesOutputTable models the table object.
type Output ¶
type Output interface {
// contains filtered or unexported methods
}
Output models the payload of API responses.
type Plugin ¶
Plugin is implemented by plugins that intercept the HTTP request and response when consuming the Quick Base API.
type QueryRecordsInput ¶
type QueryRecordsInput struct {
Select []int `json:"select" validate:"required,min=1" cliutil:"option=select"`
From string `json:"from" validate:"required" cliutil:"option=from"`
Where string `json:"where" cliutil:"option=where func=query"`
GroupBy []*QueryRecordsInputGroupBy `json:"groupBy,omitempty" cliutil:"option=group-by func=group"`
SortBy []*QueryRecordsInputSortBy `json:"sortBy,omitempty" cliutil:"option=sort-by func=sort"`
// contains filtered or unexported fields
}
QueryRecordsInput models the input sent to POST /v1/records/query. See https://developer.quickbase.com/operation/runQuery
type QueryRecordsInputGroupBy ¶
type QueryRecordsInputGroupBy struct {
FieldID int `json:"fieldId"`
Grouping string `json:"grouping"`
}
QueryRecordsInputGroupBy models the groupBy objects.
type QueryRecordsInputSortBy ¶
QueryRecordsInputSortBy models the sortBy objects.
type QueryRecordsOutput ¶
type QueryRecordsOutput struct {
ErrorProperties
Data []map[int]*QueryRecordsOutputData `json:"data,omitempty"`
Fields []*QueryRecordsOutputFields `json:"fields,omitempty"`
Metadata *QueryRecordsOutputMetadata `json:"metadata,omitempty"`
}
QueryRecordsOutput models the output returned by POST /v1/records/query. See https://developer.quickbase.com/operation/runQuery
func (*QueryRecordsOutput) UnmarshalJSON ¶
func (output *QueryRecordsOutput) UnmarshalJSON(b []byte) (err error)
UnmarshalJSON implements json.UnmarshalJSON by using the field type to decode the "value" parameter into the appropriate data type.
type QueryRecordsOutputData ¶
type QueryRecordsOutputData struct {
Value *Value `json:"value"`
}
QueryRecordsOutputData models objects in the data property.
type QueryRecordsOutputFields ¶
type QueryRecordsOutputFields struct {
FieldID int `json:"id"`
Label string `json:"label"`
Type string `json:"type"`
}
QueryRecordsOutputFields models the objects in the fields property.
type QueryRecordsOutputMetadata ¶
type QueryRecordsOutputMetadata struct {
TotalRecords int `json:"totalRecords"`
NumRecords int `json:"numRecords"`
NumFields int `json:"numFields"`
Skip int `json:"skip"`
}
QueryRecordsOutputMetadata models the metadata property.
type Relationship ¶
type Relationship struct {
ChildTableID string `json:"childTableId,omitempty"`
ForeignKeyField *RelationshipField `json:"foreignKeyField,omitempty"`
RelationshipID int `json:"id,omitempty"`
IsCrossApp bool `json:"isCrossApp,omitempty"`
LookupFields []*RelationshipField `json:"lookupFields,omitempty"`
ParentTableID string `json:"parentTableId,omitempty"`
SummaryFields []*RelationshipField `json:"summaryFields,omitempty"`
}
Relationship models a relationship.
type RelationshipField ¶
type RelationshipField struct {
FieldID int `json:"id,omitempty"`
Label string `json:"label,omitempty"`
Type string `json:"type,omitempty"`
}
RelationshipField models fields in relationship output.
type RelationshipSummaryField ¶
type RelationshipSummaryField struct {
SummaryFieldID int `json:"summaryFid,omitempty"`
Label string `json:"label,omitempty"`
AccumulationType string `json:"accumulationType,omitempty"`
Where string `json:"where,omitempty"`
}
RelationshipSummaryField models summary fields in relationship input/output.
type SetVariableInput ¶
type SetVariableInput struct {
XMLRequestParameters
XMLCredentialParameters
AppID string `xml:"-" validate:"required" cliutil:"option=app-id"`
Name string `xml:"varname" validate:"required" cliutil:"option=variable-name"`
Value string `xml:"value" cliutil:"option=variable-value"`
// contains filtered or unexported fields
}
SetVariableInput models a request sent to API_SetDBvar via the XML API. See https://help.quickbase.com/api-guide/index.html#setdbvar.html
type SetVariableOutput ¶
type SetVariableOutput struct {
XMLResponseParameters
Name string `xml:"-" json:"name,omitempty"`
Value string `xml:"-" json:"value,omitempty"`
}
SetVariableOutput models the XML API response returned by API_SetDBvar See https://help.quickbase.com/api-guide/index.html#setdbvar.html
type Timestamp ¶
Timestamp models a unix timestamp in Quick Base.
func (Timestamp) MarshalJSON ¶
MarshalJSON converts time.Time to a unix timestamp in microseconds.
func (*Timestamp) UnmarshalJSON ¶
UnmarshalJSON converts a unix timestamp in microseconds to a time.Time.
type UpdateAppInput ¶
type UpdateAppInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id"`
Name string `json:"name,omitempty" cliutil:"option=name usage='name of the app'"`
Description string `json:"description,omitempty" cliutil:"option=description usage='description of the app'"`
Variable []*Variable `json:"variables,omitempty"`
// contains filtered or unexported fields
}
UpdateAppInput models the input sent to POST /v1/apps/{appId}. See https://developer.quickbase.com/operation/updateApp
type UpdateAppOutput ¶
type UpdateAppOutput struct {
ErrorProperties
App
}
UpdateAppOutput models the output returned by POST /v1/apps/{appId}. See https://developer.quickbase.com/operation/updateApp
type UpdateFieldInput ¶
type UpdateFieldInput struct {
Field
TableID string `json:"-" validate:"required" cliutil:"option=table-id"`
FieldID int `json:"-" validate:"required" cliutil:"option=field-id"`
Properties *UpdateFieldInputProperties `json:"properties,omitempty"`
// contains filtered or unexported fields
}
UpdateFieldInput models the input sent to POST /v1/fields/{fieldId}?tableId={tableId}. See https://developer.quickbase.com/operation/updateField
type UpdateFieldInputProperties ¶
type UpdateFieldInputProperties struct {
FieldProperties
}
UpdateFieldInputProperties models the "properties" property.
type UpdateFieldOutput ¶
type UpdateFieldOutput struct {
ErrorProperties
Field
FieldID int `json:"id"`
Properties *CreateFieldOutputProperties `json:"properties,omitempty"`
}
UpdateFieldOutput models the output returned by POST /v1/fields/{fieldId}?tableId={tableId}. See https://developer.quickbase.com/operation/updateField
type UpdateRelationshipInput ¶
type UpdateRelationshipInput struct {
ChildTableID string `json:"-" validate:"required" cliutil:"option=child-table-id"`
RelationshipID int `json:"-" validate:"required" cliutil:"option=relationship-id"`
LookupFieldIDs []int `json:"lookupFieldIds,omitempty" cliutil:"option=lookup-field-ids"`
SummaryFields []*RelationshipSummaryField `json:"summaryFields,omitempty"`
// contains filtered or unexported fields
}
UpdateRelationshipInput models the input sent to POST /v1/tables/{tableId}/relationship/{relationshipId}. See https://developer.quickbase.com/operation/updateRelationship
type UpdateRelationshipOutput ¶
type UpdateRelationshipOutput struct {
ErrorProperties
Relationship
}
UpdateRelationshipOutput models the output returned by POST /v1/tables/{tableId}/relationship/{relationshipId}. See https://developer.quickbase.com/operation/updateRelationship
type UpdateTableInput ¶
type UpdateTableInput struct {
AppID string `json:"-" validate:"required" cliutil:"option=app-id"`
TableID string `json:"-" validate:"required" cliutil:"option=table-id"`
Name string `json:"name,omitempty" cliutil:"option=name"`
Description string `json:"description,omitempty" cliutil:"option=description"`
IconName string `json:"iconName,omitempty" cliutil:"option=icon-name"`
SingularNoun string `json:"singularNoun,omitempty" cliutil:"option=singular-noun"`
PluralNoun string `json:"pluralNoun,omitempty" cliutil:"option=plural-noun"`
// contains filtered or unexported fields
}
UpdateTableInput models the input sent to POST /v1/tables/{tableId}?appId={appId}. See https://developer.quickbase.com/operation/updateTable
type UpdateTableOutput ¶
type UpdateTableOutput struct {
ErrorProperties
TableID string `json:"id,omitempty"`
Name string `json:"name,omitempty"`
IconName string `json:"iconName,omitempty"`
SingularNoun string `json:"singularNoun,omitempty"`
PluralNoun string `json:"pluralNoun,omitempty"`
}
UpdateTableOutput models the output returned by POST /v1/tables/{tableId}?appId={appId}. See https://developer.quickbase.com/operation/updateTable
type ValidateStringFn ¶
ValidateStringFn validates a string.
func ValidateNotEmptyFn ¶
func ValidateNotEmptyFn(label string) ValidateStringFn
ValidateNotEmptyFn returns a function that validates a string isn't empty.
type Value ¶
type Value struct {
Bool bool
Duration time.Duration
Float64 float64
String string
StringSlice []string
Time time.Time
URL *url.URL
User *User
UserSlice []*User
QuickBaseType string
}
Value models the value of fields in Quick Base. This struct effectively handles the Quick base field type / Golang type transformations.
func NewAddressCityValue ¶
NewAddressCityValue returns a new Value of the FieldAddressCity type.
func NewAddressCountryValue ¶
NewAddressCountryValue returns a new Value of the FieldAddressCountry type.
func NewAddressPostalCodeValue ¶
NewAddressPostalCodeValue returns a new Value of the FieldAddressPostalCode type.
func NewAddressStateRegionValue ¶
NewAddressStateRegionValue returns a new Value of the FieldAddressStateRegion type.
func NewAddressStreet1Value ¶
NewAddressStreet1Value returns a new Value of the FieldAddressStreet1 type.
func NewAddressStreet2Value ¶
NewAddressStreet2Value returns a new Value of the FieldAddressStreet2 type.
func NewAddressValue ¶
NewAddressValue returns a new Value of the FieldAddress type.
func NewCheckboxValue ¶
NewCheckboxValue returns a new Value of the FieldCheckbox type.
func NewCheckboxValueFromString ¶
NewCheckboxValueFromString returns a new Value of the FieldCheckbox type given a passed string.
func NewDateTimeValue ¶
NewDateTimeValue returns a new Value of the FieldDateTime type.
func NewDateTimeValueFromString ¶
NewDateTimeValueFromString returns a new Value of the FieldDate type, parsing the passed string into a time.Time.
func NewDateValue ¶
NewDateValue returns a new Value of the FieldDate type.
func NewDateValueFromString ¶
NewDateValueFromString returns a new Value of the FieldDate type, parsing the passed string into a time.Time.
func NewDurationValue ¶
NewDurationValue returns a new Value of the FieldDuration type.
func NewDurationValueFromFloat64 ¶
NewDurationValueFromFloat64 returns a new Value of the FieldDuration type, converting the passed float64 into a duration. We assume that the float64 is the duration in milliseconds.
func NewDurationValueFromString ¶
NewDurationValueFromString returns a new Value of the FieldDuration type given a passed string.
func NewEmailAddressValue ¶
NewEmailAddressValue returns a new Value of the FieldEmailAddress type.
func NewFileAttachmentValue ¶
NewFileAttachmentValue returns a new Value of the FieldFileAttachment type.
func NewListUserValue ¶
NewListUserValue returns a new Value of the FieldUserList type.
func NewListUserValueFromString ¶
NewListUserValueFromString returns a new Value of the FieldUserList type given a passed string.
func NewMultiSelectTextValue ¶
NewMultiSelectTextValue returns a new Value of the FieldMultiSelectText type.
func NewMultiSelectTextValueFromString ¶
NewMultiSelectTextValueFromString returns a new Value of the FieldMultiSelectText type given a string with a comma-separated list of values.
func NewNumericCurrencyValue ¶
NewNumericCurrencyValue returns a new Value of the FieldNumericCurrency type.
func NewNumericCurrencyValueFromString ¶
NewNumericCurrencyValueFromString returns a new Value of the FieldNumericCurrency type given a string
func NewNumericPercentValue ¶
NewNumericPercentValue returns a new Value of the FieldNumericPercent type.
func NewNumericPercentValueFromString ¶
NewNumericPercentValueFromString returns a new Value of the FieldNumericPercent type given a string.
func NewNumericRatingValue ¶
NewNumericRatingValue returns a new Value of the FieldNumericRating type.
func NewNumericRatingValueFromString ¶
NewNumericRatingValueFromString returns a new Value of the FieldNumericRating type given a string.
func NewNumericValue ¶
NewNumericValue returns a new Value of the FieldNumeric type.
func NewNumericValueFromString ¶
NewNumericValueFromString returns a new Value of the FieldNumeric type given a string.
func NewPhoneNumberValue ¶
NewPhoneNumberValue returns a new Value of the FieldPhoneNumber type.
func NewPredecessorValue ¶
NewPredecessorValue returns a new Value of the FieldPredecessor type.
func NewRecordIDValue ¶
NewRecordIDValue returns a new Value of the FieldRecordID type.
func NewReportLinkValue ¶
NewReportLinkValue returns a new Value of the FieldReportLink type.
func NewRichTextValue ¶
NewRichTextValue returns a new Value of the FieldRichText type.
func NewTextMultiLineValue ¶
NewTextMultiLineValue returns a new Value of the FieldTextMultiLine type.
func NewTextMultipleChoiceValue ¶
NewTextMultipleChoiceValue returns a new Value of the FieldTextMultipleChoice type.
func NewTextValue ¶
NewTextValue returns a new Value of the FieldText type.
func NewTimeOfDayValue ¶
NewTimeOfDayValue returns a new Value of the FieldTimeOfDay type.
func NewTimeOfDayValueFromString ¶
NewTimeOfDayValueFromString returns a new Value of the FieldDate type, parsing the passed string into a time.Time.
func NewURLValue ¶
NewURLValue returns a new Value of the FieldURL type.
func NewURLValueFromString ¶
NewURLValueFromString returns a new Value of the FieldURL type.
func NewUserValue ¶
NewUserValue returns a new Value of the FieldUser type.
func NewUserValueFromString ¶
NewUserValueFromString returns a new Value of the FieldUser type given a passed string.
func NewValueFromString ¶
NewValueFromString returns a new *Value from a string given the Quick Base field type.
func NewiCalendarValue ¶
NewiCalendarValue returns a new Value of the FieldiCalendar type. Make this a URL?
func NewvCardValue ¶
NewvCardValue returns a new Value of the FieldvCard type. Make this a URL?
func (*Value) MarshalJSON ¶
MarshalJSON implements json.MarshalJSON and JSON encodes the value. TODO Marshal by Quick Base type instead, because we have to format dates differently.
type Variable ¶
type Variable struct {
Name string `xml:"-" json:"name,omitempty"`
Value string `xml:"value,omitempty" json:"value,omitempty"`
}
Variable models a variable.
type XMLCredentialParameters ¶
type XMLCredentialParameters struct {
AppToken string `xml:"apptoken,omitempty"`
Ticket string `xml:"ticket,omitempty"`
UserToken string `xml:"usertoken,omitempty"`
}
XMLCredentialParameters models XML API credentials parameters and implements XMLInput.
type XMLInput ¶
type XMLInput interface {
Input
// contains filtered or unexported methods
}
XMLInput is implemented by requests to the XML API.
type XMLRequestParameters ¶
type XMLRequestParameters struct {
XMLName xml.Name `xml:"qdbapi"`
UserData string `xml:"udata,omitempty"`
}
XMLRequestParameters models common XML API request parameters.
type XMLResponseParameters ¶
type XMLResponseParameters struct {
XMLName xml.Name `xml:"qdbapi" json:"-"`
Action string `xml:"action" json:"-"`
ErrorCode int `xml:"errcode" json:"errorCode,omitempty"`
ErrorText string `xml:"errtext" json:"errorMessage,omitempty"`
ErrorDetail string `xml:"errdetail" json:"errorDetail,omitempty"`
UserData string `xml:"udata,omitempty" json:"userData,omitempty"`
}
XMLResponseParameters models common XML API response parameters and implements Output.