24 lines
670 B
Go
24 lines
670 B
Go
package billing
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
// NewStore создаёт Store из переменной окружения BILLING_DSN.
|
|
// Если DSN пустой — возвращает NoopStore (статистика отключена, сервер работает нормально).
|
|
func NewStore() Store {
|
|
dsn := os.Getenv("BILLING_DSN")
|
|
if dsn == "" {
|
|
log.Printf("billing: BILLING_DSN not set, statistics disabled")
|
|
return NoopStore{}
|
|
}
|
|
store, err := NewPostgresStore(context.Background(), dsn)
|
|
if err != nil {
|
|
log.Printf("billing: failed to connect to PostgreSQL: %v — statistics disabled", err)
|
|
return NoopStore{}
|
|
}
|
|
return store
|
|
}
|