mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## What changed? Added Chasm RPC handler foundation and interceptor. Added test as use case demo. ## Why? The Chasm RPC handler will be used as the abstraction layer for future work. A grpc interceptor was added to intercept requests to process boilerplate code so the handlers don't have to regurgitate it. Please look at the added test as it demonstrates how the RPC handler is registered and a request gets processed. ## How did you test it? - [X] built - [X] run locally and tested manually - [X] covered by existing tests - [X] added new unit test(s) - [ ] added new functional test(s) ## Potential risks There is a [future ticket](https://temporalio.atlassian.net/browse/ACT-69) to refactor all history RPC calls to start using the interceptor as to avoid boilerplate code. This does need a deeper discussion with the team and we also need to figure out how to identify the incoming RPC request so we can extract namespace etc. properly. --------- Co-authored-by: Roey Berman <[email protected]>
111 lines
3.7 KiB
Go
111 lines
3.7 KiB
Go
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
|
// plugins:
|
|
// - protoc-gen-go-grpc
|
|
// - protoc
|
|
// source: temporal/server/chasm/lib/tests/proto/v1/service.proto
|
|
|
|
package testspb
|
|
|
|
import (
|
|
context "context"
|
|
|
|
grpc "google.golang.org/grpc"
|
|
codes "google.golang.org/grpc/codes"
|
|
status "google.golang.org/grpc/status"
|
|
)
|
|
|
|
// This is a compile-time assertion to ensure that this generated file
|
|
// is compatible with the grpc package it is being compiled against.
|
|
// Requires gRPC-Go v1.32.0 or later.
|
|
const _ = grpc.SupportPackageIsVersion7
|
|
|
|
const (
|
|
TestService_Test_FullMethodName = "/temporal.server.chasm.lib.tests.proto.v1.TestService/Test"
|
|
)
|
|
|
|
// TestServiceClient is the client API for TestService service.
|
|
//
|
|
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
|
type TestServiceClient interface {
|
|
Test(ctx context.Context, in *TestRequest, opts ...grpc.CallOption) (*TestResponse, error)
|
|
}
|
|
|
|
type testServiceClient struct {
|
|
cc grpc.ClientConnInterface
|
|
}
|
|
|
|
func NewTestServiceClient(cc grpc.ClientConnInterface) TestServiceClient {
|
|
return &testServiceClient{cc}
|
|
}
|
|
|
|
func (c *testServiceClient) Test(ctx context.Context, in *TestRequest, opts ...grpc.CallOption) (*TestResponse, error) {
|
|
out := new(TestResponse)
|
|
err := c.cc.Invoke(ctx, TestService_Test_FullMethodName, in, out, opts...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return out, nil
|
|
}
|
|
|
|
// TestServiceServer is the server API for TestService service.
|
|
// All implementations must embed UnimplementedTestServiceServer
|
|
// for forward compatibility
|
|
type TestServiceServer interface {
|
|
Test(context.Context, *TestRequest) (*TestResponse, error)
|
|
mustEmbedUnimplementedTestServiceServer()
|
|
}
|
|
|
|
// UnimplementedTestServiceServer must be embedded to have forward compatible implementations.
|
|
type UnimplementedTestServiceServer struct {
|
|
}
|
|
|
|
func (UnimplementedTestServiceServer) Test(context.Context, *TestRequest) (*TestResponse, error) {
|
|
return nil, status.Errorf(codes.Unimplemented, "method Test not implemented")
|
|
}
|
|
func (UnimplementedTestServiceServer) mustEmbedUnimplementedTestServiceServer() {}
|
|
|
|
// UnsafeTestServiceServer may be embedded to opt out of forward compatibility for this service.
|
|
// Use of this interface is not recommended, as added methods to TestServiceServer will
|
|
// result in compilation errors.
|
|
type UnsafeTestServiceServer interface {
|
|
mustEmbedUnimplementedTestServiceServer()
|
|
}
|
|
|
|
func RegisterTestServiceServer(s grpc.ServiceRegistrar, srv TestServiceServer) {
|
|
s.RegisterService(&TestService_ServiceDesc, srv)
|
|
}
|
|
|
|
func _TestService_Test_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
|
in := new(TestRequest)
|
|
if err := dec(in); err != nil {
|
|
return nil, err
|
|
}
|
|
if interceptor == nil {
|
|
return srv.(TestServiceServer).Test(ctx, in)
|
|
}
|
|
info := &grpc.UnaryServerInfo{
|
|
Server: srv,
|
|
FullMethod: TestService_Test_FullMethodName,
|
|
}
|
|
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
|
return srv.(TestServiceServer).Test(ctx, req.(*TestRequest))
|
|
}
|
|
return interceptor(ctx, in, info, handler)
|
|
}
|
|
|
|
// TestService_ServiceDesc is the grpc.ServiceDesc for TestService service.
|
|
// It's only intended for direct use with grpc.RegisterService,
|
|
// and not to be introspected or modified (even as a copy)
|
|
var TestService_ServiceDesc = grpc.ServiceDesc{
|
|
ServiceName: "temporal.server.chasm.lib.tests.proto.v1.TestService",
|
|
HandlerType: (*TestServiceServer)(nil),
|
|
Methods: []grpc.MethodDesc{
|
|
{
|
|
MethodName: "Test",
|
|
Handler: _TestService_Test_Handler,
|
|
},
|
|
},
|
|
Streams: []grpc.StreamDesc{},
|
|
Metadata: "temporal/server/chasm/lib/tests/proto/v1/service.proto",
|
|
}
|