feat(api): Add compatibility layer for API v1
This commit is contained in:
1 parent
82f252f32f
commit
ad1a9364b8
6 files changed
+8624
-10
No files matched your search
@@ -1,17 +1,21 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
|
||||
_ "modernc.org/sqlite"
|
||||
|
||||
"prayertimes/internal/api"
|
||||
"prayertimes/internal/net"
|
||||
"prayertimes/pkg/citydb"
|
||||
"prayertimes/pkg/diyanetapi"
|
||||
"prayertimes/pkg/diyanetcalc"
|
||||
"prayertimes/pkg/diyanetcitydb"
|
||||
"prayertimes/pkg/diyanetprovider"
|
||||
)
|
||||
|
||||
@@ -28,19 +32,23 @@ func run() error {
|
||||
return fmt.Errorf("DB_PATH is not set")
|
||||
}
|
||||
|
||||
locationProvider, err := citydb.Open(dbPath)
|
||||
conn, err := newDB(dbPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to open city database: %w", err)
|
||||
return fmt.Errorf("failed to initialize database connection: %w", err)
|
||||
}
|
||||
defer locationProvider.Close()
|
||||
defer conn.Close()
|
||||
|
||||
locationProvider := citydb.NewWithConn(conn)
|
||||
legacyLocationProvider := diyanetcitydb.New(conn)
|
||||
|
||||
diyanetAPIProvider := diyanetapi.New(net.ReqClient)
|
||||
diyanetCalcProvider := diyanetcalc.New()
|
||||
prayerProvider := diyanetprovider.New(diyanetAPIProvider, diyanetCalcProvider)
|
||||
|
||||
services := api.Services{
|
||||
PrayerProvider: prayerProvider,
|
||||
LocationProvider: locationProvider,
|
||||
PrayerProvider: prayerProvider,
|
||||
LocationProvider: locationProvider,
|
||||
LegacyLocationProvider: legacyLocationProvider,
|
||||
}
|
||||
|
||||
app := api.New(services)
|
||||
@@ -58,3 +66,17 @@ func getDefaultEnv(name string, defaultValue string) string {
|
||||
}
|
||||
return v
|
||||
}
|
||||
|
||||
func newDB(path string) (*sql.DB, error) {
|
||||
conn, err := sql.Open("sqlite", path)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to open database connection: %w", err)
|
||||
}
|
||||
|
||||
if err := conn.Ping(); err != nil {
|
||||
_ = conn.Close()
|
||||
return nil, fmt.Errorf("failed to connect to database: %w", err)
|
||||
}
|
||||
|
||||
return conn, nil
|
||||
}
|
||||
Reference in new issue
Block a user