/
simplerpc.go
44 lines (36 loc) · 1.05 KB
/
simplerpc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package grpc
import (
"context"
"github.com/hanapedia/hexagon/internal/service-unit/application/ports"
pb "github.com/hanapedia/hexagon/internal/service-unit/infrastructure/adapters/generated/grpc"
"github.com/hanapedia/hexagon/pkg/operator/logger"
"github.com/hanapedia/hexagon/pkg/service-unit/utils"
"google.golang.org/grpc"
)
type simpleRpcAdapter struct {
route string
client *grpc.ClientConn
payloadSize int64
ports.SecondaryPortBase
}
func (sra *simpleRpcAdapter) Call(ctx context.Context) ports.SecondaryPortCallResult {
client := pb.NewGrpcClient(sra.client)
payload := utils.GenerateRandomString(sra.payloadSize)
request := pb.StreamRequest{
Route: sra.route,
Payload: payload,
}
logger.Logger.Debugf("Sending request with %v bytes to %s", sra.payloadSize, sra.GetDestId())
// Regular RPC
response, err := client.SimpleRPC(ctx, &request)
if err != nil {
return ports.SecondaryPortCallResult{
Payload: nil,
Error: err,
}
}
return ports.SecondaryPortCallResult{
Payload: &response.Payload,
Error: nil,
}
}