2025-12-20 16:05:56 +03:00
|
|
|
package remote
|
2025-10-02 20:35:53 +03:00
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
log "github.com/sirupsen/logrus"
|
2025-10-03 19:17:01 +03:00
|
|
|
"task-processor/internal/shared"
|
|
|
|
|
pb "task-processor/proto/taskProcessor"
|
2026-03-01 01:01:06 +03:00
|
|
|
"time"
|
2025-10-02 20:35:53 +03:00
|
|
|
)
|
|
|
|
|
|
2026-03-01 01:01:06 +03:00
|
|
|
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)
|
2025-10-02 20:35:53 +03:00
|
|
|
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)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-01 01:01:06 +03:00
|
|
|
//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)
|
2025-10-02 20:35:53 +03:00
|
|
|
}
|
|
|
|
|
}
|