tariffs/pkg/grpc_clients/clients.go
pasha1coil 9ae3c66703
Some checks failed
Deploy / CreateImage (push) Successful in 1m46s
Deploy / DeployService (push) Failing after 28s
added grpc server to tariffs, client for this srv
2025-08-13 22:57:55 +00:00

49 lines
1.3 KiB
Go

package grpc_clients
import (
"context"
"gitea.pena/PenaSide/tariffs/internal/proto/tariffs"
"go.uber.org/zap"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
)
type Deps struct {
Logger *zap.Logger
TariffServiceHost string
}
type TariffGRPCClient struct {
logger *zap.Logger
tariffServiceHost string
}
func NewTariffGRPCClient(deps Deps) *TariffGRPCClient {
return &TariffGRPCClient{
logger: deps.Logger,
tariffServiceHost: deps.TariffServiceHost,
}
}
func (c *TariffGRPCClient) GetTariff(ctx context.Context, id string) (*tariffs.GetTariffResponse, error) {
connection, err := grpc.Dial(c.tariffServiceHost, grpc.WithTransportCredentials(insecure.NewCredentials()))
if err != nil {
c.logger.Error("failed to connect to TariffService", zap.Error(err), zap.String("tariff_service_host", c.tariffServiceHost))
return nil, err
}
defer func() {
if closeErr := connection.Close(); closeErr != nil {
c.logger.Error("failed to close connection to TariffService", zap.Error(closeErr))
}
}()
client := tariffs.NewTariffServiceClient(connection)
result, err := client.GetTariff(ctx, &tariffs.GetTariffRequest{Id: id})
if err != nil {
c.logger.Error("failed to get tariff", zap.String("id", id), zap.Error(err))
return nil, err
}
return result, nil
}