/
get_task.go
47 lines (39 loc) · 1.13 KB
/
get_task.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
45
46
47
package metathings_evaluatord_service
import (
"context"
"github.com/sirupsen/logrus"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
identityd_validator "github.com/nayotta/metathings/pkg/identityd2/validator"
pb "github.com/nayotta/metathings/proto/evaluatord"
)
func (srv *MetathingsEvaluatordService) ValidateGetTask(ctx context.Context, in interface{}) error {
return srv.validator.Validate(
identityd_validator.Providers{
func() task_getter {
req := in.(*pb.GetTaskRequest)
return req
},
},
identityd_validator.Invokers{
ensure_get_task,
ensure_get_task_id,
},
)
}
func (srv *MetathingsEvaluatordService) GetTask(ctx context.Context, req *pb.GetTaskRequest) (*pb.GetTaskResponse, error) {
tsk_id := req.GetTask().GetId().GetValue()
logger := srv.get_logger().WithFields(logrus.Fields{
"id": tsk_id,
})
tsk, err := srv.task_storage.GetTask(ctx, tsk_id)
if err != nil {
logger.WithError(err).Errorf("failed to get task")
return nil, status.Errorf(codes.Internal, err.Error())
}
res := &pb.GetTaskResponse{
Task: copy_task(tsk),
}
logger.Debugf("get task")
return res, nil
}