Refactor gRPC adapter to use connection pool and improve error handling in product retrieval

This commit is contained in:
2025-05-27 17:50:20 +03:00
parent b083cccc09
commit b48421e653
8 changed files with 44 additions and 40 deletions

View File

@@ -3,7 +3,7 @@ package main
import (
"context"
"fmt"
"github.com/jackc/pgx/v5"
"github.com/jackc/pgx/v5/pgxpool"
"github.com/joho/godotenv"
"google.golang.org/grpc"
"net"
@@ -31,7 +31,7 @@ func logMessage(level string, format string, a ...interface{}) {
}
}
func createGrpcServer() {
func createGrpcServer(pool *pgxpool.Pool) {
lis, err := net.Listen("tcp", ":8080")
if err != nil {
@@ -40,7 +40,7 @@ func createGrpcServer() {
}
grpcServer := grpc.NewServer()
repo, err := marketplace.RegisterAdapterGRPC(grpcServer)
repo, err := marketplace.RegisterAdapterGRPC(grpcServer, pool)
if err != nil {
fmt.Printf("failed to register gRPC server: %v\n", err)
return
@@ -82,22 +82,15 @@ func main() {
logMessage("info", "Redis client initialized successfully. 🟥")
// Initializing pgx connection
conn, err := pgx.Connect(ctx, os.Getenv("POSTGRES_URL"))
dbpool, err := pgxpool.New(ctx, os.Getenv("POSTGRES_URL"))
if err != nil {
logMessage("error", "Failed to connect to PostgreSQL: %v", err)
return
}
defer conn.Close(ctx)
defer dbpool.Close()
logMessage("info", "Connected to PostgreSQL successfully. 🐘")
createGrpcServer()
// ------------------ shitting
//mpRepo := marketplace.NewDBRepository(conn)
//
//productsRepo := products.NewAPIRepository(
// mpRepo)
//_, err = productsRepo.GetAllProducts(ctx, 262)
//if err != nil {
// return
createGrpcServer(dbpool)
}
//for _, item := range items {