Refactor gRPC adapter to use connection pool and improve error handling in product retrieval
This commit is contained in:
		@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user