Skip to content

Commit c896406

Browse files
committed
feat(db): create interface for valid tables
1 parent 1683881 commit c896406

File tree

3 files changed

+24
-35
lines changed

3 files changed

+24
-35
lines changed

informative-indexer/db/db.go

+1-10
Original file line numberDiff line numberDiff line change
@@ -140,16 +140,7 @@ func GetRowsToPruneByBlockHeight(ctx context.Context, dbClient Queryable, table
140140
}
141141

142142
var query string
143-
var t interface{}
144-
145-
if table == "transaction_events" {
146-
t = TransactionEvent{}
147-
} else if table == "finalize_block_events" {
148-
t = FinalizeBlockEvent{}
149-
} else if table == "move_events" {
150-
t = MoveEvent{}
151-
}
152-
143+
t := ValidTablesMap[table]
153144
columns := getColumns(t)
154145

155146
query = fmt.Sprintf("SELECT %s FROM %s WHERE block_height <= $1", strings.Join(columns, ", "), table)
+16-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
package db
22

3-
var validTableNames = []string{
4-
"transaction_events",
5-
"finalize_block_events",
6-
"move_events",
3+
import "github.com/jackc/pgx/v5"
4+
5+
type ValidTable interface {
6+
Unmarshal(pgx.Rows) (map[string]interface{}, error)
7+
}
8+
9+
var ValidTablesMap = map[string]ValidTable{
10+
"transaction_events": &TransactionEvent{},
11+
"finalize_block_events": &FinalizeBlockEvent{},
12+
"move_events": &MoveEvent{},
713
}
814

915
func isValidTableName(tableName string) bool {
10-
for _, validTable := range validTableNames {
16+
for validTable, _ := range ValidTablesMap {
1117
if tableName == validTable {
1218
return true
1319
}
@@ -16,5 +22,9 @@ func isValidTableName(tableName string) bool {
1622
}
1723

1824
func GetValidTableNames() []string {
19-
return validTableNames
25+
var keys []string
26+
for key := range ValidTablesMap {
27+
keys = append(keys, key)
28+
}
29+
return keys
2030
}

informative-indexer/prunner/prunner.go

+7-19
Original file line numberDiff line numberDiff line change
@@ -127,25 +127,13 @@ func fetchRowsToPrune(ctx context.Context, dbClient db.Queryable, tableName stri
127127

128128
var result []interface{}
129129
for rows.Next() {
130-
var row map[string]interface{}
131-
if tableName == "transaction_events" {
132-
transactionEvent := db.TransactionEvent{}
133-
row, err = transactionEvent.Unmarshal(rows)
134-
if err != nil {
135-
return nil, err
136-
}
137-
} else if tableName == "finalize_block_events" {
138-
blockResult := db.FinalizeBlockEvent{}
139-
row, err = blockResult.Unmarshal(rows)
140-
if err != nil {
141-
return nil, err
142-
}
143-
} else if tableName == "move_events" {
144-
eventResult := db.MoveEvent{}
145-
row, err = eventResult.Unmarshal(rows)
146-
if err != nil {
147-
return nil, err
148-
}
130+
table, ok := db.ValidTablesMap[tableName]
131+
if !ok {
132+
return nil, fmt.Errorf("failed to get table interface from table name %s", tableName)
133+
}
134+
row, err := table.Unmarshal(rows)
135+
if err != nil {
136+
return nil, err
149137
}
150138
result = append(result, row)
151139
}

0 commit comments

Comments
 (0)