Yimaru-BackEnd/cmd/main.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)
}
}