45 lines
982 B
Go
45 lines
982 B
Go
|
|
package task
|
||
|
|
|
||
|
|
import (
|
||
|
|
log "github.com/sirupsen/logrus"
|
||
|
|
"google.golang.org/protobuf/types/known/emptypb"
|
||
|
|
"merch-api/internal/common"
|
||
|
|
tt "merch-api/pkg/taskTransport/v1"
|
||
|
|
)
|
||
|
|
|
||
|
|
type service struct {
|
||
|
|
tt.UnimplementedTaskProcessorServer
|
||
|
|
merchProvider common.MerchProvider
|
||
|
|
}
|
||
|
|
|
||
|
|
func newService(mp common.MerchProvider) *service {
|
||
|
|
return &service{
|
||
|
|
merchProvider: mp,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (s *service) RequestTasks(_ *emptypb.Empty, stream tt.TaskProcessor_RequestTasksServer) error {
|
||
|
|
tasks, err := s.merchProvider.GetTasks(stream.Context())
|
||
|
|
if err != nil {
|
||
|
|
log.WithError(err).Errorf("%v Failed to get tasks", pkgLogHeader)
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
|
||
|
|
for _, task := range tasks {
|
||
|
|
if err = stream.Send(&tt.Task{
|
||
|
|
MerchUuid: task.MerchUuid,
|
||
|
|
Origins: task.Origins,
|
||
|
|
}); err != nil {
|
||
|
|
log.WithError(err).Errorf("%v Failed to send tasks", pkgLogHeader)
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func (s *service) SendResults(stream tt.TaskProcessor_SendResultsServer) error {
|
||
|
|
//TODO
|
||
|
|
return nil
|
||
|
|
}
|