Documentation ¶
Index ¶
Constants ¶
const ( StatusUp = "UP" StatusDown = "DOWN" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Datasource ¶ added in v0.2.0
type ErrorDB ¶ added in v1.7.0
ErrorDB represents an error specific to database operations.
func (ErrorDB) StatusCode ¶ added in v1.7.0
type Logger ¶
type Logger interface { Debug(args ...interface{}) Debugf(format string, args ...interface{}) Log(args ...interface{}) Logf(format string, args ...interface{}) Error(args ...interface{}) Errorf(format string, args ...interface{}) }
Logger interface is used by datasource packages to log information about query execution. Developer Notes: Note that it's a reduced version of logging.Logger interface. We are not using that package to ensure that datasource package is not dependent on logging package. That way logging package should be easily able to import datasource package and provide a different "pretty" version for different log types defined here while avoiding the cyclical import issue. Idiomatically, interfaces should be defined by packages who are using it; unlike other languages. Also - accept interfaces, return concrete types.
type Mongo ¶ added in v1.3.0
type Mongo interface { // Find executes a query to find documents in a collection based on a filter and stores the results // into the provided results interface. Find(ctx context.Context, collection string, filter interface{}, results interface{}) error // FindOne executes a query to find a single document in a collection based on a filter and stores the result // into the provided result interface. FindOne(ctx context.Context, collection string, filter interface{}, result interface{}) error // InsertOne inserts a single document into a collection. // It returns the identifier of the inserted document and an error, if any. InsertOne(ctx context.Context, collection string, document interface{}) (interface{}, error) // InsertMany inserts multiple documents into a collection. // It returns the identifiers of the inserted documents and an error, if any. InsertMany(ctx context.Context, collection string, documents []interface{}) ([]interface{}, error) // DeleteOne deletes a single document from a collection based on a filter. // It returns the number of documents deleted and an error, if any. DeleteOne(ctx context.Context, collection string, filter interface{}) (int64, error) // DeleteMany deletes multiple documents from a collection based on a filter. // It returns the number of documents deleted and an error, if any. DeleteMany(ctx context.Context, collection string, filter interface{}) (int64, error) // UpdateByID updates a document in a collection by its ID. // It returns the number of documents updated and an error if any. UpdateByID(ctx context.Context, collection string, id interface{}, update interface{}) (int64, error) // UpdateOne updates a single document in a collection based on a filter. // It returns an error if any. UpdateOne(ctx context.Context, collection string, filter interface{}, update interface{}) error // UpdateMany updates multiple documents in a collection based on a filter. // It returns the number of documents updated and an error if any. UpdateMany(ctx context.Context, collection string, filter interface{}, update interface{}) (int64, error) // CountDocuments counts the number of documents in a collection based on a filter. // It returns the count and an error if any. CountDocuments(ctx context.Context, collection string, filter interface{}) (int64, error) // Drop an entire collection from the database. // It returns an error if any. Drop(ctx context.Context, collection string) error }
Mongo is an interface representing a MongoDB database client with common CRUD operations.
type MongoProvider ¶ added in v1.7.0
type MongoProvider interface { Mongo // UseLogger sets the logger for the MongoDB client. UseLogger(logger interface{}) // UseMetrics sets the metrics for the MongoDB client. UseMetrics(metrics interface{}) // Connect establishes a connection to MongoDB and registers metrics using the provided configuration when the client was Created. Connect() }
MongoProvider is an interface that extends Mongo with additional methods for logging, metrics, and connection management. Which is used for initializing datasource.
Directories ¶
Path | Synopsis |
---|---|
cassandra
module
|
|
clickhouse
module
|
|
dgraph
module
|
|
file
|
|
ftp
Module
|
|
s3
Module
|
|
sftp
Module
|
|
kv-store
|
|
badger
Module
|
|
mongo
module
|
|
Package pubsub provides a foundation for implementing pub/sub clients for various message brokers such as google pub-sub, kafka and MQTT.
|
Package pubsub provides a foundation for implementing pub/sub clients for various message brokers such as google pub-sub, kafka and MQTT. |
google
Package google provides a client for interacting with Google Cloud Pub/Sub.This package facilitates interaction with Google Cloud Pub/Sub, allowing publishing and subscribing to topics, managing subscriptions, and handling messages.
|
Package google provides a client for interacting with Google Cloud Pub/Sub.This package facilitates interaction with Google Cloud Pub/Sub, allowing publishing and subscribing to topics, managing subscriptions, and handling messages. |
kafka
Package kafka provides a client for interacting with Apache Kafka message queues.This package facilitates interaction with Apache Kafka, allowing publishing and subscribing to topics, managing consumer groups, and handling messages.
|
Package kafka provides a client for interacting with Apache Kafka message queues.This package facilitates interaction with Apache Kafka, allowing publishing and subscribing to topics, managing consumer groups, and handling messages. |
mqtt
Package mqtt provides a client for interacting with MQTT message brokers.This package facilitates interaction with MQTT brokers, allowing publishing and subscribing to topics, managing subscriptions, and handling messages.
|
Package mqtt provides a client for interacting with MQTT message brokers.This package facilitates interaction with MQTT brokers, allowing publishing and subscribing to topics, managing subscriptions, and handling messages. |
eventhub
Module
|
|
nats
Module
|
|
Package redis provides a client for interacting with Redis key-value stores.This package allows creating and managing Redis clients, executing Redis commands, and handling connections to Redis databases.
|
Package redis provides a client for interacting with Redis key-value stores.This package allows creating and managing Redis clients, executing Redis commands, and handling connections to Redis databases. |
solr
module
|
|
Package sql provides functionalities to interact with SQL databases using the database/sql package.This package includes a wrapper around sql.DB and sql.Tx to provide additional features such as query logging, metrics recording, and error handling.
|
Package sql provides functionalities to interact with SQL databases using the database/sql package.This package includes a wrapper around sql.DB and sql.Tx to provide additional features such as query logging, metrics recording, and error handling. |