data

package
v0.1.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2025 License: Apache-2.0 Imports: 11 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrRabbitMQNotInitialized = errors.New("RabbitMQ service not initialized")
	ErrKafkaNotInitialized    = errors.New("kafka service not initialized")
	ErrConnectionUnavailable  = errors.New("messaging service connection unavailable")
)

Functions

func GetTx

func GetTx(ctx context.Context) (*sql.Tx, error)

GetTx retrieves transaction from context

Types

type ContextKey

type ContextKey string
const (
	// ContextKeyTransaction is context key
	ContextKeyTransaction ContextKey = "tx"
)

type Data

type Data struct {
	Conn     *connection.Connections
	RabbitMQ *rabbitmq.RabbitMQ
	Kafka    *kafka.Kafka
}

Data represents the data layer implementation

func New

func New(cfg *config.Config, createNewInstance ...bool) (*Data, func(name ...string), error)

New creates new data layer

func (*Data) Close

func (d *Data) Close() []error

Close closes all data connections

func (*Data) ConsumeFromKafka

func (d *Data) ConsumeFromKafka(ctx context.Context, topic, groupID string, handler func([]byte) error) error

ConsumeFromKafka consumes messages from Kafka

func (*Data) ConsumeFromRabbitMQ

func (d *Data) ConsumeFromRabbitMQ(queue string, handler func([]byte) error) error

ConsumeFromRabbitMQ consumes messages from RabbitMQ

func (*Data) DB

func (d *Data) DB() *sql.DB

DB returns the master database connection for write operations

func (*Data) DBRead

func (d *Data) DBRead() (*sql.DB, error)

DBRead returns slave database connection for read operations

func (*Data) GetDBManager

func (d *Data) GetDBManager() *connection.DBManager

GetDBManager get database manager

func (*Data) GetElasticsearch

func (d *Data) GetElasticsearch() *elastic.Client

GetElasticsearch get elasticsearch

func (*Data) GetMeilisearch

func (d *Data) GetMeilisearch() *meili.Client

GetMeilisearch get meilisearch

func (*Data) GetMongoManager

func (d *Data) GetMongoManager() *connection.MongoManager

GetMongoManager get mongo manager

func (*Data) GetRedis

func (d *Data) GetRedis() *redis.Client

GetRedis get redis

func (*Data) IsMessagingAvailable added in v0.1.2

func (d *Data) IsMessagingAvailable() bool

IsMessagingAvailable checks if any messaging system is available and properly connected

func (*Data) Ping

func (d *Data) Ping(ctx context.Context) error

Ping checks all database connections

func (*Data) PublishToKafka

func (d *Data) PublishToKafka(ctx context.Context, topic string, key, value []byte) error

PublishToKafka publishes message to Kafka

func (*Data) PublishToRabbitMQ

func (d *Data) PublishToRabbitMQ(exchange, routingKey string, body []byte) error

PublishToRabbitMQ publishes message to RabbitMQ

func (*Data) WithTx

func (d *Data) WithTx(ctx context.Context, fn func(ctx context.Context) error) error

WithTx wraps function within transaction

func (*Data) WithTxRead

func (d *Data) WithTxRead(ctx context.Context, fn func(ctx context.Context) error) error

WithTxRead wraps function within read-only transaction

type Option

type Option func(*Data)

Option function type for configuring Connections

Directories

Path Synopsis
cache module
databases
entgo module
kafka module
meilisearch module
messaging
mongodb module
mysql module
neo4j module
opensearch module
postgres module
rabbitmq module
redis module
search module
sqlite module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL