Files
ferurl/main.go
2025-08-06 21:12:23 +02:00

54 lines
1.1 KiB
Go

package main
import (
"fmt"
"net/http"
shortner "github.com/ferdzo/ferurl/internal/shortener"
"github.com/ferdzo/ferurl/utils"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
)
func main() {
fmt.Println("Welcome to ferurl, a simple URL shortener!")
redisConfig, err := utils.LoadRedisConfig()
if err != nil {
fmt.Println("Error loading Redis config:", err)
return
}
dbConfig, err := utils.LoadDbConfig()
if err != nil {
fmt.Println("Error loading DB config:", err)
return
}
s, err := shortner.NewService(redisConfig, dbConfig)
if err != nil {
fmt.Println("Error creating service:", err)
return
}
h, err := shortner.NewHandler(s)
if err != nil {
fmt.Println("Error creating handler:", err)
return
}
initServer(*h)
}
func initServer(h shortner.Handler) {
r := chi.NewRouter()
r.Use(middleware.Logger)
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.FileServer(http.Dir("web"))
http.ListenAndServe(":3000", r)
}