data

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

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")
)

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     *connection2.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() *connection2.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() *connection2.MongoManager

GetMongoManager get mongo manager

func (*Data) GetRedis

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

GetRedis get redis

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
entgo

Jump to

Keyboard shortcuts

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