Documentation
¶
Index ¶
- type ConnectionRepository
- type Service
- func (s *Service) Connect(ctx context.Context, id uuid.UUID) (*sql.DB, error)
- func (s *Service) CreateConnection(ctx context.Context, input models.CreateDatabaseConnectionInput, ...) (*models.DatabaseConnection, error)
- func (s *Service) DeleteConnection(ctx context.Context, id uuid.UUID) error
- func (s *Service) ExecuteQuery(ctx context.Context, id uuid.UUID, query string, writeMode bool) (*models.DatabaseQueryResult, error)
- func (s *Service) GetConnection(ctx context.Context, id uuid.UUID) (*models.DatabaseConnection, error)
- func (s *Service) GetTableColumns(ctx context.Context, id uuid.UUID, tableName string) ([]models.DatabaseColumn, error)
- func (s *Service) GetTableData(ctx context.Context, id uuid.UUID, tableName string, page, pageSize int) ([]map[string]interface{}, int64, error)
- func (s *Service) ListConnections(ctx context.Context, userID uuid.UUID) ([]*models.DatabaseConnection, error)
- func (s *Service) ListTables(ctx context.Context, id uuid.UUID) ([]models.DatabaseTable, error)
- func (s *Service) TestConnection(ctx context.Context, id uuid.UUID) (models.DatabaseTestResulter, error)
- func (s *Service) UpdateConnection(ctx context.Context, id uuid.UUID, input models.UpdateDatabaseConnectionInput) error
- type TestResult
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) 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 ¶
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 ¶
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.