Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Auth ¶
type Auth interface { // Auth implements the connection pool Pool // Create a new byte16 token with the given name, token duration and scopes CreateByte16(context.Context, string, time.Duration, ...string) (string, error) // List returns all tokens in access order, with the latest token accessed first List(context.Context, func(AuthToken)) error // Expire a token with the given name. When argument is set to // true, the token is deleted from the database, otherwise it is disabled Expire(context.Context, string, bool) error // Return no error if the token with the given name exists and not expired, // and has one of the given scopes. Returns ErrNotFound if the token // with the given name does not exist, ErrExpired if the token has // expired, or ErrUnauthorized if the token does not have any of the // given scopes. Valid(context.Context, string, ...string) error // ValidByValue returns the name of a token with the given value, and // if any of the scopes match. It will return ErrNotFound if no token // with the given value exists, ErrExpired if the token has expired or // ErrNotAuthorized if the token does not have any of the given scopes. It // updates the access_at field of the token if found ValidByValue(context.Context, string, ...string) (string, error) // UpdateExpiry updates the duration of a token's life with the given name, // or removes the expiry if duration is 0 and updates the access_at field // of the token UpdateExpiry(context.Context, string, time.Duration) error // UpdateScope sets the scopes of a token with the given name and updates // the access_at field of the token UpdateScope(context.Context, string, ...string) error }
Auth represents authorzation storage
type AuthToken ¶
type AuthToken interface { // Return the name of the token Name() string // Return the token type (currently only 'byte16' is supported) Type() string // Return the scopes of the token Scope() []string // Return the last access time for the token AccessAt() time.Time // Return the expiry time for the token, or time.Zero if there // is no expiry ExpireAt() time.Time // Return ErrExpired if the token has expired, or ErrNotAuthorized if // any given scopes are not in the token's scopes. Otherwise return nil Valid(...string) error }
AuthToken represents an authorization token
type Collection ¶
type Collection interface { // Return the name of the collection Name() string // Delete zero or one documents and returns the number of deleted documents (which should be // zero or one. The filter argument is used to determine a document to delete. If there is more than // one filter, they are ANDed together Delete(context.Context, ...Filter) (int64, error) // DeleteMany deletes zero or more documents and returns the number of deleted documents. DeleteMany(context.Context, ...Filter) (int64, error) // Find selects a single document based on filter and sort parameters. // It returns ErrNotFound if no document is found Find(context.Context, Sort, ...Filter) (any, error) // FindMany returns an iterable cursor based on filter and sort parameters. // It returns ErrNotFound if no document is found FindMany(context.Context, Sort, ...Filter) (Cursor, error) // Update zero or one document with given values and return the number // of documents matched and modified, neither of which should be more than one. Update(context.Context, any, ...Filter) (int64, int64, error) // Update zero or more document with given values and return the number // of documents matched and modified, neither of which should be more than one. UpdateMany(context.Context, any, ...Filter) (int64, int64, error) // FindUpdate selects a single document based on filter and sort parameters, // updates the document with the given values and returns the document as it appeared // before updating, or ErrNotFound if no document is found and updated. FindUpdate(context.Context, any, Sort, ...Filter) (any, error) }
type Conn ¶
type Conn interface { io.Closer // You can call all database operations on the client instance, which will // use the default database or return an error if no default database // is set Database // Return the default timeout for the client Timeout() time.Duration // Ping the client, return an error if not reachable Ping(context.Context) error // Return a database object for a specific database Database(string) Database // Return all existing databases on the server Databases(context.Context) ([]Database, error) // Perform operations within a transaction. Rollback or apply // changes to the database depending on error return. Do(context.Context, func(context.Context) error) error // Return a filter specification F() Filter // Return a sort specification S() Sort }
Conn represents a connection to a database server. Open a connection to the client with
mongodb.Open(context.Context, string, ...ClientOpt) (Client, error)
which returns a client object. The client options can be used to set the default database:
clientopt := mongodb.WithDatabase(string)
You can set the operation timeout using the following option:
clientopt := mongodb.WithTimeout(time.Duration)
You can map a go struct intstance to a collection name:
clientopt := mongodb.WithCollection(any, string)
and you can set up a trace function to record operation timings:
clientopt := mongodb.WithTrace(func(context.Context, time.Duration))
type CreateTable ¶
type CreateTable interface { Query }
type Cursor ¶
type Cursor interface { io.Closer // Find next document in the result set and return the document. Will // return (nil, io.EOF) when no more documents are available. Next(context.Context) (any, error) }
Cursor represents an iterable cursor to a result set
type Database ¶
type Database interface { // Return the name of the database Name() string // Return a collection object for a specific struct Collection(any) Collection // Insert documents of the same type to the database. The document key is updated // if the document is writable. Insert(context.Context, ...any) error }
Database represents a specific database on the server on which operations can be performed.
type Name ¶
type Name interface { Query // Use a specific alias name As(string) Name // Use a specific schema name WithSchema(string) Name // Set a declared type WithType(string) Name // Transform into a CreateTable query with columns. Use TEMPORARY, IF_NOT_EXISTS, STRICT // and WITHOUT_ROWID flags to modify the table creation. CreateTable(...Name) CreateTable }
Name represents an SQL name (table name, column name)
type Pool ¶
type Pool interface { io.Closer // Get a connection from the pool, or return nil // if a connection could not be created Get() Conn // Release a connection back to the pool Put(Conn) // Return size of pool Size() int }
Pool represents a connection pool. You can create a connection pool with the following code:
pool := pool.New(ctx, uri, opts...)
where uri is a mongodb:// URI and opts are pool options. You can set the maximum size of the pool with the following option:
opts := pool.WithMaxSize(int)
type Query ¶
type Query interface { // Return the SQL query that can be executed Query() string // Set flags for any query With(QueryFlag) Query }
Query represents any kind of SQL Query
type QueryFlag ¶
type QueryFlag uint
const ( NOT_NULL QueryFlag = 1 << iota PRIMARY_KEY UNIQUE_KEY ASC DESC ON_CONFLICT_ROLLBACK ON_CONFLICT_ABORT ON_CONFLICT_FAIL ON_CONFLICT_IGNORE ON_CONFLICT_REPLACE AUTO_INCREMENT TEMPORARY IF_NOT_EXISTS STRICT WITHOUT_ROWID NONE QueryFlag = 0 QUERY_MIN = NOT_NULL QUERY_MAX = WITHOUT_ROWID QUERY_CONFLICT = ON_CONFLICT_ROLLBACK | ON_CONFLICT_ABORT | ON_CONFLICT_FAIL | ON_CONFLICT_IGNORE | ON_CONFLICT_REPLACE QUERY_SORT = ASC | DESC )
func (QueryFlag) FlagString ¶
type Sort ¶
type Sort interface { // Add ascending sort order fields Asc(...string) error // Add descending sort order fields Desc(...string) error // Limit the number of documents returned Limit(int64) error }
Sort represents a sort specification for a query
type TagType ¶
type TagType string
const ( TaskPriority TagType = "priority" // int: The priority of the task (higher is more important) TaskCreatedAt TagType = "created_at" // time.Time: The time the task was created TaskScheduledAt TagType = "scheduled_at" // time.Time: The time the task is scheduled to be executed TaskExpiresAt TagType = "expires_at" // time.Time: When the task expires (if not executed before this time) TaskAge TagType = "age" // time.Duration: The maximum age of the task (how long it has been in the queue) TaskRetryCount TagType = "retry_count" // int: The number of times the task has been retried TaskLastError TagType = "last_error" // string: The last task error )
type Task ¶
type Task interface { Key() string // A unique identifier for the task Namespace() string // Return the namespace of the task Tags() []Tag // Return all metadata tags }
Task represents a task
type TaskQueue ¶
type TaskQueue interface { // Schedule a new task to be executed, and return it New(context.Context, ...Tag) (Task, error) // Run the queue to retain tasks and execute them Run(context.Context, WorkerFunc) error }
TaskQueue represents a set of tasks to be executed in order. Create a TaskQueue using:
queue := taskqueue.NewQueue(conn, namespace)
Directories ¶
Path | Synopsis |
---|---|
pkg
|
|
mongodb
The accessory package provides a high level API for go object storage in databases (MongoDB).
|
The accessory package provides a high level API for go object storage in databases (MongoDB). |
sqlite/query
query package provides an SQL query builder
|
query package provides an SQL query builder |
sqlite/quote
Package quote provides SQL quoting functions for strings and identifiers
|
Package quote provides SQL quoting functions for strings and identifiers |
sqlite/sys
Package sqlite provides bindings for sqlite 3.
|
Package sqlite provides bindings for sqlite 3. |
plugin
|
|