basic app
This commit is contained in:
parent
0a6e246a5c
commit
8d6c2b6687
30 changed files with 1469 additions and 0 deletions
7
internal/network/handler.go
Normal file
7
internal/network/handler.go
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
package network
|
||||
|
||||
type Network struct{}
|
||||
|
||||
func NewHandler() *Network {
|
||||
return &Network{}
|
||||
}
|
||||
12
internal/network/interface.go
Normal file
12
internal/network/interface.go
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
package network
|
||||
|
||||
import (
|
||||
"context"
|
||||
"parsing-service/internal/shared"
|
||||
pb "parsing-service/proto/taskProcessor"
|
||||
)
|
||||
|
||||
type Handler interface {
|
||||
RequestTasks(ctx context.Context, client pb.TaskProcessorClient) []shared.TaskResponse
|
||||
SendResult(client pb.TaskProcessorClient, tasksDone []shared.TaskResult)
|
||||
}
|
||||
38
internal/network/recieve.go
Normal file
38
internal/network/recieve.go
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
package network
|
||||
|
||||
import (
|
||||
"context"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"google.golang.org/protobuf/types/known/emptypb"
|
||||
"io"
|
||||
"parsing-service/internal/shared"
|
||||
pb "parsing-service/proto/taskProcessor"
|
||||
)
|
||||
|
||||
func (n *Network) RequestTasks(ctx context.Context, client pb.TaskProcessorClient) []shared.TaskResponse {
|
||||
var tasksList []shared.TaskResponse
|
||||
stream, err := client.RequestTask(ctx, &emptypb.Empty{})
|
||||
if err != nil {
|
||||
log.WithField("err", err).Error("Error calling Request Tasks")
|
||||
return nil
|
||||
}
|
||||
|
||||
for {
|
||||
response, err := stream.Recv()
|
||||
if err == io.EOF {
|
||||
break
|
||||
}
|
||||
if err != nil {
|
||||
log.WithField("err", err).Error("Error receiving response")
|
||||
return nil
|
||||
}
|
||||
|
||||
tasksList = append(tasksList, shared.TaskResponse{
|
||||
MerchUuid: response.MerchUuid,
|
||||
OriginSurugayaLink: response.OriginSurugayaLink,
|
||||
OriginMandarakeLink: response.OriginMandarakeLink,
|
||||
})
|
||||
log.WithField("entry added", response.MerchUuid).Debug("gRPC Receive")
|
||||
}
|
||||
return tasksList
|
||||
}
|
||||
35
internal/network/send.go
Normal file
35
internal/network/send.go
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
package network
|
||||
|
||||
import (
|
||||
"context"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"parsing-service/internal/shared"
|
||||
pb "parsing-service/proto/taskProcessor"
|
||||
)
|
||||
|
||||
func (n *Network) SendResult(client pb.TaskProcessorClient, tasksDone []shared.TaskResult) {
|
||||
stream, err := client.SendResult(context.Background())
|
||||
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)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue