Skip to content

Commit 86124e9

Browse files
committed
lint
1 parent 6c9292b commit 86124e9

File tree

3 files changed

+52
-36
lines changed

3 files changed

+52
-36
lines changed

server/cmd/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func main() {
3131
panic(err)
3232
}
3333

34-
database, err := db.NewSQLiteDB(cfg.DatabasePath)
34+
database, err := db.NewSQLiteDB(cfg.DatabasePath, logger)
3535
if err != nil {
3636
logger.Fatal("Failed to connect to database", zap.Error(err))
3737
}

server/db/sqlite.go

Lines changed: 46 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/golang-migrate/migrate/v4/database/sqlite3"
1515
_ "github.com/golang-migrate/migrate/v4/source/file"
1616
_ "github.com/mattn/go-sqlite3"
17+
"go.uber.org/zap"
1718
)
1819

1920
type DB interface {
@@ -36,10 +37,11 @@ type DB interface {
3637
}
3738

3839
type SQLiteDB struct {
39-
db *sql.DB
40+
db *sql.DB
41+
logger *zap.Logger
4042
}
4143

42-
func NewSQLiteDB(dbPath string) (*SQLiteDB, error) {
44+
func NewSQLiteDB(dbPath string, logger *zap.Logger) (*SQLiteDB, error) {
4345
db, err := sql.Open("sqlite3", dbPath)
4446
if err != nil {
4547
return nil, fmt.Errorf("failed to open database: %w", err)
@@ -57,7 +59,7 @@ func NewSQLiteDB(dbPath string) (*SQLiteDB, error) {
5759
return nil, fmt.Errorf("failed to enable WAL mode: %w", err)
5860
}
5961

60-
return &SQLiteDB{db: db}, nil
62+
return &SQLiteDB{db: db, logger: logger}, nil
6163
}
6264

6365
func (s *SQLiteDB) RunMigrations(migrationsPath string) error {
@@ -371,34 +373,36 @@ func (s *SQLiteDB) ListWorkflows(limit, offset int) ([]Workflow, error) {
371373
return nil, fmt.Errorf("failed to scan workflow: %w", err)
372374
}
373375
if err := json.Unmarshal([]byte(nodesJSON), &workflow.Nodes); err != nil {
374-
fmt.Printf("Warning: failed to unmarshal nodes for workflow %s: %v\n", workflow.WorkflowID, err)
375-
workflow.Nodes = make([]*pb.Node, 0)
376+
s.logger.Error("failed to unmarshal nodes for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
377+
return nil, fmt.Errorf("failed to unmarshal nodes for workflow %s: %w", workflow.WorkflowID, err)
376378
}
377379

378380
if err := json.Unmarshal([]byte(validatorsJSON), &workflow.Validators); err != nil {
379-
fmt.Printf("Warning: failed to unmarshal validators for workflow %s: %v\n", workflow.WorkflowID, err)
380-
workflow.Validators = make([]*pb.Node, 0)
381+
s.logger.Error("failed to unmarshal validators for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
382+
return nil, fmt.Errorf("failed to unmarshal validators for workflow %s: %w", workflow.WorkflowID, err)
381383
}
382384

383385
if err := json.Unmarshal([]byte(loadBalancersJSON), &workflow.LoadBalancers); err != nil {
384-
fmt.Printf("Warning: failed to unmarshal loadbalancers for workflow %s: %v\n", workflow.WorkflowID, err)
385-
workflow.LoadBalancers = make([]*pb.Node, 0)
386+
s.logger.Error("failed to unmarshal loadbalancers for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
387+
return nil, fmt.Errorf("failed to unmarshal loadbalancers for workflow %s: %w", workflow.WorkflowID, err)
386388
}
387389

388390
if walletsJSON != "" && walletsJSON != "{}" {
389391
workflow.Wallets = &pb.WalletInfo{}
390392
if err := protojson.Unmarshal([]byte(walletsJSON), workflow.Wallets); err != nil {
391-
fmt.Printf("Warning: failed to unmarshal wallets for workflow %s: %v\n", workflow.WorkflowID, err)
393+
s.logger.Error("failed to unmarshal wallets for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
394+
return nil, fmt.Errorf("failed to unmarshal wallets for workflow %s: %w", workflow.WorkflowID, err)
392395
}
393396
}
394397

395398
if err := json.Unmarshal([]byte(configJSON), &workflow.Config); err != nil {
396-
fmt.Printf("Warning: failed to unmarshal config for workflow %s: %v\n", workflow.WorkflowID, err)
399+
s.logger.Error("failed to unmarshal config for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
400+
return nil, fmt.Errorf("failed to unmarshal config for workflow %s: %w", workflow.WorkflowID, err)
397401
}
398402

399403
if err := json.Unmarshal([]byte(monitoringLinksJSON), &workflow.MonitoringLinks); err != nil {
400-
fmt.Printf("Warning: failed to unmarshal monitoring links for workflow %s: %v\n", workflow.WorkflowID, err)
401-
workflow.MonitoringLinks = map[string]string{}
404+
s.logger.Error("failed to unmarshal monitoring links for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
405+
return nil, fmt.Errorf("failed to unmarshal monitoring links for workflow %s: %w", workflow.WorkflowID, err)
402406
}
403407

404408
if loadTestSpecJSON != "" && loadTestSpecJSON != "{}" {
@@ -412,7 +416,7 @@ func (s *SQLiteDB) ListWorkflows(limit, offset int) ([]Workflow, error) {
412416
return nil, fmt.Errorf("error iterating rows: %w", err)
413417
}
414418

415-
return workflows, nil
419+
return workflows, err
416420
}
417421

418422
func (s *SQLiteDB) DeleteWorkflow(workflowID string) error {
@@ -540,7 +544,7 @@ func (s *SQLiteDB) UpdateWorkflowTemplate(templateID string, template *WorkflowT
540544
return nil
541545
}
542546

543-
func (s *SQLiteDB) ListWorkflowTemplates(limit, offset int) ([]WorkflowTemplate, error) {
547+
func (s *SQLiteDB) ListWorkflowTemplates(limit, offset int) (templates []WorkflowTemplate, err error) {
544548
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
545549
defer cancel()
546550

@@ -554,9 +558,12 @@ func (s *SQLiteDB) ListWorkflowTemplates(limit, offset int) ([]WorkflowTemplate,
554558
if err != nil {
555559
return nil, fmt.Errorf("failed to list workflow templates: %w", err)
556560
}
557-
defer rows.Close()
561+
defer func() {
562+
if closeErr := rows.Close(); closeErr != nil {
563+
s.logger.Error("failed to close rows", zap.Error(closeErr))
564+
}
565+
}()
558566

559-
var templates []WorkflowTemplate
560567
for rows.Next() {
561568
var template WorkflowTemplate
562569
var configJSON string
@@ -576,7 +583,8 @@ func (s *SQLiteDB) ListWorkflowTemplates(limit, offset int) ([]WorkflowTemplate,
576583
}
577584

578585
if err := json.Unmarshal([]byte(configJSON), &template.Config); err != nil {
579-
fmt.Printf("Warning: failed to unmarshal config for template %s: %v\n", template.TemplateID, err)
586+
s.logger.Error("failed to unmarshal config for template", zap.String("template_id", template.TemplateID), zap.Error(err))
587+
return nil, fmt.Errorf("failed to unmarshal config for template %s: %w", template.TemplateID, err)
580588
}
581589

582590
templates = append(templates, template)
@@ -586,7 +594,7 @@ func (s *SQLiteDB) ListWorkflowTemplates(limit, offset int) ([]WorkflowTemplate,
586594
return nil, fmt.Errorf("error iterating rows: %w", err)
587595
}
588596

589-
return templates, nil
597+
return templates, err
590598
}
591599

592600
func (s *SQLiteDB) DeleteWorkflowTemplate(templateID string) error {
@@ -610,7 +618,7 @@ func (s *SQLiteDB) DeleteWorkflowTemplate(templateID string) error {
610618
}
611619

612620
// Template workflow tracking implementation
613-
func (s *SQLiteDB) ListTemplateWorkflows(templateID string, limit, offset int) ([]Workflow, error) {
621+
func (s *SQLiteDB) ListTemplateWorkflows(templateID string, limit, offset int) (workflows []Workflow, err error) {
614622
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
615623
defer cancel()
616624

@@ -626,9 +634,12 @@ func (s *SQLiteDB) ListTemplateWorkflows(templateID string, limit, offset int) (
626634
if err != nil {
627635
return nil, fmt.Errorf("failed to list template workflows: %w", err)
628636
}
629-
defer rows.Close()
637+
defer func() {
638+
if closeErr := rows.Close(); closeErr != nil {
639+
s.logger.Error("failed to close rows", zap.Error(closeErr))
640+
}
641+
}()
630642

631-
var workflows []Workflow
632643
for rows.Next() {
633644
var workflow Workflow
634645
var nodesJSON, validatorsJSON, loadBalancersJSON, walletsJSON, configJSON, monitoringLinksJSON, loadTestSpecJSON string
@@ -655,34 +666,36 @@ func (s *SQLiteDB) ListTemplateWorkflows(templateID string, limit, offset int) (
655666
}
656667

657668
if err := json.Unmarshal([]byte(nodesJSON), &workflow.Nodes); err != nil {
658-
fmt.Printf("Warning: failed to unmarshal nodes for workflow %s: %v\n", workflow.WorkflowID, err)
659-
workflow.Nodes = make([]*pb.Node, 0)
669+
s.logger.Error("failed to unmarshal nodes for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
670+
return nil, fmt.Errorf("failed to unmarshal nodes for workflow %s: %w", workflow.WorkflowID, err)
660671
}
661672

662673
if err := json.Unmarshal([]byte(validatorsJSON), &workflow.Validators); err != nil {
663-
fmt.Printf("Warning: failed to unmarshal validators for workflow %s: %v\n", workflow.WorkflowID, err)
664-
workflow.Validators = make([]*pb.Node, 0)
674+
s.logger.Error("failed to unmarshal validators for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
675+
return nil, fmt.Errorf("failed to unmarshal validators for workflow %s: %w", workflow.WorkflowID, err)
665676
}
666677

667678
if err := json.Unmarshal([]byte(loadBalancersJSON), &workflow.LoadBalancers); err != nil {
668-
fmt.Printf("Warning: failed to unmarshal loadbalancers for workflow %s: %v\n", workflow.WorkflowID, err)
669-
workflow.LoadBalancers = make([]*pb.Node, 0)
679+
s.logger.Error("failed to unmarshal loadbalancers for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
680+
return nil, fmt.Errorf("failed to unmarshal loadbalancers for workflow %s: %w", workflow.WorkflowID, err)
670681
}
671682

672683
if walletsJSON != "" && walletsJSON != "{}" {
673684
workflow.Wallets = &pb.WalletInfo{}
674685
if err := protojson.Unmarshal([]byte(walletsJSON), workflow.Wallets); err != nil {
675-
fmt.Printf("Warning: failed to unmarshal wallets for workflow %s: %v\n", workflow.WorkflowID, err)
686+
s.logger.Error("failed to unmarshal wallets for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
687+
return nil, fmt.Errorf("failed to unmarshal wallets for workflow %s: %w", workflow.WorkflowID, err)
676688
}
677689
}
678690

679691
if err := json.Unmarshal([]byte(configJSON), &workflow.Config); err != nil {
680-
fmt.Printf("Warning: failed to unmarshal config for workflow %s: %v\n", workflow.WorkflowID, err)
692+
s.logger.Error("failed to unmarshal config for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
693+
return nil, fmt.Errorf("failed to unmarshal config for workflow %s: %w", workflow.WorkflowID, err)
681694
}
682695

683696
if err := json.Unmarshal([]byte(monitoringLinksJSON), &workflow.MonitoringLinks); err != nil {
684-
fmt.Printf("Warning: failed to unmarshal monitoring links for workflow %s: %v\n", workflow.WorkflowID, err)
685-
workflow.MonitoringLinks = map[string]string{}
697+
s.logger.Error("failed to unmarshal monitoring links for workflow", zap.String("workflow_id", workflow.WorkflowID), zap.Error(err))
698+
return nil, fmt.Errorf("failed to unmarshal monitoring links for workflow %s: %w", workflow.WorkflowID, err)
686699
}
687700

688701
if loadTestSpecJSON != "" && loadTestSpecJSON != "{}" {
@@ -696,5 +709,5 @@ func (s *SQLiteDB) ListTemplateWorkflows(templateID string, limit, offset int) (
696709
return nil, fmt.Errorf("error iterating rows: %w", err)
697710
}
698711

699-
return workflows, nil
712+
return workflows, err
700713
}

server/db/sqlite_test.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ import (
1111
"github.com/stretchr/testify/assert"
1212
"github.com/stretchr/testify/require"
1313
"go.temporal.io/api/enums/v1"
14+
"go.uber.org/zap"
1415
)
1516

1617
func TestSQLiteDB(t *testing.T) {
1718
dbPath := "/tmp/test_ironbird.db"
1819
defer os.Remove(dbPath)
1920

20-
db, err := NewSQLiteDB(dbPath)
21+
logger, _ := zap.NewDevelopment()
22+
db, err := NewSQLiteDB(dbPath, logger)
2123
require.NoError(t, err)
2224
defer db.Close()
2325

@@ -89,7 +91,8 @@ func TestSQLiteDB_Interface(t *testing.T) {
8991
dbPath := "/tmp/test_interface.db"
9092
defer os.Remove(dbPath)
9193

92-
db, err := NewSQLiteDB(dbPath)
94+
logger, _ := zap.NewDevelopment()
95+
db, err := NewSQLiteDB(dbPath, logger)
9396
require.NoError(t, err)
9497
defer db.Close()
9598

0 commit comments

Comments
 (0)