github.com/gudimz/urlShortener@v0.0.0-20230129195305-c8ee33059a67/cmd/api/main.go (about) 1 package main 2 3 import ( 4 "context" 5 "fmt" 6 "github.com/gudimz/urlShortener/internal/config" 7 "github.com/gudimz/urlShortener/internal/db/postgres" 8 "github.com/gudimz/urlShortener/internal/server" 9 "github.com/gudimz/urlShortener/internal/shorten" 10 shorten2 "github.com/gudimz/urlShortener/internal/storage/shorten" 11 "github.com/gudimz/urlShortener/pkg/logging" 12 "net/http" 13 ) 14 15 func main() { 16 17 var ( 18 logger = logging.GetLogger() 19 cfg = config.GetConfig() 20 ) 21 22 logger.Infoln("Trying to connect to db...") 23 dbPool, err := postgres.NewClient(context.Background(), cfg.Postgres) 24 if err != nil { 25 logger.Fatalln(err) 26 } 27 defer dbPool.Close() 28 29 var ( 30 storage = shorten2.NewStorage(dbPool, logger) 31 shortener = shorten.NewService(storage) 32 srv = server.NewServer(shortener, logger) 33 ) 34 35 run(srv, cfg) 36 } 37 38 func run(srv *server.Server, cfg *config.Config) { 39 var ( 40 logger = logging.GetLogger() 41 ) 42 logger.Infoln(fmt.Sprintf("Shorten listening port :%s", cfg.Server.Port)) 43 err := http.ListenAndServe(fmt.Sprintf(":%s", cfg.Server.Port), srv) 44 if err != nil { 45 logger.Fatalf("error running server: %v", err) 46 } 47 }