feat: Rewrite to use the Diyanet API
This commit is contained in:
1 parent
43d4560fbb
commit
73316d4e62
17 files changed
+637
-9198
No files matched your search
@@ -1,28 +1,22 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
|
||||
"prayertimes/internal/api"
|
||||
"prayertimes/internal/database"
|
||||
"prayertimes/internal/net"
|
||||
"prayertimes/pkg/dbtimesprovider"
|
||||
"prayertimes/pkg/diyanet"
|
||||
"prayertimes/pkg/diyanetapi"
|
||||
)
|
||||
|
||||
func main() {
|
||||
port := getDefaultEnv("PORT", "8000")
|
||||
|
||||
services, shutdown, err := newServices()
|
||||
services, err := newServices()
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("failed to init services")
|
||||
}
|
||||
defer shutdown()
|
||||
app := api.New(services)
|
||||
|
||||
err = app.Listen(":" + port)
|
||||
@@ -31,25 +25,12 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func newServices() (api.Services, func(), error) {
|
||||
func newServices() (api.Services, error) {
|
||||
diyanetAPIProvider := diyanetapi.New(net.ReqClient)
|
||||
diyanetProvider := diyanet.New(net.GetParsed)
|
||||
|
||||
db, err := database.NewSqliteDB(getDefaultEnv("DATABASE_URL", "app.sqlite3"))
|
||||
if err != nil {
|
||||
return api.Services{}, nil, fmt.Errorf("failed to init db: %w", err)
|
||||
}
|
||||
|
||||
if err := dbtimesprovider.Migrate(db.Db.(*sql.DB)); err != nil {
|
||||
return api.Services{}, nil, fmt.Errorf("failed to migrate database: %w", err)
|
||||
}
|
||||
|
||||
return api.Services{
|
||||
TimesProvider: dbtimesprovider.New(db, diyanetProvider),
|
||||
LocationTimesProvider: diyanetAPIProvider,
|
||||
}, func() {
|
||||
defer db.Db.(*sql.DB).Close()
|
||||
}, nil
|
||||
Provider: diyanetAPIProvider,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func getDefaultEnv(name string, defaultValue string) string {
|
||||
|
||||
Reference in new issue
Block a user