Skip to content

Commit cfe1afa

Browse files
authored
Merge pull request #1 from Jetlum/wals-without-mock
Implement database connection and error handling and also add database migrations for Event and UserPreference models
2 parents 06beba2 + f4212d0 commit cfe1afa

File tree

1 file changed

+14
-45
lines changed

1 file changed

+14
-45
lines changed

database/database.go

Lines changed: 14 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,27 @@
11
package database
22

33
import (
4-
"errors"
5-
"io"
6-
"log"
7-
"os"
8-
"sync"
4+
"fmt"
95

6+
"github.com/Jetlum/WalletAlertService/models"
7+
"gorm.io/driver/postgres"
108
"gorm.io/gorm"
119
)
1210

13-
var (
14-
DB *gorm.DB
15-
IsMockMode bool
16-
ErrMockMode = errors.New("database is in mock mode")
17-
logger = log.New(os.Stdout, "", log.LstdFlags)
18-
mu sync.Mutex
19-
)
11+
var DB *gorm.DB
2012

21-
func init() {
22-
// Setup mock DB in test mode
23-
if os.Getenv("GO_ENV") == "test" {
24-
SetupMockDB()
25-
logger.SetOutput(io.Discard) // Use SetOutput instead of creating new logger
13+
func InitDB(dsn string) error {
14+
var err error
15+
DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{})
16+
if err != nil {
17+
return fmt.Errorf("failed to connect to database: %w", err)
2618
}
27-
}
28-
29-
func InitDB(dsn string) (*gorm.DB, error) {
30-
IsMockMode = true
31-
mu.Lock()
32-
defer mu.Unlock()
3319

34-
// Skip DB initialization in mock mode
35-
if IsMockMode {
36-
return nil, nil
20+
// Run migrations
21+
err = DB.AutoMigrate(&models.Event{}, &models.UserPreference{})
22+
if err != nil {
23+
return fmt.Errorf("failed to run migrations: %w", err)
3724
}
3825

39-
return nil, nil
40-
}
41-
42-
func SetupMockDB() {
43-
mu.Lock()
44-
defer mu.Unlock()
45-
46-
IsMockMode = true
47-
DB = nil
48-
logger = log.New(io.Discard, "", 0)
49-
}
50-
51-
func ResetMockDB() {
52-
mu.Lock()
53-
defer mu.Unlock()
54-
55-
IsMockMode = false
56-
DB = nil
57-
logger = log.New(os.Stdout, "", log.LstdFlags)
26+
return nil
5827
}

0 commit comments

Comments
 (0)