NewData .
(c *config.DatabaseConfig, tp trace.TracerProvider, logger log.Logger)
| 80 | |
| 81 | // NewData . |
| 82 | func NewData(c *config.DatabaseConfig, tp trace.TracerProvider, logger log.Logger) (*Data, func(), error) { |
| 83 | if logger == nil { |
| 84 | logger = log.NewStdLogger(io.Discard) |
| 85 | } |
| 86 | |
| 87 | log := log.NewHelper(logger) |
| 88 | db, sqlDB, err := initSQLDatabase(c, tp, log) |
| 89 | if err != nil { |
| 90 | log.Errorf("error initialing the DB : %v", err) |
| 91 | return nil, nil, fmt.Errorf("failed to initialized db: %w", err) |
| 92 | } |
| 93 | |
| 94 | cleanup := func() { |
| 95 | log.Info("closing the data resources") |
| 96 | if err := db.Close(); err != nil { |
| 97 | log.Error(err) |
| 98 | } |
| 99 | } |
| 100 | |
| 101 | return &Data{DB: db, SQLDB: sqlDB}, cleanup, nil |
| 102 | } |
| 103 | |
| 104 | func initSQLDatabase(c *config.DatabaseConfig, tp trace.TracerProvider, log *log.Helper) (*ent.Client, *sql.DB, error) { |
| 105 | if c.Driver != "pgx" { |
no test coverage detected