consumer

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2025 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultTickerInterval is the default interval for the ticker in the consumer
	DefaultTickerInterval = 1 * time.Second

	// DefaultTokensMessageConsumerChannelBufferSize is the default buffer size for the tokens message consumer channel
	DefaultTokensMessageConsumerChannelBufferSize = 100
)
View Source
var (
	ErrMissingJTI = errors.New("missing jti")
)

Functions

This section is empty.

Types

type Consumer

type Consumer interface {
	Open() error
	Close() error
	CreateTokensMessagesConsumer(ctx context.Context) (
		TokensMessagesConsumer,
		error,
	)
}

Consumer is the interface for the JWT RabbitMQ consumer

type DefaultConsumer

type DefaultConsumer struct {
	// contains filtered or unexported fields
}

DefaultConsumer is the default implementation of the Consumer interface

func NewDefaultConsumer

func NewDefaultConsumer(
	conn *amqp091.Connection,
	queueName string,
	period time.Duration,
	tokensMessagesConsumerChannelBufferSize int,
	logger *slog.Logger,
) (*DefaultConsumer, error)

NewDefaultConsumer creates a new DefaultConsumer

Parameters:

  • conn: the RabbitMQ connection
  • queueName: the name of the queue
  • period: the polling period
  • tokensMessagesConsumerChannelBufferSize: the buffer size for the messages channel
  • logger: the logger

Returns:

  • *DefaultConsumer: the DefaultConsumer instance
  • error: an error if the connection is nil

func (*DefaultConsumer) Close

func (d *DefaultConsumer) Close() error

Close closes the RabbitMQ channel and connection

Returns:

  • error: an error if the channel could not be closed

func (*DefaultConsumer) CreateTokensMessagesConsumer added in v0.6.3

func (d *DefaultConsumer) CreateTokensMessagesConsumer(ctx context.Context) (
	TokensMessagesConsumer,
	error,
)

CreateTokensMessagesConsumer creates a tokens messages consumer

Parameters:

  • ctx: the context

Returns:

  • TokensMessagesConsumer: the tokens messages consumer
  • error: an error if the consumer could not be created

func (*DefaultConsumer) Open

func (d *DefaultConsumer) Open() error

Open opens a RabbitMQ channel

Returns:

  • error: an error if the channel could not be opened

type DefaultService added in v0.7.0

type DefaultService struct {
	gojwttokenclaims.TokenValidator
	// contains filtered or unexported fields
}

DefaultService is the default implementation of the Service interface

func NewDefaultService added in v0.7.0

func NewDefaultService(
	consumer Consumer,
	tokenValidator gojwttokenclaims.TokenValidator,
	logger *slog.Logger,
) (*DefaultService, error)

NewDefaultService creates a new DefaultService

Parameters:

  • handler: the SQL connection handler
  • consumer: the RabbitMQ consumer
  • tokenValidator: the token validator
  • logger: the logger (optional, can be nil)

Returns:

  • *DefaultService: the DefaultService instance
  • error: an error if the data source or driver name is empty

func (*DefaultService) Start added in v0.7.0

func (d *DefaultService) Start(ctx context.Context) error

Start starts the service to listen for messages and update the SQL database

Parameters:

  • ctx: the context for managing cancellation and timeouts

Returns:

  • error: an error if the service could not be started

type DefaultTokensMessagesConsumer added in v0.6.3

type DefaultTokensMessagesConsumer struct {
	// contains filtered or unexported fields
}

DefaultTokensMessagesConsumer is the default implementation of the TokensMessagesConsumer interface

func NewDefaultTokensMessagesConsumer added in v0.6.3

func NewDefaultTokensMessagesConsumer(
	deliveryCh <-chan amqp091.Delivery,
	bufferSize int,
	period time.Duration,
	logger *slog.Logger,
) (*DefaultTokensMessagesConsumer, error)

NewDefaultTokensMessagesConsumer creates a new DefaultTokensMessagesConsumer

Parameters:

  • deliveryCh: the RabbitMQ delivery channel
  • bufferSize: the buffer size for the messages channel
  • period: the polling period
  • logger: the logger

Returns:

  • *DefaultTokensMessagesConsumer: the DefaultTokensMessagesConsumer instance
  • error: an error if the delivery channel is nil

func (DefaultTokensMessagesConsumer) ConsumeTokensMessages added in v0.6.3

func (d DefaultTokensMessagesConsumer) ConsumeTokensMessages(
	ctx context.Context,
) error

ConsumeTokensMessages consumes a tokens message and sends it to the channel

Parameters:

  • ctx: the context

Returns:

func (DefaultTokensMessagesConsumer) GetChannel added in v0.6.3

GetChannel returns the tokens message consumer channel

Returns:

  • <-chan gojwtrabbitmq.TokensMessage: the tokens message consumer channel

type Service added in v0.7.0

type Service interface {
	gojwttokenclaims.TokenValidator
	Start(ctx context.Context) error
}

Service is the interface for the SQLite service for JWT IDs

type TokensMessagesConsumer added in v0.6.3

type TokensMessagesConsumer interface {
	GetChannel() <-chan *gojwtrabbitmq.TokensMessage
	ConsumeTokensMessages(ctx context.Context) error
}

TokensMessagesConsumer is the interface for the JWT RabbitMQ tokens messages consumer

Jump to

Keyboard shortcuts

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