diff --git a/api/main.proto b/api/main.proto index 435889c..9e0e80a 100644 --- a/api/main.proto +++ b/api/main.proto @@ -109,6 +109,12 @@ service EveningDetectiveServer { get: "/api/users" }; } + + rpc GetMe(GetMeReq) returns (GetMeRsp) { + option (google.api.http) = { + get: "/api/me" + }; + } } message PingReq {} @@ -176,3 +182,10 @@ message User { bool is_active = 5; google.protobuf.Timestamp created_at = 6; } + +message GetMeReq {} + +message GetMeRsp { + string error = 1; + User user = 2; +} diff --git a/cmd/evening_detective_server/main.swagger.json b/cmd/evening_detective_server/main.swagger.json index 9a8664a..6e86572 100644 --- a/cmd/evening_detective_server/main.swagger.json +++ b/cmd/evening_detective_server/main.swagger.json @@ -88,6 +88,28 @@ ] } }, + "/api/me": { + "get": { + "operationId": "EveningDetectiveServer_GetMe", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/evening_detective_serverGetMeRsp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "EveningDetectiveServer" + ] + } + }, "/api/ping": { "get": { "operationId": "EveningDetectiveServer_Ping", @@ -258,6 +280,17 @@ } } }, + "evening_detective_serverGetMeRsp": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "user": { + "$ref": "#/definitions/evening_detective_serverUser" + } + } + }, "evening_detective_serverGetUsersRsp": { "type": "object", "properties": { diff --git a/internal/app/server.go b/internal/app/server.go index 44353c4..2fbb1ea 100644 --- a/internal/app/server.go +++ b/internal/app/server.go @@ -8,7 +8,6 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "google.golang.org/protobuf/types/known/timestamppb" ) type server struct { @@ -93,19 +92,23 @@ func (s *server) GetUsers(ctx context.Context, req *proto.GetUsersReq) (*proto.G resUsers := make([]*proto.User, 0, len(users)) for _, user := range users { - resUsers = append( - resUsers, - &proto.User{ - Id: int32(user.ID), - Username: user.Username, - Email: user.Email, - Roles: user.Roles, - IsActive: user.IsActive, - CreatedAt: timestamppb.New(user.CreatedAt), - }, - ) + resUsers = append(resUsers, mapUser(user)) } return &proto.GetUsersRsp{ Users: resUsers, }, nil } + +func (s *server) GetMe(ctx context.Context, req *proto.GetMeReq) (*proto.GetMeRsp, error) { + claims := ctx.Value("claims").(*processor_jwt.JWTClaims) + user, err := s.usersService.GetUserByID(ctx, claims.UserID) + if err != nil { + return &proto.GetMeRsp{ + Error: err.Error(), + }, nil + } + + return &proto.GetMeRsp{ + User: mapUser(user), + }, nil +} diff --git a/internal/app/user_mapper.go b/internal/app/user_mapper.go new file mode 100644 index 0000000..89dabda --- /dev/null +++ b/internal/app/user_mapper.go @@ -0,0 +1,19 @@ +package app + +import ( + "evening_detective_server/internal/repos" + proto "evening_detective_server/proto" + + "google.golang.org/protobuf/types/known/timestamppb" +) + +func mapUser(o *repos.User) *proto.User { + return &proto.User{ + Id: int32(o.ID), + Username: o.Username, + Email: o.Email, + Roles: o.Roles, + IsActive: o.IsActive, + CreatedAt: timestamppb.New(o.CreatedAt), + } +} diff --git a/internal/services/users_service/service.go b/internal/services/users_service/service.go index 705f04b..b7b18f0 100644 --- a/internal/services/users_service/service.go +++ b/internal/services/users_service/service.go @@ -197,3 +197,14 @@ func (s *UsersService) GetUsers( } return users, nil } + +func (s *UsersService) GetUserByID( + ctx context.Context, + userId int, +) (*repos.User, error) { + user, err := s.usersRepo.GetUserByID(ctx, userId) + if err != nil { + return nil, err + } + return user, nil +} diff --git a/proto/main.pb.go b/proto/main.pb.go index 2d2e455..ac15f68 100644 --- a/proto/main.pb.go +++ b/proto/main.pb.go @@ -756,6 +756,94 @@ func (x *User) GetCreatedAt() *timestamppb.Timestamp { return nil } +type GetMeReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetMeReq) Reset() { + *x = GetMeReq{} + mi := &file_main_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetMeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMeReq) ProtoMessage() {} + +func (x *GetMeReq) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMeReq.ProtoReflect.Descriptor instead. +func (*GetMeReq) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{15} +} + +type GetMeRsp struct { + state protoimpl.MessageState `protogen:"open.v1"` + Error string `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` + User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetMeRsp) Reset() { + *x = GetMeRsp{} + mi := &file_main_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetMeRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMeRsp) ProtoMessage() {} + +func (x *GetMeRsp) ProtoReflect() protoreflect.Message { + mi := &file_main_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMeRsp.ProtoReflect.Descriptor instead. +func (*GetMeRsp) Descriptor() ([]byte, []int) { + return file_main_proto_rawDescGZIP(), []int{16} +} + +func (x *GetMeRsp) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +func (x *GetMeRsp) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + var File_main_proto protoreflect.FileDescriptor const file_main_proto_rawDesc = "" + @@ -803,7 +891,12 @@ const file_main_proto_rawDesc = "" + "\x05roles\x18\x04 \x03(\tR\x05roles\x12\x1b\n" + "\tis_active\x18\x05 \x01(\bR\bisActive\x129\n" + "\n" + - "created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt2\xb6\a\n" + + "created_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tcreatedAt\"\n" + + "\n" + + "\bGetMeReq\"Z\n" + + "\bGetMeRsp\x12\x14\n" + + "\x05error\x18\x01 \x01(\tR\x05error\x128\n" + + "\x04user\x18\x02 \x01(\v2$.crabs.evening_detective_server.UserR\x04user2\xa4\b\n" + "\x16EveningDetectiveServer\x12v\n" + "\x04Ping\x12'.crabs.evening_detective_server.PingReq\x1a'.crabs.evening_detective_server.PingRsp\"\x1c\x92A\bb\x06\n" + "\x04\n" + @@ -825,7 +918,8 @@ const file_main_proto_rawDesc = "" + "\x04\n" + "\x00\x12\x00\x82\xd3\xe4\x93\x02\x11:\x01*\"\f/api/refresh\x12x\n" + "\bGetUsers\x12+.crabs.evening_detective_server.GetUsersReq\x1a+.crabs.evening_detective_server.GetUsersRsp\"\x12\x82\xd3\xe4\x93\x02\f\x12\n" + - "/api/usersB\xd7\x01\x92A\xc8\x01\x12U\n" + + "/api/users\x12l\n" + + "\x05GetMe\x12(.crabs.evening_detective_server.GetMeReq\x1a(.crabs.evening_detective_server.GetMeRsp\"\x0f\x82\xd3\xe4\x93\x02\t\x12\a/api/meB\xd7\x01\x92A\xc8\x01\x12U\n" + "KДокументация сервиса \"Вечерний детектив\"2\x06v0.1.0Z]\n" + "[\n" + "\n" + @@ -846,7 +940,7 @@ func file_main_proto_rawDescGZIP() []byte { return file_main_proto_rawDescData } -var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_main_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_main_proto_goTypes = []any{ (*PingReq)(nil), // 0: crabs.evening_detective_server.PingReq (*PingRsp)(nil), // 1: crabs.evening_detective_server.PingRsp @@ -863,30 +957,35 @@ var file_main_proto_goTypes = []any{ (*GetUsersReq)(nil), // 12: crabs.evening_detective_server.GetUsersReq (*GetUsersRsp)(nil), // 13: crabs.evening_detective_server.GetUsersRsp (*User)(nil), // 14: crabs.evening_detective_server.User - (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp + (*GetMeReq)(nil), // 15: crabs.evening_detective_server.GetMeReq + (*GetMeRsp)(nil), // 16: crabs.evening_detective_server.GetMeRsp + (*timestamppb.Timestamp)(nil), // 17: google.protobuf.Timestamp } var file_main_proto_depIdxs = []int32{ 14, // 0: crabs.evening_detective_server.GetUsersRsp.users:type_name -> crabs.evening_detective_server.User - 15, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp - 0, // 2: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq - 2, // 3: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq - 4, // 4: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq - 6, // 5: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq - 8, // 6: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq - 10, // 7: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq - 12, // 8: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq - 1, // 9: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp - 3, // 10: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp - 5, // 11: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp - 7, // 12: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp - 9, // 13: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp - 11, // 14: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp - 13, // 15: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp - 9, // [9:16] is the sub-list for method output_type - 2, // [2:9] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 17, // 1: crabs.evening_detective_server.User.created_at:type_name -> google.protobuf.Timestamp + 14, // 2: crabs.evening_detective_server.GetMeRsp.user:type_name -> crabs.evening_detective_server.User + 0, // 3: crabs.evening_detective_server.EveningDetectiveServer.Ping:input_type -> crabs.evening_detective_server.PingReq + 2, // 4: crabs.evening_detective_server.EveningDetectiveServer.Echo:input_type -> crabs.evening_detective_server.EchoReq + 4, // 5: crabs.evening_detective_server.EveningDetectiveServer.Signup:input_type -> crabs.evening_detective_server.SignupReq + 6, // 6: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:input_type -> crabs.evening_detective_server.RefreshPasswordReq + 8, // 7: crabs.evening_detective_server.EveningDetectiveServer.Login:input_type -> crabs.evening_detective_server.LoginReq + 10, // 8: crabs.evening_detective_server.EveningDetectiveServer.Refresh:input_type -> crabs.evening_detective_server.RefreshReq + 12, // 9: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:input_type -> crabs.evening_detective_server.GetUsersReq + 15, // 10: crabs.evening_detective_server.EveningDetectiveServer.GetMe:input_type -> crabs.evening_detective_server.GetMeReq + 1, // 11: crabs.evening_detective_server.EveningDetectiveServer.Ping:output_type -> crabs.evening_detective_server.PingRsp + 3, // 12: crabs.evening_detective_server.EveningDetectiveServer.Echo:output_type -> crabs.evening_detective_server.EchoRsp + 5, // 13: crabs.evening_detective_server.EveningDetectiveServer.Signup:output_type -> crabs.evening_detective_server.SignupRsp + 7, // 14: crabs.evening_detective_server.EveningDetectiveServer.RefreshPassword:output_type -> crabs.evening_detective_server.RefreshPasswordRsp + 9, // 15: crabs.evening_detective_server.EveningDetectiveServer.Login:output_type -> crabs.evening_detective_server.LoginRsp + 11, // 16: crabs.evening_detective_server.EveningDetectiveServer.Refresh:output_type -> crabs.evening_detective_server.RefreshRsp + 13, // 17: crabs.evening_detective_server.EveningDetectiveServer.GetUsers:output_type -> crabs.evening_detective_server.GetUsersRsp + 16, // 18: crabs.evening_detective_server.EveningDetectiveServer.GetMe:output_type -> crabs.evening_detective_server.GetMeRsp + 11, // [11:19] is the sub-list for method output_type + 3, // [3:11] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_main_proto_init() } @@ -900,7 +999,7 @@ func file_main_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_main_proto_rawDesc), len(file_main_proto_rawDesc)), NumEnums: 0, - NumMessages: 15, + NumMessages: 17, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/main.pb.gw.go b/proto/main.pb.gw.go index eb64ba9..c916c62 100644 --- a/proto/main.pb.gw.go +++ b/proto/main.pb.gw.go @@ -220,6 +220,27 @@ func local_request_EveningDetectiveServer_GetUsers_0(ctx context.Context, marsha return msg, metadata, err } +func request_EveningDetectiveServer_GetMe_0(ctx context.Context, marshaler runtime.Marshaler, client EveningDetectiveServerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq GetMeReq + metadata runtime.ServerMetadata + ) + if req.Body != nil { + _, _ = io.Copy(io.Discard, req.Body) + } + msg, err := client.GetMe(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err +} + +func local_request_EveningDetectiveServer_GetMe_0(ctx context.Context, marshaler runtime.Marshaler, server EveningDetectiveServerServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var ( + protoReq GetMeReq + metadata runtime.ServerMetadata + ) + msg, err := server.GetMe(ctx, &protoReq) + return msg, metadata, err +} + // RegisterEveningDetectiveServerHandlerServer registers the http handlers for service EveningDetectiveServer to "mux". // UnaryRPC :call EveningDetectiveServerServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -366,6 +387,26 @@ func RegisterEveningDetectiveServerHandlerServer(ctx context.Context, mux *runti } forward_EveningDetectiveServer_GetUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetMe_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/crabs.evening_detective_server.EveningDetectiveServer/GetMe", runtime.WithHTTPPathPattern("/api/me")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_EveningDetectiveServer_GetMe_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_EveningDetectiveServer_GetMe_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) return nil } @@ -525,6 +566,23 @@ func RegisterEveningDetectiveServerHandlerClient(ctx context.Context, mux *runti } forward_EveningDetectiveServer_GetUsers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle(http.MethodGet, pattern_EveningDetectiveServer_GetMe_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/crabs.evening_detective_server.EveningDetectiveServer/GetMe", runtime.WithHTTPPathPattern("/api/me")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_EveningDetectiveServer_GetMe_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + forward_EveningDetectiveServer_GetMe_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + }) return nil } @@ -536,6 +594,7 @@ var ( pattern_EveningDetectiveServer_Login_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "login"}, "")) pattern_EveningDetectiveServer_Refresh_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "refresh"}, "")) pattern_EveningDetectiveServer_GetUsers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "users"}, "")) + pattern_EveningDetectiveServer_GetMe_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"api", "me"}, "")) ) var ( @@ -546,4 +605,5 @@ var ( forward_EveningDetectiveServer_Login_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_Refresh_0 = runtime.ForwardResponseMessage forward_EveningDetectiveServer_GetUsers_0 = runtime.ForwardResponseMessage + forward_EveningDetectiveServer_GetMe_0 = runtime.ForwardResponseMessage ) diff --git a/proto/main_grpc.pb.go b/proto/main_grpc.pb.go index 2e4706d..922c270 100644 --- a/proto/main_grpc.pb.go +++ b/proto/main_grpc.pb.go @@ -26,6 +26,7 @@ const ( EveningDetectiveServer_Login_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Login" EveningDetectiveServer_Refresh_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/Refresh" EveningDetectiveServer_GetUsers_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetUsers" + EveningDetectiveServer_GetMe_FullMethodName = "/crabs.evening_detective_server.EveningDetectiveServer/GetMe" ) // EveningDetectiveServerClient is the client API for EveningDetectiveServer service. @@ -39,6 +40,7 @@ type EveningDetectiveServerClient interface { Login(ctx context.Context, in *LoginReq, opts ...grpc.CallOption) (*LoginRsp, error) Refresh(ctx context.Context, in *RefreshReq, opts ...grpc.CallOption) (*RefreshRsp, error) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersRsp, error) + GetMe(ctx context.Context, in *GetMeReq, opts ...grpc.CallOption) (*GetMeRsp, error) } type eveningDetectiveServerClient struct { @@ -119,6 +121,16 @@ func (c *eveningDetectiveServerClient) GetUsers(ctx context.Context, in *GetUser return out, nil } +func (c *eveningDetectiveServerClient) GetMe(ctx context.Context, in *GetMeReq, opts ...grpc.CallOption) (*GetMeRsp, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetMeRsp) + err := c.cc.Invoke(ctx, EveningDetectiveServer_GetMe_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // EveningDetectiveServerServer is the server API for EveningDetectiveServer service. // All implementations must embed UnimplementedEveningDetectiveServerServer // for forward compatibility. @@ -130,6 +142,7 @@ type EveningDetectiveServerServer interface { Login(context.Context, *LoginReq) (*LoginRsp, error) Refresh(context.Context, *RefreshReq) (*RefreshRsp, error) GetUsers(context.Context, *GetUsersReq) (*GetUsersRsp, error) + GetMe(context.Context, *GetMeReq) (*GetMeRsp, error) mustEmbedUnimplementedEveningDetectiveServerServer() } @@ -161,6 +174,9 @@ func (UnimplementedEveningDetectiveServerServer) Refresh(context.Context, *Refre func (UnimplementedEveningDetectiveServerServer) GetUsers(context.Context, *GetUsersReq) (*GetUsersRsp, error) { return nil, status.Error(codes.Unimplemented, "method GetUsers not implemented") } +func (UnimplementedEveningDetectiveServerServer) GetMe(context.Context, *GetMeReq) (*GetMeRsp, error) { + return nil, status.Error(codes.Unimplemented, "method GetMe not implemented") +} func (UnimplementedEveningDetectiveServerServer) mustEmbedUnimplementedEveningDetectiveServerServer() { } func (UnimplementedEveningDetectiveServerServer) testEmbeddedByValue() {} @@ -309,6 +325,24 @@ func _EveningDetectiveServer_GetUsers_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _EveningDetectiveServer_GetMe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EveningDetectiveServerServer).GetMe(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: EveningDetectiveServer_GetMe_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EveningDetectiveServerServer).GetMe(ctx, req.(*GetMeReq)) + } + return interceptor(ctx, in, info, handler) +} + // EveningDetectiveServer_ServiceDesc is the grpc.ServiceDesc for EveningDetectiveServer service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -344,6 +378,10 @@ var EveningDetectiveServer_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetUsers", Handler: _EveningDetectiveServer_GetUsers_Handler, }, + { + MethodName: "GetMe", + Handler: _EveningDetectiveServer_GetMe_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "main.proto",