mirror of https://github.com/dtm-labs/dtm.git
csharpjavadistributed-transactionsdtmgogolangmicroservicenodejsphpdatabasesagaseatatcctransactiontransactionsxapythondistributed
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
834 B
26 lines
834 B
package workflow
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/dtm-labs/dtm/client/dtmcli/dtmimp"
|
|
"github.com/dtm-labs/dtm/client/dtmgrpc"
|
|
"github.com/dtm-labs/dtm/client/dtmgrpc/dtmgimp"
|
|
"github.com/dtm-labs/dtm/client/workflow/wfpb"
|
|
"google.golang.org/grpc/codes"
|
|
"google.golang.org/grpc/status"
|
|
"google.golang.org/protobuf/types/known/emptypb"
|
|
)
|
|
|
|
type workflowServer struct {
|
|
wfpb.UnimplementedWorkflowServer
|
|
}
|
|
|
|
func (s *workflowServer) Execute(ctx context.Context, wd *wfpb.WorkflowData) (*emptypb.Empty, error) {
|
|
if defaultFac.protocol != dtmimp.ProtocolGRPC {
|
|
return nil, status.Errorf(codes.Internal, "workflow server not inited. please call workflow.InitGrpc first")
|
|
}
|
|
tb := dtmgimp.TransBaseFromGrpc(ctx)
|
|
_, err := defaultFac.execute(ctx, tb.Op, tb.Gid, wd.Data)
|
|
return &emptypb.Empty{}, dtmgrpc.DtmError2GrpcError(err)
|
|
}
|
|
|