Better syncing
This commit is contained in:
parent
0194c3d4fe
commit
46c24134d5
2 changed files with 17 additions and 8 deletions
10
lib/db.go
10
lib/db.go
|
@ -14,6 +14,7 @@ import (
|
|||
)
|
||||
|
||||
var DBClient *sql.DB
|
||||
var DBConnector *libsql.Connector
|
||||
|
||||
func InitDB() error {
|
||||
dbUrl := os.Getenv("DATABASE_URL")
|
||||
|
@ -29,21 +30,22 @@ func InitDB() error {
|
|||
dbPath = "/data/himbot.db"
|
||||
}
|
||||
|
||||
replica, replicaError := libsql.NewEmbeddedReplicaConnector(
|
||||
connector, connectorError := libsql.NewEmbeddedReplicaConnector(
|
||||
dbPath,
|
||||
dbUrl,
|
||||
libsql.WithAuthToken(dbToken),
|
||||
)
|
||||
|
||||
if replicaError != nil {
|
||||
fmt.Fprintf(os.Stderr, "failed to open db %s: %s", dbUrl, replicaError)
|
||||
if connectorError != nil {
|
||||
fmt.Fprintf(os.Stderr, "failed to open db %s: %s", dbUrl, connectorError)
|
||||
os.Exit(1)
|
||||
}
|
||||
// finalDBUrl := fmt.Sprintf("%s?authToken=%s", dbUrl, dbToken)
|
||||
|
||||
client := sql.OpenDB(replica)
|
||||
client := sql.OpenDB(connector)
|
||||
|
||||
DBClient = client
|
||||
DBConnector = connector
|
||||
|
||||
return runMigrations()
|
||||
}
|
||||
|
|
|
@ -113,17 +113,24 @@ func ProcessMessage(s *discordgo.Session, m *discordgo.MessageCreate) error {
|
|||
|
||||
func GetBalance(discordID, guildID string) (int, error) {
|
||||
var balance int
|
||||
err := DBClient.QueryRow(`
|
||||
|
||||
_, syncError := DBConnector.Sync()
|
||||
|
||||
if syncError != nil {
|
||||
fmt.Println("Error syncing database:", syncError)
|
||||
}
|
||||
|
||||
queryError := DBClient.QueryRow(`
|
||||
SELECT h.balance
|
||||
FROM himbucks h
|
||||
JOIN users u ON h.user_id = u.id
|
||||
WHERE u.discord_id = ? AND h.guild_id = ?`,
|
||||
discordID, guildID).Scan(&balance)
|
||||
if err == sql.ErrNoRows {
|
||||
if queryError == sql.ErrNoRows {
|
||||
return 0, nil
|
||||
}
|
||||
if err != nil {
|
||||
return 0, fmt.Errorf("failed to get balance: %w", err)
|
||||
if queryError != nil {
|
||||
return 0, fmt.Errorf("failed to get balance: %w", queryError)
|
||||
}
|
||||
return balance, nil
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue