From 17a99cce619150efa0afb70e1f4703c5a5f7c341 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 2 Feb 2025 21:13:55 +0800 Subject: [PATCH] :sparkles: Third client query toolkit --- pkg/authkit/third_client.go | 38 +++++ pkg/proto/notify.pb.go | 94 +++--------- pkg/proto/notify_grpc.pb.go | 46 ++++-- pkg/proto/realm.pb.go | 230 ++++++------------------------ pkg/proto/realm_grpc.pb.go | 70 ++++++--- pkg/proto/record.pb.go | 50 ++----- pkg/proto/record_grpc.pb.go | 34 +++-- pkg/proto/third_client.pb.go | 161 ++++++++++----------- pkg/proto/third_client.proto | 9 +- pkg/proto/third_client_grpc.pb.go | 34 +++-- 10 files changed, 322 insertions(+), 444 deletions(-) create mode 100644 pkg/authkit/third_client.go diff --git a/pkg/authkit/third_client.go b/pkg/authkit/third_client.go new file mode 100644 index 0000000..3e230e8 --- /dev/null +++ b/pkg/authkit/third_client.go @@ -0,0 +1,38 @@ +package authkit + +import ( + "context" + "fmt" + + "git.solsynth.dev/hypernet/nexus/pkg/nex" + "git.solsynth.dev/hypernet/passport/pkg/authkit/models" + "git.solsynth.dev/hypernet/passport/pkg/proto" + "github.com/samber/lo" +) + +func GetThirdClient(nx *nex.Conn, id uint, secret *string) (*models.ThirdClient, error) { + conn, err := nx.GetClientGrpcConn(nex.ServiceTypeAuth) + if err != nil { + return nil, fmt.Errorf("failed to get auth service client: %v", err) + } + resp, err := proto.NewThirdClientServiceClient(conn). + GetThirdClient(context.Background(), &proto.GetThirdClientRequest{ + ClientId: uint64(id), + Secret: secret, + }) + if err != nil { + return nil, err + } + + return &models.ThirdClient{ + Alias: resp.GetInfo().GetAlias(), + Name: resp.GetInfo().GetName(), + Description: resp.GetInfo().GetDescription(), + IsDraft: resp.GetInfo().GetIsDraft(), + AccountID: lo.TernaryF(resp.GetInfo().AccountId != nil, func() *uint { + return lo.ToPtr(uint(resp.GetInfo().GetAccountId())) + }, func() *uint { + return nil + }), + }, nil +} diff --git a/pkg/proto/notify.pb.go b/pkg/proto/notify.pb.go index 2290e61..e66e6a5 100644 --- a/pkg/proto/notify.pb.go +++ b/pkg/proto/notify.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 +// protoc-gen-go v1.35.1 // protoc v5.28.3 // source: notify.proto @@ -33,11 +33,9 @@ type NotifyInfoPayload struct { func (x *NotifyInfoPayload) Reset() { *x = NotifyInfoPayload{} - if protoimpl.UnsafeEnabled { - mi := &file_notify_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notify_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotifyInfoPayload) String() string { @@ -48,7 +46,7 @@ func (*NotifyInfoPayload) ProtoMessage() {} func (x *NotifyInfoPayload) ProtoReflect() protoreflect.Message { mi := &file_notify_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -88,11 +86,9 @@ type NotifyUserRequest struct { func (x *NotifyUserRequest) Reset() { *x = NotifyUserRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_notify_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notify_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotifyUserRequest) String() string { @@ -103,7 +99,7 @@ func (*NotifyUserRequest) ProtoMessage() {} func (x *NotifyUserRequest) ProtoReflect() protoreflect.Message { mi := &file_notify_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -143,11 +139,9 @@ type NotifyUserBatchRequest struct { func (x *NotifyUserBatchRequest) Reset() { *x = NotifyUserBatchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_notify_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notify_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotifyUserBatchRequest) String() string { @@ -158,7 +152,7 @@ func (*NotifyUserBatchRequest) ProtoMessage() {} func (x *NotifyUserBatchRequest) ProtoReflect() protoreflect.Message { mi := &file_notify_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -197,11 +191,9 @@ type NotifyResponse struct { func (x *NotifyResponse) Reset() { *x = NotifyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_notify_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_notify_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *NotifyResponse) String() string { @@ -212,7 +204,7 @@ func (*NotifyResponse) ProtoMessage() {} func (x *NotifyResponse) ProtoReflect() protoreflect.Message { mi := &file_notify_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -289,7 +281,7 @@ func file_notify_proto_rawDescGZIP() []byte { } var file_notify_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_notify_proto_goTypes = []interface{}{ +var file_notify_proto_goTypes = []any{ (*NotifyInfoPayload)(nil), // 0: proto.NotifyInfoPayload (*NotifyUserRequest)(nil), // 1: proto.NotifyUserRequest (*NotifyUserBatchRequest)(nil), // 2: proto.NotifyUserBatchRequest @@ -316,56 +308,6 @@ func file_notify_proto_init() { if File_notify_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_notify_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotifyInfoPayload); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notify_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotifyUserRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notify_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotifyUserBatchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_notify_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotifyResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/pkg/proto/notify_grpc.pb.go b/pkg/proto/notify_grpc.pb.go index 8f10cd8..7242612 100644 --- a/pkg/proto/notify_grpc.pb.go +++ b/pkg/proto/notify_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 +// - protoc-gen-go-grpc v1.5.1 // - protoc v5.28.3 // source: notify.proto @@ -15,8 +15,14 @@ import ( // 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 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + NotifyService_NotifyUser_FullMethodName = "/proto.NotifyService/NotifyUser" + NotifyService_NotifyUserBatch_FullMethodName = "/proto.NotifyService/NotifyUserBatch" + NotifyService_NotifyAllUser_FullMethodName = "/proto.NotifyService/NotifyAllUser" +) // NotifyServiceClient is the client API for NotifyService service. // @@ -36,8 +42,9 @@ func NewNotifyServiceClient(cc grpc.ClientConnInterface) NotifyServiceClient { } func (c *notifyServiceClient) NotifyUser(ctx context.Context, in *NotifyUserRequest, opts ...grpc.CallOption) (*NotifyResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(NotifyResponse) - err := c.cc.Invoke(ctx, "/proto.NotifyService/NotifyUser", in, out, opts...) + err := c.cc.Invoke(ctx, NotifyService_NotifyUser_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -45,8 +52,9 @@ func (c *notifyServiceClient) NotifyUser(ctx context.Context, in *NotifyUserRequ } func (c *notifyServiceClient) NotifyUserBatch(ctx context.Context, in *NotifyUserBatchRequest, opts ...grpc.CallOption) (*NotifyResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(NotifyResponse) - err := c.cc.Invoke(ctx, "/proto.NotifyService/NotifyUserBatch", in, out, opts...) + err := c.cc.Invoke(ctx, NotifyService_NotifyUserBatch_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -54,8 +62,9 @@ func (c *notifyServiceClient) NotifyUserBatch(ctx context.Context, in *NotifyUse } func (c *notifyServiceClient) NotifyAllUser(ctx context.Context, in *NotifyInfoPayload, opts ...grpc.CallOption) (*NotifyResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(NotifyResponse) - err := c.cc.Invoke(ctx, "/proto.NotifyService/NotifyAllUser", in, out, opts...) + err := c.cc.Invoke(ctx, NotifyService_NotifyAllUser_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -64,7 +73,7 @@ func (c *notifyServiceClient) NotifyAllUser(ctx context.Context, in *NotifyInfoP // NotifyServiceServer is the server API for NotifyService service. // All implementations must embed UnimplementedNotifyServiceServer -// for forward compatibility +// for forward compatibility. type NotifyServiceServer interface { NotifyUser(context.Context, *NotifyUserRequest) (*NotifyResponse, error) NotifyUserBatch(context.Context, *NotifyUserBatchRequest) (*NotifyResponse, error) @@ -72,9 +81,12 @@ type NotifyServiceServer interface { mustEmbedUnimplementedNotifyServiceServer() } -// UnimplementedNotifyServiceServer must be embedded to have forward compatible implementations. -type UnimplementedNotifyServiceServer struct { -} +// UnimplementedNotifyServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedNotifyServiceServer struct{} func (UnimplementedNotifyServiceServer) NotifyUser(context.Context, *NotifyUserRequest) (*NotifyResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method NotifyUser not implemented") @@ -86,6 +98,7 @@ func (UnimplementedNotifyServiceServer) NotifyAllUser(context.Context, *NotifyIn return nil, status.Errorf(codes.Unimplemented, "method NotifyAllUser not implemented") } func (UnimplementedNotifyServiceServer) mustEmbedUnimplementedNotifyServiceServer() {} +func (UnimplementedNotifyServiceServer) testEmbeddedByValue() {} // UnsafeNotifyServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to NotifyServiceServer will @@ -95,6 +108,13 @@ type UnsafeNotifyServiceServer interface { } func RegisterNotifyServiceServer(s grpc.ServiceRegistrar, srv NotifyServiceServer) { + // If the following call pancis, it indicates UnimplementedNotifyServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&NotifyService_ServiceDesc, srv) } @@ -108,7 +128,7 @@ func _NotifyService_NotifyUser_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.NotifyService/NotifyUser", + FullMethod: NotifyService_NotifyUser_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NotifyServiceServer).NotifyUser(ctx, req.(*NotifyUserRequest)) @@ -126,7 +146,7 @@ func _NotifyService_NotifyUserBatch_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.NotifyService/NotifyUserBatch", + FullMethod: NotifyService_NotifyUserBatch_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NotifyServiceServer).NotifyUserBatch(ctx, req.(*NotifyUserBatchRequest)) @@ -144,7 +164,7 @@ func _NotifyService_NotifyAllUser_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.NotifyService/NotifyAllUser", + FullMethod: NotifyService_NotifyAllUser_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NotifyServiceServer).NotifyAllUser(ctx, req.(*NotifyInfoPayload)) diff --git a/pkg/proto/realm.pb.go b/pkg/proto/realm.pb.go index 58ccb73..201ec3c 100644 --- a/pkg/proto/realm.pb.go +++ b/pkg/proto/realm.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 +// protoc-gen-go v1.35.1 // protoc v5.28.3 // source: realm.proto @@ -38,11 +38,9 @@ type RealmInfo struct { func (x *RealmInfo) Reset() { *x = RealmInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RealmInfo) String() string { @@ -53,7 +51,7 @@ func (*RealmInfo) ProtoMessage() {} func (x *RealmInfo) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -141,11 +139,9 @@ type ListRealmRequest struct { func (x *ListRealmRequest) Reset() { *x = ListRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListRealmRequest) String() string { @@ -156,7 +152,7 @@ func (*ListRealmRequest) ProtoMessage() {} func (x *ListRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -188,11 +184,9 @@ type LookupUserRealmRequest struct { func (x *LookupUserRealmRequest) Reset() { *x = LookupUserRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupUserRealmRequest) String() string { @@ -203,7 +197,7 @@ func (*LookupUserRealmRequest) ProtoMessage() {} func (x *LookupUserRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -238,11 +232,9 @@ type LookupRealmRequest struct { func (x *LookupRealmRequest) Reset() { *x = LookupRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupRealmRequest) String() string { @@ -253,7 +245,7 @@ func (*LookupRealmRequest) ProtoMessage() {} func (x *LookupRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -306,11 +298,9 @@ type ListRealmResponse struct { func (x *ListRealmResponse) Reset() { *x = ListRealmResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListRealmResponse) String() string { @@ -321,7 +311,7 @@ func (*ListRealmResponse) ProtoMessage() {} func (x *ListRealmResponse) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -354,11 +344,9 @@ type RealmMemberLookupRequest struct { func (x *RealmMemberLookupRequest) Reset() { *x = RealmMemberLookupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RealmMemberLookupRequest) String() string { @@ -369,7 +357,7 @@ func (*RealmMemberLookupRequest) ProtoMessage() {} func (x *RealmMemberLookupRequest) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -411,11 +399,9 @@ type RealmMemberInfo struct { func (x *RealmMemberInfo) Reset() { *x = RealmMemberInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RealmMemberInfo) String() string { @@ -426,7 +412,7 @@ func (*RealmMemberInfo) ProtoMessage() {} func (x *RealmMemberInfo) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -479,11 +465,9 @@ type ListRealmMemberResponse struct { func (x *ListRealmMemberResponse) Reset() { *x = ListRealmMemberResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListRealmMemberResponse) String() string { @@ -494,7 +478,7 @@ func (*ListRealmMemberResponse) ProtoMessage() {} func (x *ListRealmMemberResponse) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -528,11 +512,9 @@ type CheckRealmPermRequest struct { func (x *CheckRealmPermRequest) Reset() { *x = CheckRealmPermRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CheckRealmPermRequest) String() string { @@ -543,7 +525,7 @@ func (*CheckRealmPermRequest) ProtoMessage() {} func (x *CheckRealmPermRequest) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -589,11 +571,9 @@ type CheckRealmPermResponse struct { func (x *CheckRealmPermResponse) Reset() { *x = CheckRealmPermResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_realm_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_realm_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CheckRealmPermResponse) String() string { @@ -604,7 +584,7 @@ func (*CheckRealmPermResponse) ProtoMessage() {} func (x *CheckRealmPermResponse) ProtoReflect() protoreflect.Message { mi := &file_realm_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -748,7 +728,7 @@ func file_realm_proto_rawDescGZIP() []byte { } var file_realm_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_realm_proto_goTypes = []interface{}{ +var file_realm_proto_goTypes = []any{ (*RealmInfo)(nil), // 0: proto.RealmInfo (*ListRealmRequest)(nil), // 1: proto.ListRealmRequest (*LookupUserRealmRequest)(nil), // 2: proto.LookupUserRealmRequest @@ -789,130 +769,8 @@ func file_realm_proto_init() { if File_realm_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_realm_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RealmInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_realm_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_realm_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LookupUserRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_realm_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LookupRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_realm_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRealmResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_realm_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RealmMemberLookupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_realm_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RealmMemberInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_realm_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRealmMemberResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_realm_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckRealmPermRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_realm_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CheckRealmPermResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_realm_proto_msgTypes[3].OneofWrappers = []interface{}{} - file_realm_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_realm_proto_msgTypes[3].OneofWrappers = []any{} + file_realm_proto_msgTypes[5].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/pkg/proto/realm_grpc.pb.go b/pkg/proto/realm_grpc.pb.go index 1595c94..82e223c 100644 --- a/pkg/proto/realm_grpc.pb.go +++ b/pkg/proto/realm_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 +// - protoc-gen-go-grpc v1.5.1 // - protoc v5.28.3 // source: realm.proto @@ -15,8 +15,18 @@ import ( // 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 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + RealmService_ListAvailableRealm_FullMethodName = "/proto.RealmService/ListAvailableRealm" + RealmService_ListOwnedRealm_FullMethodName = "/proto.RealmService/ListOwnedRealm" + RealmService_ListRealm_FullMethodName = "/proto.RealmService/ListRealm" + RealmService_GetRealm_FullMethodName = "/proto.RealmService/GetRealm" + RealmService_ListRealmMember_FullMethodName = "/proto.RealmService/ListRealmMember" + RealmService_GetRealmMember_FullMethodName = "/proto.RealmService/GetRealmMember" + RealmService_CheckRealmMemberPerm_FullMethodName = "/proto.RealmService/CheckRealmMemberPerm" +) // RealmServiceClient is the client API for RealmService service. // @@ -40,8 +50,9 @@ func NewRealmServiceClient(cc grpc.ClientConnInterface) RealmServiceClient { } func (c *realmServiceClient) ListAvailableRealm(ctx context.Context, in *LookupUserRealmRequest, opts ...grpc.CallOption) (*ListRealmResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListRealmResponse) - err := c.cc.Invoke(ctx, "/proto.RealmService/ListAvailableRealm", in, out, opts...) + err := c.cc.Invoke(ctx, RealmService_ListAvailableRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -49,8 +60,9 @@ func (c *realmServiceClient) ListAvailableRealm(ctx context.Context, in *LookupU } func (c *realmServiceClient) ListOwnedRealm(ctx context.Context, in *LookupUserRealmRequest, opts ...grpc.CallOption) (*ListRealmResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListRealmResponse) - err := c.cc.Invoke(ctx, "/proto.RealmService/ListOwnedRealm", in, out, opts...) + err := c.cc.Invoke(ctx, RealmService_ListOwnedRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -58,8 +70,9 @@ func (c *realmServiceClient) ListOwnedRealm(ctx context.Context, in *LookupUserR } func (c *realmServiceClient) ListRealm(ctx context.Context, in *ListRealmRequest, opts ...grpc.CallOption) (*ListRealmResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListRealmResponse) - err := c.cc.Invoke(ctx, "/proto.RealmService/ListRealm", in, out, opts...) + err := c.cc.Invoke(ctx, RealmService_ListRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -67,8 +80,9 @@ func (c *realmServiceClient) ListRealm(ctx context.Context, in *ListRealmRequest } func (c *realmServiceClient) GetRealm(ctx context.Context, in *LookupRealmRequest, opts ...grpc.CallOption) (*RealmInfo, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RealmInfo) - err := c.cc.Invoke(ctx, "/proto.RealmService/GetRealm", in, out, opts...) + err := c.cc.Invoke(ctx, RealmService_GetRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -76,8 +90,9 @@ func (c *realmServiceClient) GetRealm(ctx context.Context, in *LookupRealmReques } func (c *realmServiceClient) ListRealmMember(ctx context.Context, in *RealmMemberLookupRequest, opts ...grpc.CallOption) (*ListRealmMemberResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListRealmMemberResponse) - err := c.cc.Invoke(ctx, "/proto.RealmService/ListRealmMember", in, out, opts...) + err := c.cc.Invoke(ctx, RealmService_ListRealmMember_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -85,8 +100,9 @@ func (c *realmServiceClient) ListRealmMember(ctx context.Context, in *RealmMembe } func (c *realmServiceClient) GetRealmMember(ctx context.Context, in *RealmMemberLookupRequest, opts ...grpc.CallOption) (*RealmMemberInfo, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RealmMemberInfo) - err := c.cc.Invoke(ctx, "/proto.RealmService/GetRealmMember", in, out, opts...) + err := c.cc.Invoke(ctx, RealmService_GetRealmMember_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -94,8 +110,9 @@ func (c *realmServiceClient) GetRealmMember(ctx context.Context, in *RealmMember } func (c *realmServiceClient) CheckRealmMemberPerm(ctx context.Context, in *CheckRealmPermRequest, opts ...grpc.CallOption) (*CheckRealmPermResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(CheckRealmPermResponse) - err := c.cc.Invoke(ctx, "/proto.RealmService/CheckRealmMemberPerm", in, out, opts...) + err := c.cc.Invoke(ctx, RealmService_CheckRealmMemberPerm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -104,7 +121,7 @@ func (c *realmServiceClient) CheckRealmMemberPerm(ctx context.Context, in *Check // RealmServiceServer is the server API for RealmService service. // All implementations must embed UnimplementedRealmServiceServer -// for forward compatibility +// for forward compatibility. type RealmServiceServer interface { ListAvailableRealm(context.Context, *LookupUserRealmRequest) (*ListRealmResponse, error) ListOwnedRealm(context.Context, *LookupUserRealmRequest) (*ListRealmResponse, error) @@ -116,9 +133,12 @@ type RealmServiceServer interface { mustEmbedUnimplementedRealmServiceServer() } -// UnimplementedRealmServiceServer must be embedded to have forward compatible implementations. -type UnimplementedRealmServiceServer struct { -} +// UnimplementedRealmServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedRealmServiceServer struct{} func (UnimplementedRealmServiceServer) ListAvailableRealm(context.Context, *LookupUserRealmRequest) (*ListRealmResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListAvailableRealm not implemented") @@ -142,6 +162,7 @@ func (UnimplementedRealmServiceServer) CheckRealmMemberPerm(context.Context, *Ch return nil, status.Errorf(codes.Unimplemented, "method CheckRealmMemberPerm not implemented") } func (UnimplementedRealmServiceServer) mustEmbedUnimplementedRealmServiceServer() {} +func (UnimplementedRealmServiceServer) testEmbeddedByValue() {} // UnsafeRealmServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to RealmServiceServer will @@ -151,6 +172,13 @@ type UnsafeRealmServiceServer interface { } func RegisterRealmServiceServer(s grpc.ServiceRegistrar, srv RealmServiceServer) { + // If the following call pancis, it indicates UnimplementedRealmServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&RealmService_ServiceDesc, srv) } @@ -164,7 +192,7 @@ func _RealmService_ListAvailableRealm_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.RealmService/ListAvailableRealm", + FullMethod: RealmService_ListAvailableRealm_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RealmServiceServer).ListAvailableRealm(ctx, req.(*LookupUserRealmRequest)) @@ -182,7 +210,7 @@ func _RealmService_ListOwnedRealm_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.RealmService/ListOwnedRealm", + FullMethod: RealmService_ListOwnedRealm_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RealmServiceServer).ListOwnedRealm(ctx, req.(*LookupUserRealmRequest)) @@ -200,7 +228,7 @@ func _RealmService_ListRealm_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.RealmService/ListRealm", + FullMethod: RealmService_ListRealm_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RealmServiceServer).ListRealm(ctx, req.(*ListRealmRequest)) @@ -218,7 +246,7 @@ func _RealmService_GetRealm_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.RealmService/GetRealm", + FullMethod: RealmService_GetRealm_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RealmServiceServer).GetRealm(ctx, req.(*LookupRealmRequest)) @@ -236,7 +264,7 @@ func _RealmService_ListRealmMember_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.RealmService/ListRealmMember", + FullMethod: RealmService_ListRealmMember_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RealmServiceServer).ListRealmMember(ctx, req.(*RealmMemberLookupRequest)) @@ -254,7 +282,7 @@ func _RealmService_GetRealmMember_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.RealmService/GetRealmMember", + FullMethod: RealmService_GetRealmMember_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RealmServiceServer).GetRealmMember(ctx, req.(*RealmMemberLookupRequest)) @@ -272,7 +300,7 @@ func _RealmService_CheckRealmMemberPerm_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.RealmService/CheckRealmMemberPerm", + FullMethod: RealmService_CheckRealmMemberPerm_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RealmServiceServer).CheckRealmMemberPerm(ctx, req.(*CheckRealmPermRequest)) diff --git a/pkg/proto/record.pb.go b/pkg/proto/record.pb.go index a28458b..e699d07 100644 --- a/pkg/proto/record.pb.go +++ b/pkg/proto/record.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 +// protoc-gen-go v1.35.1 // protoc v5.28.3 // source: record.proto @@ -34,11 +34,9 @@ type RecordEventRequest struct { func (x *RecordEventRequest) Reset() { *x = RecordEventRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_record_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_record_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RecordEventRequest) String() string { @@ -49,7 +47,7 @@ func (*RecordEventRequest) ProtoMessage() {} func (x *RecordEventRequest) ProtoReflect() protoreflect.Message { mi := &file_record_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -109,11 +107,9 @@ type RecordEventResponse struct { func (x *RecordEventResponse) Reset() { *x = RecordEventResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_record_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_record_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RecordEventResponse) String() string { @@ -124,7 +120,7 @@ func (*RecordEventResponse) ProtoMessage() {} func (x *RecordEventResponse) ProtoReflect() protoreflect.Message { mi := &file_record_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -185,7 +181,7 @@ func file_record_proto_rawDescGZIP() []byte { } var file_record_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_record_proto_goTypes = []interface{}{ +var file_record_proto_goTypes = []any{ (*RecordEventRequest)(nil), // 0: proto.RecordEventRequest (*RecordEventResponse)(nil), // 1: proto.RecordEventResponse } @@ -204,32 +200,6 @@ func file_record_proto_init() { if File_record_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_record_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordEventRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_record_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RecordEventResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/pkg/proto/record_grpc.pb.go b/pkg/proto/record_grpc.pb.go index 7f07896..8933b30 100644 --- a/pkg/proto/record_grpc.pb.go +++ b/pkg/proto/record_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 +// - protoc-gen-go-grpc v1.5.1 // - protoc v5.28.3 // source: record.proto @@ -15,8 +15,12 @@ import ( // 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 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + AuditService_RecordEvent_FullMethodName = "/proto.AuditService/RecordEvent" +) // AuditServiceClient is the client API for AuditService service. // @@ -34,8 +38,9 @@ func NewAuditServiceClient(cc grpc.ClientConnInterface) AuditServiceClient { } func (c *auditServiceClient) RecordEvent(ctx context.Context, in *RecordEventRequest, opts ...grpc.CallOption) (*RecordEventResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RecordEventResponse) - err := c.cc.Invoke(ctx, "/proto.AuditService/RecordEvent", in, out, opts...) + err := c.cc.Invoke(ctx, AuditService_RecordEvent_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -44,20 +49,24 @@ func (c *auditServiceClient) RecordEvent(ctx context.Context, in *RecordEventReq // AuditServiceServer is the server API for AuditService service. // All implementations must embed UnimplementedAuditServiceServer -// for forward compatibility +// for forward compatibility. type AuditServiceServer interface { RecordEvent(context.Context, *RecordEventRequest) (*RecordEventResponse, error) mustEmbedUnimplementedAuditServiceServer() } -// UnimplementedAuditServiceServer must be embedded to have forward compatible implementations. -type UnimplementedAuditServiceServer struct { -} +// UnimplementedAuditServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedAuditServiceServer struct{} func (UnimplementedAuditServiceServer) RecordEvent(context.Context, *RecordEventRequest) (*RecordEventResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RecordEvent not implemented") } func (UnimplementedAuditServiceServer) mustEmbedUnimplementedAuditServiceServer() {} +func (UnimplementedAuditServiceServer) testEmbeddedByValue() {} // UnsafeAuditServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to AuditServiceServer will @@ -67,6 +76,13 @@ type UnsafeAuditServiceServer interface { } func RegisterAuditServiceServer(s grpc.ServiceRegistrar, srv AuditServiceServer) { + // If the following call pancis, it indicates UnimplementedAuditServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&AuditService_ServiceDesc, srv) } @@ -80,7 +96,7 @@ func _AuditService_RecordEvent_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.AuditService/RecordEvent", + FullMethod: AuditService_RecordEvent_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AuditServiceServer).RecordEvent(ctx, req.(*RecordEventRequest)) diff --git a/pkg/proto/third_client.pb.go b/pkg/proto/third_client.pb.go index 639a301..df4cc3f 100644 --- a/pkg/proto/third_client.pb.go +++ b/pkg/proto/third_client.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 +// protoc-gen-go v1.35.1 // protoc v5.28.3 // source: third_client.proto @@ -25,18 +25,19 @@ type ThirdClientInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Alias string `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + IsDraft bool `protobuf:"varint,5,opt,name=is_draft,json=isDraft,proto3" json:"is_draft,omitempty"` + AccountId *uint64 `protobuf:"varint,6,opt,name=account_id,json=accountId,proto3,oneof" json:"account_id,omitempty"` } func (x *ThirdClientInfo) Reset() { *x = ThirdClientInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_third_client_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_third_client_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ThirdClientInfo) String() string { @@ -47,7 +48,7 @@ func (*ThirdClientInfo) ProtoMessage() {} func (x *ThirdClientInfo) ProtoReflect() protoreflect.Message { mi := &file_third_client_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -69,6 +70,13 @@ func (x *ThirdClientInfo) GetId() uint64 { return 0 } +func (x *ThirdClientInfo) GetAlias() string { + if x != nil { + return x.Alias + } + return "" +} + func (x *ThirdClientInfo) GetName() string { if x != nil { return x.Name @@ -83,6 +91,20 @@ func (x *ThirdClientInfo) GetDescription() string { return "" } +func (x *ThirdClientInfo) GetIsDraft() bool { + if x != nil { + return x.IsDraft + } + return false +} + +func (x *ThirdClientInfo) GetAccountId() uint64 { + if x != nil && x.AccountId != nil { + return *x.AccountId + } + return 0 +} + type GetThirdClientRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -94,11 +116,9 @@ type GetThirdClientRequest struct { func (x *GetThirdClientRequest) Reset() { *x = GetThirdClientRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_third_client_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_third_client_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetThirdClientRequest) String() string { @@ -109,7 +129,7 @@ func (*GetThirdClientRequest) ProtoMessage() {} func (x *GetThirdClientRequest) ProtoReflect() protoreflect.Message { mi := &file_third_client_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -148,11 +168,9 @@ type GetThirdClientResponse struct { func (x *GetThirdClientResponse) Reset() { *x = GetThirdClientResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_third_client_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_third_client_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetThirdClientResponse) String() string { @@ -163,7 +181,7 @@ func (*GetThirdClientResponse) ProtoMessage() {} func (x *GetThirdClientResponse) ProtoReflect() protoreflect.Message { mi := &file_third_client_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -189,31 +207,37 @@ var File_third_client_proto protoreflect.FileDescriptor var file_third_client_proto_rawDesc = []byte{ 0x0a, 0x12, 0x74, 0x68, 0x69, 0x72, 0x64, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x57, 0x0a, 0x0f, 0x54, - 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x63, 0x72, - 0x65, 0x74, 0x22, 0x44, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x04, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x32, 0x65, 0x0a, 0x12, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4f, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0x09, 0x5a, 0x07, 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbb, 0x01, 0x0a, 0x0f, + 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x69, + 0x73, 0x5f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, + 0x73, 0x44, 0x72, 0x61, 0x66, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x5c, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x44, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x68, + 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x32, 0x65, 0x0a, + 0x12, 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x68, 0x69, 0x72, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x42, 0x09, 0x5a, 0x07, 0x2e, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -229,7 +253,7 @@ func file_third_client_proto_rawDescGZIP() []byte { } var file_third_client_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_third_client_proto_goTypes = []interface{}{ +var file_third_client_proto_goTypes = []any{ (*ThirdClientInfo)(nil), // 0: proto.ThirdClientInfo (*GetThirdClientRequest)(nil), // 1: proto.GetThirdClientRequest (*GetThirdClientResponse)(nil), // 2: proto.GetThirdClientResponse @@ -250,45 +274,8 @@ func file_third_client_proto_init() { if File_third_client_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_third_client_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ThirdClientInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_third_client_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetThirdClientRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_third_client_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetThirdClientResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - file_third_client_proto_msgTypes[1].OneofWrappers = []interface{}{} + file_third_client_proto_msgTypes[0].OneofWrappers = []any{} + file_third_client_proto_msgTypes[1].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/pkg/proto/third_client.proto b/pkg/proto/third_client.proto index 42453cd..1b33e73 100644 --- a/pkg/proto/third_client.proto +++ b/pkg/proto/third_client.proto @@ -10,8 +10,11 @@ service ThirdClientService { message ThirdClientInfo { uint64 id = 1; - string name = 2; - string description = 3; + string alias = 2; + string name = 3; + string description = 4; + bool is_draft = 5; + optional uint64 account_id = 6; } message GetThirdClientRequest { @@ -21,4 +24,4 @@ message GetThirdClientRequest { message GetThirdClientResponse { ThirdClientInfo info = 1; -} \ No newline at end of file +} diff --git a/pkg/proto/third_client_grpc.pb.go b/pkg/proto/third_client_grpc.pb.go index bc657a5..e2d9f16 100644 --- a/pkg/proto/third_client_grpc.pb.go +++ b/pkg/proto/third_client_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 +// - protoc-gen-go-grpc v1.5.1 // - protoc v5.28.3 // source: third_client.proto @@ -15,8 +15,12 @@ import ( // 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 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + ThirdClientService_GetThirdClient_FullMethodName = "/proto.ThirdClientService/GetThirdClient" +) // ThirdClientServiceClient is the client API for ThirdClientService service. // @@ -34,8 +38,9 @@ func NewThirdClientServiceClient(cc grpc.ClientConnInterface) ThirdClientService } func (c *thirdClientServiceClient) GetThirdClient(ctx context.Context, in *GetThirdClientRequest, opts ...grpc.CallOption) (*GetThirdClientResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetThirdClientResponse) - err := c.cc.Invoke(ctx, "/proto.ThirdClientService/GetThirdClient", in, out, opts...) + err := c.cc.Invoke(ctx, ThirdClientService_GetThirdClient_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -44,20 +49,24 @@ func (c *thirdClientServiceClient) GetThirdClient(ctx context.Context, in *GetTh // ThirdClientServiceServer is the server API for ThirdClientService service. // All implementations must embed UnimplementedThirdClientServiceServer -// for forward compatibility +// for forward compatibility. type ThirdClientServiceServer interface { GetThirdClient(context.Context, *GetThirdClientRequest) (*GetThirdClientResponse, error) mustEmbedUnimplementedThirdClientServiceServer() } -// UnimplementedThirdClientServiceServer must be embedded to have forward compatible implementations. -type UnimplementedThirdClientServiceServer struct { -} +// UnimplementedThirdClientServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedThirdClientServiceServer struct{} func (UnimplementedThirdClientServiceServer) GetThirdClient(context.Context, *GetThirdClientRequest) (*GetThirdClientResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetThirdClient not implemented") } func (UnimplementedThirdClientServiceServer) mustEmbedUnimplementedThirdClientServiceServer() {} +func (UnimplementedThirdClientServiceServer) testEmbeddedByValue() {} // UnsafeThirdClientServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ThirdClientServiceServer will @@ -67,6 +76,13 @@ type UnsafeThirdClientServiceServer interface { } func RegisterThirdClientServiceServer(s grpc.ServiceRegistrar, srv ThirdClientServiceServer) { + // If the following call pancis, it indicates UnimplementedThirdClientServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ThirdClientService_ServiceDesc, srv) } @@ -80,7 +96,7 @@ func _ThirdClientService_GetThirdClient_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/proto.ThirdClientService/GetThirdClient", + FullMethod: ThirdClientService_GetThirdClient_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ThirdClientServiceServer).GetThirdClient(ctx, req.(*GetThirdClientRequest))