Documentation
¶
Index ¶
- Variables
- func IsErrorStatusCode(err error, statusCode int) bool
- func RetryOnPreconditionFailed(f func() error) (err error)
- type Authorizer
- type Collection
- type CollectionClient
- type CollectionIterator
- type Collections
- type CompositeIndex
- type ConflictResolutionPolicy
- type ConflictResolutionPolicyMode
- type Database
- type DatabaseClient
- type DatabaseIterator
- type Databases
- type Error
- type ExcludedPath
- type FakeTemplateClient
- func (c *FakeTemplateClient) ChangeFeed(*Options) TemplateIterator
- func (c *FakeTemplateClient) Create(ctx context.Context, partitionkey string, template *pkg.Template, ...) (*pkg.Template, error)
- func (c *FakeTemplateClient) Delete(ctx context.Context, partitionKey string, template *pkg.Template, ...) error
- func (c *FakeTemplateClient) ExecuteStoredProcedure(ctx context.Context, sprocsid string, partitionkey string, parameters []string, ...) (err error)
- func (c *FakeTemplateClient) Get(ctx context.Context, partitionkey string, id string, options *Options) (*pkg.Template, error)
- func (c *FakeTemplateClient) List(*Options) TemplateIterator
- func (c *FakeTemplateClient) ListAll(ctx context.Context, options *Options) (*pkg.Templates, error)
- func (c *FakeTemplateClient) Query(name string, query *Query, options *Options) TemplateRawIterator
- func (c *FakeTemplateClient) QueryAll(ctx context.Context, partitionkey string, query *Query, options *Options) (*pkg.Templates, error)
- func (c *FakeTemplateClient) Replace(ctx context.Context, partitionkey string, template *pkg.Template, ...) (*pkg.Template, error)
- func (c *FakeTemplateClient) SetConflictChecker(conflictChecker func(*pkg.Template, *pkg.Template) bool)
- func (c *FakeTemplateClient) SetError(err error)
- func (c *FakeTemplateClient) SetQueryHandler(queryName string, query fakeTemplateQueryHandler)
- func (c *FakeTemplateClient) SetSorter(sorter func([]*pkg.Template))
- func (c *FakeTemplateClient) SetTriggerHandler(triggerName string, trigger fakeTemplateTriggerHandler)
- type GeospatialConfig
- type GeospatialConfigType
- type IncludedPath
- type Index
- type IndexDataType
- type IndexKind
- type IndexingPolicy
- type IndexingPolicyMode
- type Options
- type Order
- type Parameter
- type PartitionKey
- type PartitionKeyKind
- type PartitionKeyRange
- type PartitionKeyRangeStatus
- type PartitionKeyRanges
- type Permission
- type PermissionClient
- type PermissionIterator
- type PermissionMode
- type Permissions
- type Query
- type StoredProcedure
- type StoredProcedureClient
- type StoredProcedureIterator
- type StoredProcedures
- type TemplateClient
- type TemplateIterator
- type TemplateRawIterator
- type Trigger
- type TriggerClient
- type TriggerIterator
- type TriggerOperation
- type TriggerType
- type Triggers
- type UniqueKey
- type UniqueKeyPolicy
- type User
- type UserClient
- type UserIterator
- type Users
Constants ¶
This section is empty.
Variables ¶
var ErrETagRequired = fmt.Errorf("ETag is required")
ErrETagRequired is the error returned if the ETag field is not populate on a PUT or DELETE operation
var ErrNotImplemented = fmt.Errorf("not implemented")
ErrNotImplemented is the error returned if a fake function is not implemented
Functions ¶
func IsErrorStatusCode ¶
IsErrorStatusCode returns true if err is of type Error and its StatusCode matches statusCode
func RetryOnPreconditionFailed ¶
RetryOnPreconditionFailed retries a function if it fails due to PreconditionFailed
Types ¶
type Authorizer ¶
func NewMasterKeyAuthorizer ¶
func NewMasterKeyAuthorizer(masterKey string) (Authorizer, error)
func NewTokenAuthorizer ¶
func NewTokenAuthorizer(token string) Authorizer
type Collection ¶
type Collection struct { ID string `json:"id,omitempty"` ResourceID string `json:"_rid,omitempty"` Timestamp int `json:"_ts,omitempty"` Self string `json:"_self,omitempty"` ETag string `json:"_etag,omitempty"` Documents string `json:"_docs,omitempty"` StoredProcedures string `json:"_sprocs,omitempty"` Triggers string `json:"_triggers,omitempty"` UserDefinedFunctions string `json:"_udfs,omitempty"` Conflicts string `json:"_conflicts,omitempty"` IndexingPolicy *IndexingPolicy `json:"indexingPolicy,omitempty"` PartitionKey *PartitionKey `json:"partitionKey,omitempty"` UniqueKeyPolicy *UniqueKeyPolicy `json:"uniqueKeyPolicy,omitempty"` ConflictResolutionPolicy *ConflictResolutionPolicy `json:"conflictResolutionPolicy,omitempty"` AllowMaterializedViews bool `json:"allowMaterializedViews,omitempty"` GeospatialConfig *GeospatialConfig `json:"geospatialConfig,omitempty"` }
Collection represents a collection
type CollectionClient ¶
type CollectionClient interface { Create(context.Context, *Collection) (*Collection, error) List() CollectionIterator ListAll(context.Context) (*Collections, error) Get(context.Context, string) (*Collection, error) Delete(context.Context, *Collection) error Replace(context.Context, *Collection) (*Collection, error) PartitionKeyRanges(context.Context, string) (*PartitionKeyRanges, error) }
CollectionClient is a collection client
func NewCollectionClient ¶
func NewCollectionClient(c DatabaseClient, dbid string) CollectionClient
NewCollectionClient returns a new collection client
type CollectionIterator ¶
type CollectionIterator interface {
Next(context.Context) (*Collections, error)
}
CollectionIterator is a collection iterator
type Collections ¶
type Collections struct { Count int `json:"_count,omitempty"` ResourceID string `json:"_rid,omitempty"` Collections []*Collection `json:"DocumentCollections,omitempty"` }
Collections represents collections
type CompositeIndex ¶
type CompositeIndex []struct { Path string `json:"path,omitempty"` Order Order `json:"order,omitempty"` }
CompositeIndex represents a composite index
type ConflictResolutionPolicy ¶
type ConflictResolutionPolicy struct { Mode ConflictResolutionPolicyMode `json:"mode,omitempty"` ConflictResolutionPath string `json:"conflictResolutionPath,omitempty"` ConflictResolutionProcedure string `json:"conflictResolutionProcedure,omitempty"` }
ConflictResolutionPolicy represents a conflict resolution policy
type ConflictResolutionPolicyMode ¶
type ConflictResolutionPolicyMode string
ConflictResolutionPolicyMode represents a conflict resolution policy mode
const ( ConflictResolutionPolicyModeLastWriterWins ConflictResolutionPolicyMode = "LastWriterWins" ConflictResolutionPolicyModeCustom ConflictResolutionPolicyMode = "Custom" )
ConflictResolutionPolicyMode constants
type Database ¶
type Database struct { ID string `json:"id,omitempty"` ResourceID string `json:"_rid,omitempty"` Timestamp int `json:"_ts,omitempty"` Self string `json:"_self,omitempty"` ETag string `json:"_etag,omitempty"` Collections string `json:"_colls,omitempty"` Users string `json:"_users,omitempty"` }
Database represents a database
type DatabaseClient ¶
type DatabaseClient interface { SetAuthorizer(Authorizer) Create(context.Context, *Database) (*Database, error) List() DatabaseIterator ListAll(context.Context) (*Databases, error) Get(context.Context, string) (*Database, error) Delete(context.Context, *Database) error }
DatabaseClient is a database client
func NewDatabaseClient ¶
func NewDatabaseClient(log *logrus.Entry, hc *http.Client, jsonHandle *codec.JsonHandle, databaseHostname string, authorizer Authorizer) DatabaseClient
NewDatabaseClient returns a new database client
type DatabaseIterator ¶
DatabaseIterator is a database iterator
type Databases ¶
type Databases struct { Count int `json:"_count,omitempty"` ResourceID string `json:"_rid,omitempty"` Databases []*Database `json:"Databases,omitempty"` }
Databases represents databases
type ExcludedPath ¶
type ExcludedPath struct {
Path string `json:"path,omitempty"`
}
ExcludedPath represents an excluded path
type FakeTemplateClient ¶
type FakeTemplateClient struct {
// contains filtered or unexported fields
}
FakeTemplateClient is a FakeTemplateClient
func NewFakeTemplateClient ¶
func NewFakeTemplateClient(h *codec.JsonHandle) *FakeTemplateClient
NewFakeTemplateClient returns a FakeTemplateClient
func (*FakeTemplateClient) ChangeFeed ¶
func (c *FakeTemplateClient) ChangeFeed(*Options) TemplateIterator
ChangeFeed is unimplemented
func (*FakeTemplateClient) Create ¶
func (c *FakeTemplateClient) Create(ctx context.Context, partitionkey string, template *pkg.Template, options *Options) (*pkg.Template, error)
Create creates a Template in the database
func (*FakeTemplateClient) Delete ¶
func (c *FakeTemplateClient) Delete(ctx context.Context, partitionKey string, template *pkg.Template, options *Options) error
Delete deletes a Template from the database
func (*FakeTemplateClient) ExecuteStoredProcedure ¶
func (c *FakeTemplateClient) ExecuteStoredProcedure(ctx context.Context, sprocsid string, partitionkey string, parameters []string, response interface{}) (err error)
ExecuteStoredProcedure executes a stored procedure in the database
func (*FakeTemplateClient) Get ¶
func (c *FakeTemplateClient) Get(ctx context.Context, partitionkey string, id string, options *Options) (*pkg.Template, error)
Get gets a Template from the database
func (*FakeTemplateClient) List ¶
func (c *FakeTemplateClient) List(*Options) TemplateIterator
List returns a TemplateIterator to list all Templates in the database
func (*FakeTemplateClient) Query ¶
func (c *FakeTemplateClient) Query(name string, query *Query, options *Options) TemplateRawIterator
Query calls a query handler to implement database querying
func (*FakeTemplateClient) QueryAll ¶
func (c *FakeTemplateClient) QueryAll(ctx context.Context, partitionkey string, query *Query, options *Options) (*pkg.Templates, error)
QueryAll calls a query handler to implement database querying
func (*FakeTemplateClient) Replace ¶
func (c *FakeTemplateClient) Replace(ctx context.Context, partitionkey string, template *pkg.Template, options *Options) (*pkg.Template, error)
Replace replaces a Template in the database
func (*FakeTemplateClient) SetConflictChecker ¶
func (c *FakeTemplateClient) SetConflictChecker(conflictChecker func(*pkg.Template, *pkg.Template) bool)
SetConflictChecker sets or unsets a function which can be used to validate additional unique keys in a Template
func (*FakeTemplateClient) SetError ¶
func (c *FakeTemplateClient) SetError(err error)
SetError sets or unsets an error that will be returned on any FakeTemplateClient method invocation
func (*FakeTemplateClient) SetQueryHandler ¶
func (c *FakeTemplateClient) SetQueryHandler(queryName string, query fakeTemplateQueryHandler)
SetQueryHandler sets or unsets a query handler
func (*FakeTemplateClient) SetSorter ¶
func (c *FakeTemplateClient) SetSorter(sorter func([]*pkg.Template))
SetSorter sets or unsets a sorter function which will be used to sort values returned by List() for test stability
func (*FakeTemplateClient) SetTriggerHandler ¶
func (c *FakeTemplateClient) SetTriggerHandler(triggerName string, trigger fakeTemplateTriggerHandler)
SetTriggerHandler sets or unsets a trigger handler
type GeospatialConfig ¶
type GeospatialConfig struct {
Type GeospatialConfigType `json:"type,omitempty"`
}
GeospatialConfig represents a geospatial config
type GeospatialConfigType ¶
type GeospatialConfigType string
GeospatialConfigType represents geospatial config types
const (
GeospatialConfigTypeGeography GeospatialConfigType = "Geography"
)
GeospatialConfigType constants
type IncludedPath ¶
type IncludedPath struct { Path string `json:"path,omitempty"` Indexes []Index `json:"indexes,omitempty"` }
IncludedPath represents an included path
type Index ¶
type Index struct { DataType IndexDataType `json:"dataType,omitempty"` Kind IndexKind `json:"kind,omitempty"` Precision int `json:"precision,omitempty"` }
Index represents an index
type IndexDataType ¶
type IndexDataType string
IndexDataType represents an index data type
const ( IndexDataTypeString IndexDataType = "String" IndexDataTypeNumber IndexDataType = "Number" IndexDataTypePoint IndexDataType = "Point" IndexDataTypePolygon IndexDataType = "Polygon" IndexDataTypeLineString IndexDataType = "LineString" )
IndexDataType constants
type IndexingPolicy ¶
type IndexingPolicy struct { Automatic bool `json:"automatic,omitempty"` IndexingMode IndexingPolicyMode `json:"indexingMode,omitempty"` IncludedPaths []IncludedPath `json:"includedPaths,omitempty"` ExcludedPaths []IncludedPath `json:"excludedPaths,omitempty"` CompositeIndexes []CompositeIndex `json:"compositeIndexes,omitempty"` }
IndexingPolicy represents an indexing policy
type IndexingPolicyMode ¶
type IndexingPolicyMode string
IndexingPolicyMode represents an indexing policy mode
const ( IndexingPolicyModeConsistent IndexingPolicyMode = "Consistent" IndexingPolicyModeLazy IndexingPolicyMode = "Lazy" )
IndexingPolicyMode constants
type Options ¶
type Options struct { NoETag bool PreTriggers []string PostTriggers []string PartitionKeyRangeID string Continuation string }
Options represents API options
type PartitionKey ¶
type PartitionKey struct { Paths []string `json:"paths,omitempty"` Kind PartitionKeyKind `json:"kind,omitempty"` Version int `json:"version,omitempty"` }
PartitionKey represents a partition key
type PartitionKeyKind ¶
type PartitionKeyKind string
PartitionKeyKind represents a partition key kind
const (
PartitionKeyKindHash PartitionKeyKind = "Hash"
)
PartitionKeyKind constants
type PartitionKeyRange ¶
type PartitionKeyRange struct { ID string `json:"id,omitempty"` ResourceID string `json:"_rid,omitempty"` Timestamp int `json:"_ts,omitempty"` Self string `json:"_self,omitempty"` ETag string `json:"_etag,omitempty"` MaxExclusive string `json:"maxExclusive,omitempty"` MinInclusive string `json:"minInclusive,omitempty"` ResourceIDPrefix int `json:"ridPrefix,omitempty"` ThroughputFraction float64 `json:"throughputFraction,omitempty"` Status PartitionKeyRangeStatus `json:"status,omitempty"` Parents []string `json:"parents,omitempty"` }
PartitionKeyRange represents a partition key range
type PartitionKeyRangeStatus ¶
type PartitionKeyRangeStatus string
PartitionKeyRangeStatus represents a partition key range status
const (
PartitionKeyRangeStatusOnline PartitionKeyRangeStatus = "online"
)
PartitionKeyRangeStatus constants
type PartitionKeyRanges ¶
type PartitionKeyRanges struct { Count int `json:"_count,omitempty"` ResourceID string `json:"_rid,omitempty"` PartitionKeyRanges []PartitionKeyRange `json:"PartitionKeyRanges,omitempty"` }
PartitionKeyRanges represents partition key ranges
type Permission ¶
type Permission struct { ID string `json:"id,omitempty"` ResourceID string `json:"_rid,omitempty"` Timestamp int `json:"_ts,omitempty"` Self string `json:"_self,omitempty"` ETag string `json:"_etag,omitempty"` Token string `json:"_token,omitempty"` PermissionMode PermissionMode `json:"permissionMode,omitempty"` Resource string `json:"resource,omitempty"` }
Permission represents a permission
type PermissionClient ¶
type PermissionClient interface { Create(context.Context, *Permission) (*Permission, error) List() PermissionIterator ListAll(context.Context) (*Permissions, error) Get(context.Context, string) (*Permission, error) Delete(context.Context, *Permission) error Replace(context.Context, *Permission) (*Permission, error) }
PermissionClient is a permission client
func NewPermissionClient ¶
func NewPermissionClient(userc UserClient, userid string) PermissionClient
NewPermissionClient returns a new permission client
type PermissionIterator ¶
type PermissionIterator interface {
Next(context.Context) (*Permissions, error)
}
PermissionIterator is a permission iterator
type PermissionMode ¶
type PermissionMode string
PermissionMode represents a permission mode
const ( PermissionModeAll PermissionMode = "All" PermissionModeRead PermissionMode = "Read" )
PermissionMode constants
type Permissions ¶
type Permissions struct { Count int `json:"_count,omitempty"` ResourceID string `json:"_rid,omitempty"` Permissions []*Permission `json:"Permissions,omitempty"` }
Permissions represents permissions
type Query ¶
type Query struct { Query string `json:"query,omitempty"` Parameters []Parameter `json:"parameters,omitempty"` }
Query represents a query
type StoredProcedure ¶
type StoredProcedure struct { // ID is the user generated unique name for the stored procedure. No two stored procedures can have the same IDs. ID string `json:"id,omitempty"` ResourceID string `json:"_rid,omitempty"` Timestamp int `json:"_ts,omitempty"` Self string `json:"_self,omitempty"` ETag string `json:"_etag,omitempty"` // Body of the stored procedure. Body string `json:"body,omitempty"` }
StoredProcedure represents a stored procedure
type StoredProcedureClient ¶
type StoredProcedureClient interface { Create(context.Context, *StoredProcedure) (*StoredProcedure, error) List() StoredProcedureIterator ListAll(context.Context) (*StoredProcedures, error) Get(context.Context, string) (*StoredProcedure, error) Delete(context.Context, *StoredProcedure) error Replace(context.Context, *StoredProcedure) (*StoredProcedure, error) }
StoredProcedureClient is a stored procedure client
func NewStoredProcedureClient ¶
func NewStoredProcedureClient(collc CollectionClient, collid string) StoredProcedureClient
NewStoredProcedureClient returns a new stored procedure client
type StoredProcedureIterator ¶
type StoredProcedureIterator interface {
Next(context.Context) (*StoredProcedures, error)
}
StoredProcedureIterator is a stored procedure iterator
type StoredProcedures ¶
type StoredProcedures struct { Count int `json:"_count,omitempty"` ResourceID string `json:"_rid,omitempty"` StoredProcedures []*StoredProcedure `json:"StoredProcedures,omitempty"` }
StoredProcedures represents stored procedures
type TemplateClient ¶
type TemplateClient interface { Create(context.Context, string, *pkg.Template, *Options) (*pkg.Template, error) List(*Options) TemplateIterator ListAll(context.Context, *Options) (*pkg.Templates, error) Get(context.Context, string, string, *Options) (*pkg.Template, error) Replace(context.Context, string, *pkg.Template, *Options) (*pkg.Template, error) Delete(context.Context, string, *pkg.Template, *Options) error Query(string, *Query, *Options) TemplateRawIterator QueryAll(context.Context, string, *Query, *Options) (*pkg.Templates, error) ChangeFeed(*Options) TemplateIterator ExecuteStoredProcedure(context.Context, string, string, []string, interface{}) error }
TemplateClient is a template client
func NewTemplateClient ¶
func NewTemplateClient(collc CollectionClient, collid string) TemplateClient
NewTemplateClient returns a new template client
type TemplateIterator ¶
type TemplateIterator interface { Next(context.Context, int) (*pkg.Templates, error) Continuation() string }
TemplateIterator is a template iterator
type TemplateRawIterator ¶
type TemplateRawIterator interface { TemplateIterator NextRaw(context.Context, int, interface{}) error }
TemplateRawIterator is a template raw iterator
func NewFakeTemplateErroringRawIterator ¶
func NewFakeTemplateErroringRawIterator(err error) TemplateRawIterator
NewFakeTemplateErroringRawIterator returns a TemplateRawIterator which whose methods return the given error
func NewFakeTemplateIterator ¶
func NewFakeTemplateIterator(templates []*pkg.Template, continuation int) TemplateRawIterator
type Trigger ¶
type Trigger struct { ID string `json:"id,omitempty"` ResourceID string `json:"_rid,omitempty"` Timestamp int `json:"_ts,omitempty"` Self string `json:"_self,omitempty"` ETag string `json:"_etag,omitempty"` Body string `json:"body,omitempty"` TriggerOperation TriggerOperation `json:"triggerOperation,omitempty"` TriggerType TriggerType `json:"triggerType,omitempty"` }
Trigger represents a trigger
type TriggerClient ¶
type TriggerClient interface { Create(context.Context, *Trigger) (*Trigger, error) List() TriggerIterator ListAll(context.Context) (*Triggers, error) Get(context.Context, string) (*Trigger, error) Delete(context.Context, *Trigger) error Replace(context.Context, *Trigger) (*Trigger, error) }
TriggerClient is a trigger client
func NewTriggerClient ¶
func NewTriggerClient(collc CollectionClient, collid string) TriggerClient
NewTriggerClient returns a new trigger client
type TriggerIterator ¶
TriggerIterator is a trigger iterator
type TriggerOperation ¶
type TriggerOperation string
TriggerOperation represents a trigger operation
const ( TriggerOperationAll TriggerOperation = "All" TriggerOperationCreate TriggerOperation = "Create" TriggerOperationReplace TriggerOperation = "Replace" TriggerOperationDelete TriggerOperation = "Delete" )
TriggerOperation constants
type TriggerType ¶
type TriggerType string
TriggerType represents a trigger type
const ( TriggerTypePre TriggerType = "Pre" TriggerTypePost TriggerType = "Post" )
TriggerType constants
type Triggers ¶
type Triggers struct { Count int `json:"_count,omitempty"` ResourceID string `json:"_rid,omitempty"` Triggers []*Trigger `json:"Triggers,omitempty"` }
Triggers represents triggers
type UniqueKey ¶
type UniqueKey struct {
Paths []string `json:"paths,omitempty"`
}
UniqueKey represents a unique key
type UniqueKeyPolicy ¶
type UniqueKeyPolicy struct {
UniqueKeys []UniqueKey `json:"uniqueKeys,omitempty"`
}
UniqueKeyPolicy represents a unique key policy
type User ¶
type User struct { ID string `json:"id,omitempty"` ResourceID string `json:"_rid,omitempty"` Timestamp int `json:"_ts,omitempty"` Self string `json:"_self,omitempty"` ETag string `json:"_etag,omitempty"` Permissions string `json:"_permissions,omitempty"` }
User represents a user
type UserClient ¶
type UserClient interface { Create(context.Context, *User) (*User, error) List() UserIterator ListAll(context.Context) (*Users, error) Get(context.Context, string) (*User, error) Delete(context.Context, *User) error Replace(context.Context, *User) (*User, error) }
UserClient is a user client
func NewUserClient ¶
func NewUserClient(c DatabaseClient, dbid string) UserClient
NewUserClient returns a new user client
type UserIterator ¶
UserIterator is a user iterator