46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"log/slog"
|
|
"os"
|
|
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/config"
|
|
customlogger "github.com/SamuelTariku/FortuneBet-Backend/internal/logger"
|
|
"github.com/SamuelTariku/FortuneBet-Backend/internal/repository"
|
|
notificationservice "github.com/SamuelTariku/FortuneBet-Backend/internal/services/notfication"
|
|
httpserver "github.com/SamuelTariku/FortuneBet-Backend/internal/web_server"
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
func main() {
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
slog.Error(err.Error())
|
|
os.Exit(1)
|
|
}
|
|
cfg, err := config.NewConfig()
|
|
if err != nil {
|
|
slog.Error(err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
db, _, err := repository.OpenDB(cfg.DbUrl)
|
|
if err != nil {
|
|
fmt.Print(err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
logger := customlogger.NewLogger("development", slog.LevelDebug, "1.0")
|
|
|
|
store := repository.NewStore(db)
|
|
notificationRepo := repository.NewNotificationRepository(store)
|
|
notificationSvc := notificationservice.New(notificationRepo, logger)
|
|
|
|
app := httpserver.NewApp(cfg.Port, logger, notificationSvc)
|
|
if err := app.Run(); err != nil {
|
|
log.Fatal("Failed to start server with error: ", err)
|
|
}
|
|
}
|