package remote import ( "context" log "github.com/sirupsen/logrus" "task-processor/internal/shared" pb "task-processor/proto/taskProcessor" "time" ) func (n *Network) SendResult(ctx context.Context, client pb.TaskProcessorClient, tasksDone []shared.TaskResult) { sendCtx, cancel := context.WithTimeout(ctx, time.Second*60) defer cancel() stream, err := client.SendResult(sendCtx) if err != nil { log.Fatalf("Error calling PostMerch: %v", err) } merchResponses := make([]pb.Result, len(tasksDone)) for i, task := range tasksDone { merchResponses[i] = pb.Result{ MerchUuid: task.MerchUuid, OriginName: task.Origin, Price: task.Price, } } for i := range merchResponses { response := &merchResponses[i] if err = stream.Send(response); err != nil { log.Fatalf("Error sending request: %v", err) } } //if err = stream.CloseSend(); err != nil { // log.Fatalf("Error closing stream: %v", err) //} _, err = stream.CloseAndRecv() if err != nil { log.Fatalf("Error receiving response: %v", err) } }