database

package
v0.0.0-...-890248b Latest Latest
Warning

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

Go to latest
Published: May 21, 2026 License: AGPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConnectionRepository

type ConnectionRepository interface {
	Create(ctx context.Context, conn *models.DatabaseConnection) error
	GetByID(ctx context.Context, id uuid.UUID) (*models.DatabaseConnection, error)
	ListByUser(ctx context.Context, userID uuid.UUID) ([]*models.DatabaseConnection, error)
	Update(ctx context.Context, id uuid.UUID, input models.UpdateDatabaseConnectionInput) error
	UpdateStatus(ctx context.Context, id uuid.UUID, status models.DatabaseConnectionStatus, message string) error
	Delete(ctx context.Context, id uuid.UUID) error
}

ConnectionRepository defines the interface for database connection storage.

type Service

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

Service manages database connections and operations.

func NewService

func NewService(
	connRepo *postgres.DatabaseConnectionRepository,
	cryptoSvc *crypto.Encryptor,
	log *logger.Logger,
) *Service

NewService creates a new database connection service.

func (*Service) Connect

func (s *Service) Connect(ctx context.Context, id uuid.UUID) (*sql.DB, error)

Connect opens a database connection.

func (*Service) CreateConnection

func (s *Service) CreateConnection(ctx context.Context, input models.CreateDatabaseConnectionInput, userID uuid.UUID) (*models.DatabaseConnection, error)

CreateConnection creates a new database connection.

func (*Service) DeleteConnection

func (s *Service) DeleteConnection(ctx context.Context, id uuid.UUID) error

DeleteConnection removes a database connection.

func (*Service) ExecuteQuery

func (s *Service) ExecuteQuery(ctx context.Context, id uuid.UUID, query string, writeMode bool) (*models.DatabaseQueryResult, error)

ExecuteQuery executes a SQL query (read-only by default).

func (*Service) GetConnection

func (s *Service) GetConnection(ctx context.Context, id uuid.UUID) (*models.DatabaseConnection, error)

GetConnection retrieves a database connection by ID.

func (*Service) GetTableColumns

func (s *Service) GetTableColumns(ctx context.Context, id uuid.UUID, tableName string) ([]models.DatabaseColumn, error)

GetTableColumns returns the columns of a table.

func (*Service) GetTableData

func (s *Service) GetTableData(ctx context.Context, id uuid.UUID, tableName string, page, pageSize int) ([]map[string]interface{}, int64, error)

GetTableData returns rows from a table with pagination.

func (*Service) ListConnections

func (s *Service) ListConnections(ctx context.Context, userID uuid.UUID) ([]*models.DatabaseConnection, error)

ListConnections retrieves all database connections for a user.

func (*Service) ListTables

func (s *Service) ListTables(ctx context.Context, id uuid.UUID) ([]models.DatabaseTable, error)

ListTables returns the list of tables in the database.

func (*Service) TestConnection

func (s *Service) TestConnection(ctx context.Context, id uuid.UUID) (models.DatabaseTestResulter, error)

TestConnection tests a database connection and returns the result.

func (*Service) UpdateConnection

func (s *Service) UpdateConnection(ctx context.Context, id uuid.UUID, input models.UpdateDatabaseConnectionInput) error

UpdateConnection updates a database connection.

type TestResult

type TestResult struct {
	ConnectionID uuid.UUID     `json:"connection_id"`
	Success      bool          `json:"success"`
	Message      string        `json:"message"`
	Latency      time.Duration `json:"latency"`
}

TestResult contains the result of a connection test.

func (*TestResult) GetLatency

func (r *TestResult) GetLatency() time.Duration

GetLatency returns the connection latency.

func (*TestResult) GetMessage

func (r *TestResult) GetMessage() string

GetMessage returns the test message.

func (*TestResult) IsSuccess

func (r *TestResult) IsSuccess() bool

IsSuccess returns whether the test was successful.

Jump to

Keyboard shortcuts

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