Fixed database migration, imporved logging, imporved hashing function,
introduced connection pooling instead of single conncetion.
This commit is contained in:
35
main.go
35
main.go
@@ -8,23 +8,36 @@ import (
|
||||
"github.com/ferdzo/ferurl/utils"
|
||||
"github.com/go-chi/chi/v5"
|
||||
"github.com/go-chi/chi/v5/middleware"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("Welcome to ferurl, a simple URL shortener!")
|
||||
var log = logrus.New()
|
||||
|
||||
redisConfig := utils.LoadRedisConfig()
|
||||
dbConfig := utils.LoadDbConfig()
|
||||
func main() {
|
||||
log.Info("Starting ferurl URL shortener service")
|
||||
|
||||
redisConfig, err := utils.LoadRedisConfig()
|
||||
if err != nil {
|
||||
log.WithError(err).Fatal("Failed to load Redis configuration")
|
||||
return
|
||||
}
|
||||
|
||||
dbConfig, err := utils.LoadDbConfig()
|
||||
if err != nil {
|
||||
log.WithError(err).Fatal("Failed to load database configuration")
|
||||
return
|
||||
}
|
||||
|
||||
s, err := shortner.NewService(redisConfig, dbConfig)
|
||||
if err != nil {
|
||||
fmt.Println("Error creating service:", err)
|
||||
log.WithError(err).Fatal("Failed to initialize service")
|
||||
return
|
||||
}
|
||||
|
||||
baseUrl := utils.GetEnv("BASE_URL", "https://url.ferdzo.xyz")
|
||||
h, err := shortner.NewHandler(s, baseUrl)
|
||||
if err != nil {
|
||||
fmt.Println("Error creating handler:", err)
|
||||
log.WithError(err).Fatal("Failed to initialize handler")
|
||||
return
|
||||
}
|
||||
|
||||
@@ -34,15 +47,21 @@ func main() {
|
||||
func initServer(h shortner.Handler) {
|
||||
r := chi.NewRouter()
|
||||
r.Use(middleware.Logger)
|
||||
|
||||
r.Get("/", func(w http.ResponseWriter, r *http.Request) {
|
||||
http.ServeFile(w, r, "./web/index.html")
|
||||
})
|
||||
|
||||
r.Get("/health", func(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprint(w, "Welcome to ferurl!")
|
||||
})
|
||||
fmt.Println("Server started on port 3000")
|
||||
|
||||
r.Post("/create", h.CreateShortURL)
|
||||
r.Get("/{key}", h.GetUrl)
|
||||
|
||||
http.ListenAndServe(":3000", r)
|
||||
port := utils.GetEnv("PORT", "3000")
|
||||
log.Info("Starting server on port: " + port)
|
||||
if err := http.ListenAndServe(":"+port, r); err != nil {
|
||||
log.WithError(err).Fatal("Server failed to start")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user