From 2f7e632a3d876a8721bcfbeeb4624a338df46eb8 Mon Sep 17 00:00:00 2001 From: terminaldweller Date: Sat, 20 Nov 2021 20:51:43 +0330 Subject: added the grpc methods --- go.mod | 3 +- telebot/makefile | 4 +- telebot/v1/telegram.pb.go | 7 +-- telebot/v1/telegram_grpc.pb.go | 101 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 107 insertions(+), 8 deletions(-) create mode 100644 telebot/v1/telegram_grpc.pb.go diff --git a/go.mod b/go.mod index d2eb9ab..131b0e8 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/terminaldweller/grpc go 1.15 require ( - github.com/golang/protobuf v1.5.2 + github.com/golang/protobuf v1.5.2 // indirect + google.golang.org/grpc v1.42.0 google.golang.org/protobuf v1.27.1 ) diff --git a/telebot/makefile b/telebot/makefile index 70c353b..b919633 100644 --- a/telebot/makefile +++ b/telebot/makefile @@ -8,7 +8,9 @@ DEFAULT: default default: $(ARTIFACT_LIST) $(SRC_DIR)/%.pb.go:$(SRC_DIR)/%.proto - protoc --proto_path=$(SRC_DIR) --go_out=$(DST_DIR) --go_opt=paths=source_relative $< + protoc --proto_path=$(SRC_DIR) \ + --go_out=$(DST_DIR) --go_opt=paths=source_relative \ + --go-grpc_out=$(DST_DIR) --go-grpc_opt=paths=source_relative $< if [ -d go.mod ];then : else;go mod init github.com/terminaldweller/grpc/telebot/v1;fi go mod tidy diff --git a/telebot/v1/telegram.pb.go b/telebot/v1/telegram.pb.go index ab46f67..85a653a 100644 --- a/telebot/v1/telegram.pb.go +++ b/telebot/v1/telegram.pb.go @@ -1,13 +1,12 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.23.0 +// protoc-gen-go v1.27.1 // protoc v3.15.6 // source: telegram.proto package v1 import ( - proto "github.com/golang/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" @@ -22,10 +21,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// This is a compile-time assertion that a sufficiently up-to-date version -// of the legacy proto package is being used. -const _ = proto.ProtoPackageIsVersion4 - type NotificationRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/telebot/v1/telegram_grpc.pb.go b/telebot/v1/telegram_grpc.pb.go new file mode 100644 index 0000000..7f55861 --- /dev/null +++ b/telebot/v1/telegram_grpc.pb.go @@ -0,0 +1,101 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package v1 + +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 + +// NotificationServiceClient is the client API for NotificationService 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 NotificationServiceClient interface { + Notify(ctx context.Context, in *NotificationRequest, opts ...grpc.CallOption) (*NotificationResponse, error) +} + +type notificationServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewNotificationServiceClient(cc grpc.ClientConnInterface) NotificationServiceClient { + return ¬ificationServiceClient{cc} +} + +func (c *notificationServiceClient) Notify(ctx context.Context, in *NotificationRequest, opts ...grpc.CallOption) (*NotificationResponse, error) { + out := new(NotificationResponse) + err := c.cc.Invoke(ctx, "/hived.NotificationService/Notify", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NotificationServiceServer is the server API for NotificationService service. +// All implementations must embed UnimplementedNotificationServiceServer +// for forward compatibility +type NotificationServiceServer interface { + Notify(context.Context, *NotificationRequest) (*NotificationResponse, error) + mustEmbedUnimplementedNotificationServiceServer() +} + +// UnimplementedNotificationServiceServer must be embedded to have forward compatible implementations. +type UnimplementedNotificationServiceServer struct { +} + +func (UnimplementedNotificationServiceServer) Notify(context.Context, *NotificationRequest) (*NotificationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Notify not implemented") +} +func (UnimplementedNotificationServiceServer) mustEmbedUnimplementedNotificationServiceServer() {} + +// UnsafeNotificationServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to NotificationServiceServer will +// result in compilation errors. +type UnsafeNotificationServiceServer interface { + mustEmbedUnimplementedNotificationServiceServer() +} + +func RegisterNotificationServiceServer(s grpc.ServiceRegistrar, srv NotificationServiceServer) { + s.RegisterService(&NotificationService_ServiceDesc, srv) +} + +func _NotificationService_Notify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NotificationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NotificationServiceServer).Notify(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hived.NotificationService/Notify", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NotificationServiceServer).Notify(ctx, req.(*NotificationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// NotificationService_ServiceDesc is the grpc.ServiceDesc for NotificationService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var NotificationService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "hived.NotificationService", + HandlerType: (*NotificationServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Notify", + Handler: _NotificationService_Notify_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "telegram.proto", +} -- cgit v1.2.3