From 15d606447b1113d820e9b3dceccaa298f865f519 Mon Sep 17 00:00:00 2001 From: Arnaud Delcasse Date: Sat, 28 Feb 2026 11:47:17 +0100 Subject: [PATCH] Notifications parameters and delete members --- grpcapi/groupsmanagement.pb.go | 295 +++++++++++++++++++--------- grpcapi/groupsmanagement.proto | 7 + grpcapi/groupsmanagement_grpc.pb.go | 38 ++++ grpcapi/grpcapi.go | 15 ++ handlers/groups.go | 7 + 5 files changed, 264 insertions(+), 98 deletions(-) diff --git a/grpcapi/groupsmanagement.pb.go b/grpcapi/groupsmanagement.pb.go index 8e2cbf1..a0050ee 100644 --- a/grpcapi/groupsmanagement.pb.go +++ b/grpcapi/groupsmanagement.pb.go @@ -671,6 +671,94 @@ func (x *DeleteGroupResponse) GetOk() bool { return false } +type UpdateGroupRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Group *Group `protobuf:"bytes,60,opt,name=group,proto3" json:"group,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateGroupRequest) Reset() { + *x = UpdateGroupRequest{} + mi := &file_groupsmanagement_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateGroupRequest) ProtoMessage() {} + +func (x *UpdateGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_groupsmanagement_proto_msgTypes[14] + 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 UpdateGroupRequest.ProtoReflect.Descriptor instead. +func (*UpdateGroupRequest) Descriptor() ([]byte, []int) { + return file_groupsmanagement_proto_rawDescGZIP(), []int{14} +} + +func (x *UpdateGroupRequest) GetGroup() *Group { + if x != nil { + return x.Group + } + return nil +} + +type UpdateGroupResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Group *Group `protobuf:"bytes,61,opt,name=group,proto3" json:"group,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdateGroupResponse) Reset() { + *x = UpdateGroupResponse{} + mi := &file_groupsmanagement_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateGroupResponse) ProtoMessage() {} + +func (x *UpdateGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_groupsmanagement_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 UpdateGroupResponse.ProtoReflect.Descriptor instead. +func (*UpdateGroupResponse) Descriptor() ([]byte, []int) { + return file_groupsmanagement_proto_rawDescGZIP(), []int{15} +} + +func (x *UpdateGroupResponse) GetGroup() *Group { + if x != nil { + return x.Group + } + return nil +} + type AddGroupMemberRequest struct { state protoimpl.MessageState `protogen:"open.v1"` Group *GroupMember `protobuf:"bytes,33,opt,name=group,proto3" json:"group,omitempty"` @@ -680,7 +768,7 @@ type AddGroupMemberRequest struct { func (x *AddGroupMemberRequest) Reset() { *x = AddGroupMemberRequest{} - mi := &file_groupsmanagement_proto_msgTypes[14] + mi := &file_groupsmanagement_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -692,7 +780,7 @@ func (x *AddGroupMemberRequest) String() string { func (*AddGroupMemberRequest) ProtoMessage() {} func (x *AddGroupMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[14] + mi := &file_groupsmanagement_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -705,7 +793,7 @@ func (x *AddGroupMemberRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddGroupMemberRequest.ProtoReflect.Descriptor instead. func (*AddGroupMemberRequest) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{14} + return file_groupsmanagement_proto_rawDescGZIP(), []int{16} } func (x *AddGroupMemberRequest) GetGroup() *GroupMember { @@ -724,7 +812,7 @@ type AddGroupMemberResponse struct { func (x *AddGroupMemberResponse) Reset() { *x = AddGroupMemberResponse{} - mi := &file_groupsmanagement_proto_msgTypes[15] + mi := &file_groupsmanagement_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -736,7 +824,7 @@ func (x *AddGroupMemberResponse) String() string { func (*AddGroupMemberResponse) ProtoMessage() {} func (x *AddGroupMemberResponse) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[15] + mi := &file_groupsmanagement_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -749,7 +837,7 @@ func (x *AddGroupMemberResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddGroupMemberResponse.ProtoReflect.Descriptor instead. func (*AddGroupMemberResponse) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{15} + return file_groupsmanagement_proto_rawDescGZIP(), []int{17} } func (x *AddGroupMemberResponse) GetGroup() *GroupMember { @@ -769,7 +857,7 @@ type GetGroupMemberRequest struct { func (x *GetGroupMemberRequest) Reset() { *x = GetGroupMemberRequest{} - mi := &file_groupsmanagement_proto_msgTypes[16] + mi := &file_groupsmanagement_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -781,7 +869,7 @@ func (x *GetGroupMemberRequest) String() string { func (*GetGroupMemberRequest) ProtoMessage() {} func (x *GetGroupMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[16] + mi := &file_groupsmanagement_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -794,7 +882,7 @@ func (x *GetGroupMemberRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupMemberRequest.ProtoReflect.Descriptor instead. func (*GetGroupMemberRequest) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{16} + return file_groupsmanagement_proto_rawDescGZIP(), []int{18} } func (x *GetGroupMemberRequest) GetId() string { @@ -820,7 +908,7 @@ type GetGroupMemberResponse struct { func (x *GetGroupMemberResponse) Reset() { *x = GetGroupMemberResponse{} - mi := &file_groupsmanagement_proto_msgTypes[17] + mi := &file_groupsmanagement_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -832,7 +920,7 @@ func (x *GetGroupMemberResponse) String() string { func (*GetGroupMemberResponse) ProtoMessage() {} func (x *GetGroupMemberResponse) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[17] + mi := &file_groupsmanagement_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -845,7 +933,7 @@ func (x *GetGroupMemberResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupMemberResponse.ProtoReflect.Descriptor instead. func (*GetGroupMemberResponse) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{17} + return file_groupsmanagement_proto_rawDescGZIP(), []int{19} } func (x *GetGroupMemberResponse) GetGroup() *GroupMember { @@ -864,7 +952,7 @@ type GetGroupsMemberRequest struct { func (x *GetGroupsMemberRequest) Reset() { *x = GetGroupsMemberRequest{} - mi := &file_groupsmanagement_proto_msgTypes[18] + mi := &file_groupsmanagement_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -876,7 +964,7 @@ func (x *GetGroupsMemberRequest) String() string { func (*GetGroupsMemberRequest) ProtoMessage() {} func (x *GetGroupsMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[18] + mi := &file_groupsmanagement_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -889,7 +977,7 @@ func (x *GetGroupsMemberRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupsMemberRequest.ProtoReflect.Descriptor instead. func (*GetGroupsMemberRequest) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{18} + return file_groupsmanagement_proto_rawDescGZIP(), []int{20} } func (x *GetGroupsMemberRequest) GetNamespaces() []string { @@ -908,7 +996,7 @@ type GetGroupsMemberResponse struct { func (x *GetGroupsMemberResponse) Reset() { *x = GetGroupsMemberResponse{} - mi := &file_groupsmanagement_proto_msgTypes[19] + mi := &file_groupsmanagement_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -920,7 +1008,7 @@ func (x *GetGroupsMemberResponse) String() string { func (*GetGroupsMemberResponse) ProtoMessage() {} func (x *GetGroupsMemberResponse) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[19] + mi := &file_groupsmanagement_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -933,7 +1021,7 @@ func (x *GetGroupsMemberResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupsMemberResponse.ProtoReflect.Descriptor instead. func (*GetGroupsMemberResponse) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{19} + return file_groupsmanagement_proto_rawDescGZIP(), []int{21} } func (x *GetGroupsMemberResponse) GetGroups() []*GroupMember { @@ -952,7 +1040,7 @@ type GetGroupsBatchMemberRequest struct { func (x *GetGroupsBatchMemberRequest) Reset() { *x = GetGroupsBatchMemberRequest{} - mi := &file_groupsmanagement_proto_msgTypes[20] + mi := &file_groupsmanagement_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -964,7 +1052,7 @@ func (x *GetGroupsBatchMemberRequest) String() string { func (*GetGroupsBatchMemberRequest) ProtoMessage() {} func (x *GetGroupsBatchMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[20] + mi := &file_groupsmanagement_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -977,7 +1065,7 @@ func (x *GetGroupsBatchMemberRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupsBatchMemberRequest.ProtoReflect.Descriptor instead. func (*GetGroupsBatchMemberRequest) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{20} + return file_groupsmanagement_proto_rawDescGZIP(), []int{22} } func (x *GetGroupsBatchMemberRequest) GetGroupids() []string { @@ -996,7 +1084,7 @@ type GetGroupsBatchMemberResponse struct { func (x *GetGroupsBatchMemberResponse) Reset() { *x = GetGroupsBatchMemberResponse{} - mi := &file_groupsmanagement_proto_msgTypes[21] + mi := &file_groupsmanagement_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1008,7 +1096,7 @@ func (x *GetGroupsBatchMemberResponse) String() string { func (*GetGroupsBatchMemberResponse) ProtoMessage() {} func (x *GetGroupsBatchMemberResponse) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[21] + mi := &file_groupsmanagement_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1021,7 +1109,7 @@ func (x *GetGroupsBatchMemberResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupsBatchMemberResponse.ProtoReflect.Descriptor instead. func (*GetGroupsBatchMemberResponse) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{21} + return file_groupsmanagement_proto_rawDescGZIP(), []int{23} } func (x *GetGroupsBatchMemberResponse) GetGroups() []*GroupMember { @@ -1040,7 +1128,7 @@ type SubscribeMemberRequest struct { func (x *SubscribeMemberRequest) Reset() { *x = SubscribeMemberRequest{} - mi := &file_groupsmanagement_proto_msgTypes[22] + mi := &file_groupsmanagement_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1052,7 +1140,7 @@ func (x *SubscribeMemberRequest) String() string { func (*SubscribeMemberRequest) ProtoMessage() {} func (x *SubscribeMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[22] + mi := &file_groupsmanagement_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1065,7 +1153,7 @@ func (x *SubscribeMemberRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeMemberRequest.ProtoReflect.Descriptor instead. func (*SubscribeMemberRequest) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{22} + return file_groupsmanagement_proto_rawDescGZIP(), []int{24} } func (x *SubscribeMemberRequest) GetGroup() *GroupMember { @@ -1084,7 +1172,7 @@ type SubscribeMemberResponse struct { func (x *SubscribeMemberResponse) Reset() { *x = SubscribeMemberResponse{} - mi := &file_groupsmanagement_proto_msgTypes[23] + mi := &file_groupsmanagement_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1096,7 +1184,7 @@ func (x *SubscribeMemberResponse) String() string { func (*SubscribeMemberResponse) ProtoMessage() {} func (x *SubscribeMemberResponse) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[23] + mi := &file_groupsmanagement_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1109,7 +1197,7 @@ func (x *SubscribeMemberResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeMemberResponse.ProtoReflect.Descriptor instead. func (*SubscribeMemberResponse) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{23} + return file_groupsmanagement_proto_rawDescGZIP(), []int{25} } func (x *SubscribeMemberResponse) GetGroup() *GroupMember { @@ -1128,7 +1216,7 @@ type UnsubscribeMemberRequest struct { func (x *UnsubscribeMemberRequest) Reset() { *x = UnsubscribeMemberRequest{} - mi := &file_groupsmanagement_proto_msgTypes[24] + mi := &file_groupsmanagement_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1140,7 +1228,7 @@ func (x *UnsubscribeMemberRequest) String() string { func (*UnsubscribeMemberRequest) ProtoMessage() {} func (x *UnsubscribeMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[24] + mi := &file_groupsmanagement_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1153,7 +1241,7 @@ func (x *UnsubscribeMemberRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeMemberRequest.ProtoReflect.Descriptor instead. func (*UnsubscribeMemberRequest) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{24} + return file_groupsmanagement_proto_rawDescGZIP(), []int{26} } func (x *UnsubscribeMemberRequest) GetId() string { @@ -1172,7 +1260,7 @@ type UnsubscribeMemberResponse struct { func (x *UnsubscribeMemberResponse) Reset() { *x = UnsubscribeMemberResponse{} - mi := &file_groupsmanagement_proto_msgTypes[25] + mi := &file_groupsmanagement_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1184,7 +1272,7 @@ func (x *UnsubscribeMemberResponse) String() string { func (*UnsubscribeMemberResponse) ProtoMessage() {} func (x *UnsubscribeMemberResponse) ProtoReflect() protoreflect.Message { - mi := &file_groupsmanagement_proto_msgTypes[25] + mi := &file_groupsmanagement_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1197,7 +1285,7 @@ func (x *UnsubscribeMemberResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeMemberResponse.ProtoReflect.Descriptor instead. func (*UnsubscribeMemberResponse) Descriptor() ([]byte, []int) { - return file_groupsmanagement_proto_rawDescGZIP(), []int{25} + return file_groupsmanagement_proto_rawDescGZIP(), []int{27} } func (x *UnsubscribeMemberResponse) GetId() string { @@ -1246,7 +1334,11 @@ const file_groupsmanagement_proto_rawDesc = "" + "\x12DeleteGroupRequest\x12\x0e\n" + "\x02id\x182 \x01(\tR\x02id\"%\n" + "\x13DeleteGroupResponse\x12\x0e\n" + - "\x02ok\x183 \x01(\bR\x02ok\";\n" + + "\x02ok\x183 \x01(\bR\x02ok\"2\n" + + "\x12UpdateGroupRequest\x12\x1c\n" + + "\x05group\x18< \x01(\v2\x06.GroupR\x05group\"3\n" + + "\x13UpdateGroupResponse\x12\x1c\n" + + "\x05group\x18= \x01(\v2\x06.GroupR\x05group\";\n" + "\x15AddGroupMemberRequest\x12\"\n" + "\x05group\x18! \x01(\v2\f.GroupMemberR\x05group\"<\n" + "\x16AddGroupMemberResponse\x12\"\n" + @@ -1273,7 +1365,7 @@ const file_groupsmanagement_proto_rawDesc = "" + "\x18UnsubscribeMemberRequest\x12\x0e\n" + "\x02id\x18, \x01(\tR\x02id\"+\n" + "\x19UnsubscribeMemberResponse\x12\x0e\n" + - "\x02id\x18- \x01(\tR\x02id2\xe0\x06\n" + + "\x02id\x18- \x01(\tR\x02id2\x9c\a\n" + "\x10GroupsManagement\x121\n" + "\bAddGroup\x12\x10.AddGroupRequest\x1a\x11.AddGroupResponse\"\x00\x121\n" + "\bGetGroup\x12\x10.GetGroupRequest\x1a\x11.GetGroupResponse\"\x00\x124\n" + @@ -1281,7 +1373,8 @@ const file_groupsmanagement_proto_rawDesc = "" + "\x0eGetGroupsBatch\x12\x16.GetGroupsBatchRequest\x1a\x17.GetGroupsBatchResponse\"\x00\x124\n" + "\tSubscribe\x12\x11.SubscribeRequest\x1a\x12.SubscribeResponse\"\x00\x12:\n" + "\vUnsubscribe\x12\x13.UnsubscribeRequest\x1a\x14.UnsubscribeResponse\"\x00\x12:\n" + - "\vDeleteGroup\x12\x13.DeleteGroupRequest\x1a\x14.DeleteGroupResponse\"\x00\x12C\n" + + "\vDeleteGroup\x12\x13.DeleteGroupRequest\x1a\x14.DeleteGroupResponse\"\x00\x12:\n" + + "\vUpdateGroup\x12\x13.UpdateGroupRequest\x1a\x14.UpdateGroupResponse\"\x00\x12C\n" + "\x0eAddGroupMember\x12\x16.AddGroupMemberRequest\x1a\x17.AddGroupMemberResponse\"\x00\x12C\n" + "\x0eGetGroupMember\x12\x16.GetGroupMemberRequest\x1a\x17.GetGroupMemberResponse\"\x00\x12F\n" + "\x0fGetGroupsMember\x12\x17.GetGroupsMemberRequest\x1a\x18.GetGroupsMemberResponse\"\x00\x12U\n" + @@ -1301,7 +1394,7 @@ func file_groupsmanagement_proto_rawDescGZIP() []byte { return file_groupsmanagement_proto_rawDescData } -var file_groupsmanagement_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_groupsmanagement_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_groupsmanagement_proto_goTypes = []any{ (*AddGroupRequest)(nil), // 0: AddGroupRequest (*AddGroupResponse)(nil), // 1: AddGroupResponse @@ -1317,65 +1410,71 @@ var file_groupsmanagement_proto_goTypes = []any{ (*UnsubscribeResponse)(nil), // 11: UnsubscribeResponse (*DeleteGroupRequest)(nil), // 12: DeleteGroupRequest (*DeleteGroupResponse)(nil), // 13: DeleteGroupResponse - (*AddGroupMemberRequest)(nil), // 14: AddGroupMemberRequest - (*AddGroupMemberResponse)(nil), // 15: AddGroupMemberResponse - (*GetGroupMemberRequest)(nil), // 16: GetGroupMemberRequest - (*GetGroupMemberResponse)(nil), // 17: GetGroupMemberResponse - (*GetGroupsMemberRequest)(nil), // 18: GetGroupsMemberRequest - (*GetGroupsMemberResponse)(nil), // 19: GetGroupsMemberResponse - (*GetGroupsBatchMemberRequest)(nil), // 20: GetGroupsBatchMemberRequest - (*GetGroupsBatchMemberResponse)(nil), // 21: GetGroupsBatchMemberResponse - (*SubscribeMemberRequest)(nil), // 22: SubscribeMemberRequest - (*SubscribeMemberResponse)(nil), // 23: SubscribeMemberResponse - (*UnsubscribeMemberRequest)(nil), // 24: UnsubscribeMemberRequest - (*UnsubscribeMemberResponse)(nil), // 25: UnsubscribeMemberResponse - (*Group)(nil), // 26: Group - (*GroupMember)(nil), // 27: GroupMember + (*UpdateGroupRequest)(nil), // 14: UpdateGroupRequest + (*UpdateGroupResponse)(nil), // 15: UpdateGroupResponse + (*AddGroupMemberRequest)(nil), // 16: AddGroupMemberRequest + (*AddGroupMemberResponse)(nil), // 17: AddGroupMemberResponse + (*GetGroupMemberRequest)(nil), // 18: GetGroupMemberRequest + (*GetGroupMemberResponse)(nil), // 19: GetGroupMemberResponse + (*GetGroupsMemberRequest)(nil), // 20: GetGroupsMemberRequest + (*GetGroupsMemberResponse)(nil), // 21: GetGroupsMemberResponse + (*GetGroupsBatchMemberRequest)(nil), // 22: GetGroupsBatchMemberRequest + (*GetGroupsBatchMemberResponse)(nil), // 23: GetGroupsBatchMemberResponse + (*SubscribeMemberRequest)(nil), // 24: SubscribeMemberRequest + (*SubscribeMemberResponse)(nil), // 25: SubscribeMemberResponse + (*UnsubscribeMemberRequest)(nil), // 26: UnsubscribeMemberRequest + (*UnsubscribeMemberResponse)(nil), // 27: UnsubscribeMemberResponse + (*Group)(nil), // 28: Group + (*GroupMember)(nil), // 29: GroupMember } var file_groupsmanagement_proto_depIdxs = []int32{ - 26, // 0: AddGroupRequest.group:type_name -> Group - 26, // 1: AddGroupResponse.group:type_name -> Group - 26, // 2: GetGroupResponse.group:type_name -> Group - 26, // 3: GetGroupsResponse.groups:type_name -> Group - 26, // 4: GetGroupsBatchResponse.groups:type_name -> Group - 27, // 5: AddGroupMemberRequest.group:type_name -> GroupMember - 27, // 6: AddGroupMemberResponse.group:type_name -> GroupMember - 27, // 7: GetGroupMemberResponse.group:type_name -> GroupMember - 27, // 8: GetGroupsMemberResponse.groups:type_name -> GroupMember - 27, // 9: GetGroupsBatchMemberResponse.groups:type_name -> GroupMember - 27, // 10: SubscribeMemberRequest.group:type_name -> GroupMember - 27, // 11: SubscribeMemberResponse.group:type_name -> GroupMember - 0, // 12: GroupsManagement.AddGroup:input_type -> AddGroupRequest - 2, // 13: GroupsManagement.GetGroup:input_type -> GetGroupRequest - 4, // 14: GroupsManagement.GetGroups:input_type -> GetGroupsRequest - 6, // 15: GroupsManagement.GetGroupsBatch:input_type -> GetGroupsBatchRequest - 8, // 16: GroupsManagement.Subscribe:input_type -> SubscribeRequest - 10, // 17: GroupsManagement.Unsubscribe:input_type -> UnsubscribeRequest - 12, // 18: GroupsManagement.DeleteGroup:input_type -> DeleteGroupRequest - 14, // 19: GroupsManagement.AddGroupMember:input_type -> AddGroupMemberRequest - 16, // 20: GroupsManagement.GetGroupMember:input_type -> GetGroupMemberRequest - 18, // 21: GroupsManagement.GetGroupsMember:input_type -> GetGroupsMemberRequest - 20, // 22: GroupsManagement.GetGroupsBatchMember:input_type -> GetGroupsBatchMemberRequest - 22, // 23: GroupsManagement.SubscribeMember:input_type -> SubscribeMemberRequest - 24, // 24: GroupsManagement.UnsubscribeMember:input_type -> UnsubscribeMemberRequest - 1, // 25: GroupsManagement.AddGroup:output_type -> AddGroupResponse - 3, // 26: GroupsManagement.GetGroup:output_type -> GetGroupResponse - 5, // 27: GroupsManagement.GetGroups:output_type -> GetGroupsResponse - 7, // 28: GroupsManagement.GetGroupsBatch:output_type -> GetGroupsBatchResponse - 9, // 29: GroupsManagement.Subscribe:output_type -> SubscribeResponse - 11, // 30: GroupsManagement.Unsubscribe:output_type -> UnsubscribeResponse - 13, // 31: GroupsManagement.DeleteGroup:output_type -> DeleteGroupResponse - 15, // 32: GroupsManagement.AddGroupMember:output_type -> AddGroupMemberResponse - 17, // 33: GroupsManagement.GetGroupMember:output_type -> GetGroupMemberResponse - 19, // 34: GroupsManagement.GetGroupsMember:output_type -> GetGroupsMemberResponse - 21, // 35: GroupsManagement.GetGroupsBatchMember:output_type -> GetGroupsBatchMemberResponse - 23, // 36: GroupsManagement.SubscribeMember:output_type -> SubscribeMemberResponse - 25, // 37: GroupsManagement.UnsubscribeMember:output_type -> UnsubscribeMemberResponse - 25, // [25:38] is the sub-list for method output_type - 12, // [12:25] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 28, // 0: AddGroupRequest.group:type_name -> Group + 28, // 1: AddGroupResponse.group:type_name -> Group + 28, // 2: GetGroupResponse.group:type_name -> Group + 28, // 3: GetGroupsResponse.groups:type_name -> Group + 28, // 4: GetGroupsBatchResponse.groups:type_name -> Group + 28, // 5: UpdateGroupRequest.group:type_name -> Group + 28, // 6: UpdateGroupResponse.group:type_name -> Group + 29, // 7: AddGroupMemberRequest.group:type_name -> GroupMember + 29, // 8: AddGroupMemberResponse.group:type_name -> GroupMember + 29, // 9: GetGroupMemberResponse.group:type_name -> GroupMember + 29, // 10: GetGroupsMemberResponse.groups:type_name -> GroupMember + 29, // 11: GetGroupsBatchMemberResponse.groups:type_name -> GroupMember + 29, // 12: SubscribeMemberRequest.group:type_name -> GroupMember + 29, // 13: SubscribeMemberResponse.group:type_name -> GroupMember + 0, // 14: GroupsManagement.AddGroup:input_type -> AddGroupRequest + 2, // 15: GroupsManagement.GetGroup:input_type -> GetGroupRequest + 4, // 16: GroupsManagement.GetGroups:input_type -> GetGroupsRequest + 6, // 17: GroupsManagement.GetGroupsBatch:input_type -> GetGroupsBatchRequest + 8, // 18: GroupsManagement.Subscribe:input_type -> SubscribeRequest + 10, // 19: GroupsManagement.Unsubscribe:input_type -> UnsubscribeRequest + 12, // 20: GroupsManagement.DeleteGroup:input_type -> DeleteGroupRequest + 14, // 21: GroupsManagement.UpdateGroup:input_type -> UpdateGroupRequest + 16, // 22: GroupsManagement.AddGroupMember:input_type -> AddGroupMemberRequest + 18, // 23: GroupsManagement.GetGroupMember:input_type -> GetGroupMemberRequest + 20, // 24: GroupsManagement.GetGroupsMember:input_type -> GetGroupsMemberRequest + 22, // 25: GroupsManagement.GetGroupsBatchMember:input_type -> GetGroupsBatchMemberRequest + 24, // 26: GroupsManagement.SubscribeMember:input_type -> SubscribeMemberRequest + 26, // 27: GroupsManagement.UnsubscribeMember:input_type -> UnsubscribeMemberRequest + 1, // 28: GroupsManagement.AddGroup:output_type -> AddGroupResponse + 3, // 29: GroupsManagement.GetGroup:output_type -> GetGroupResponse + 5, // 30: GroupsManagement.GetGroups:output_type -> GetGroupsResponse + 7, // 31: GroupsManagement.GetGroupsBatch:output_type -> GetGroupsBatchResponse + 9, // 32: GroupsManagement.Subscribe:output_type -> SubscribeResponse + 11, // 33: GroupsManagement.Unsubscribe:output_type -> UnsubscribeResponse + 13, // 34: GroupsManagement.DeleteGroup:output_type -> DeleteGroupResponse + 15, // 35: GroupsManagement.UpdateGroup:output_type -> UpdateGroupResponse + 17, // 36: GroupsManagement.AddGroupMember:output_type -> AddGroupMemberResponse + 19, // 37: GroupsManagement.GetGroupMember:output_type -> GetGroupMemberResponse + 21, // 38: GroupsManagement.GetGroupsMember:output_type -> GetGroupsMemberResponse + 23, // 39: GroupsManagement.GetGroupsBatchMember:output_type -> GetGroupsBatchMemberResponse + 25, // 40: GroupsManagement.SubscribeMember:output_type -> SubscribeMemberResponse + 27, // 41: GroupsManagement.UnsubscribeMember:output_type -> UnsubscribeMemberResponse + 28, // [28:42] is the sub-list for method output_type + 14, // [14:28] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_groupsmanagement_proto_init() } @@ -1391,7 +1490,7 @@ func file_groupsmanagement_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_groupsmanagement_proto_rawDesc), len(file_groupsmanagement_proto_rawDesc)), NumEnums: 0, - NumMessages: 26, + NumMessages: 28, NumExtensions: 0, NumServices: 1, }, diff --git a/grpcapi/groupsmanagement.proto b/grpcapi/groupsmanagement.proto index b340839..db2d49b 100644 --- a/grpcapi/groupsmanagement.proto +++ b/grpcapi/groupsmanagement.proto @@ -15,6 +15,7 @@ service GroupsManagement { rpc Subscribe(SubscribeRequest) returns (SubscribeResponse) {} rpc Unsubscribe(UnsubscribeRequest) returns (UnsubscribeResponse) {} rpc DeleteGroup(DeleteGroupRequest) returns (DeleteGroupResponse) {} + rpc UpdateGroup(UpdateGroupRequest) returns (UpdateGroupResponse) {} //////////member rpc AddGroupMember(AddGroupMemberRequest) returns (AddGroupMemberResponse) {} rpc GetGroupMember(GetGroupMemberRequest) returns (GetGroupMemberResponse) {} @@ -70,6 +71,12 @@ message DeleteGroupRequest { message DeleteGroupResponse { bool ok = 51; } +message UpdateGroupRequest { + Group group = 60; +} +message UpdateGroupResponse { + Group group = 61; +} //////////////////member message AddGroupMemberRequest { diff --git a/grpcapi/groupsmanagement_grpc.pb.go b/grpcapi/groupsmanagement_grpc.pb.go index 6c153c0..93402ed 100644 --- a/grpcapi/groupsmanagement_grpc.pb.go +++ b/grpcapi/groupsmanagement_grpc.pb.go @@ -28,6 +28,7 @@ const ( GroupsManagement_Subscribe_FullMethodName = "/GroupsManagement/Subscribe" GroupsManagement_Unsubscribe_FullMethodName = "/GroupsManagement/Unsubscribe" GroupsManagement_DeleteGroup_FullMethodName = "/GroupsManagement/DeleteGroup" + GroupsManagement_UpdateGroup_FullMethodName = "/GroupsManagement/UpdateGroup" GroupsManagement_AddGroupMember_FullMethodName = "/GroupsManagement/AddGroupMember" GroupsManagement_GetGroupMember_FullMethodName = "/GroupsManagement/GetGroupMember" GroupsManagement_GetGroupsMember_FullMethodName = "/GroupsManagement/GetGroupsMember" @@ -47,6 +48,7 @@ type GroupsManagementClient interface { Subscribe(ctx context.Context, in *SubscribeRequest, opts ...grpc.CallOption) (*SubscribeResponse, error) Unsubscribe(ctx context.Context, in *UnsubscribeRequest, opts ...grpc.CallOption) (*UnsubscribeResponse, error) DeleteGroup(ctx context.Context, in *DeleteGroupRequest, opts ...grpc.CallOption) (*DeleteGroupResponse, error) + UpdateGroup(ctx context.Context, in *UpdateGroupRequest, opts ...grpc.CallOption) (*UpdateGroupResponse, error) // ////////member AddGroupMember(ctx context.Context, in *AddGroupMemberRequest, opts ...grpc.CallOption) (*AddGroupMemberResponse, error) GetGroupMember(ctx context.Context, in *GetGroupMemberRequest, opts ...grpc.CallOption) (*GetGroupMemberResponse, error) @@ -134,6 +136,16 @@ func (c *groupsManagementClient) DeleteGroup(ctx context.Context, in *DeleteGrou return out, nil } +func (c *groupsManagementClient) UpdateGroup(ctx context.Context, in *UpdateGroupRequest, opts ...grpc.CallOption) (*UpdateGroupResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(UpdateGroupResponse) + err := c.cc.Invoke(ctx, GroupsManagement_UpdateGroup_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *groupsManagementClient) AddGroupMember(ctx context.Context, in *AddGroupMemberRequest, opts ...grpc.CallOption) (*AddGroupMemberResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(AddGroupMemberResponse) @@ -205,6 +217,7 @@ type GroupsManagementServer interface { Subscribe(context.Context, *SubscribeRequest) (*SubscribeResponse, error) Unsubscribe(context.Context, *UnsubscribeRequest) (*UnsubscribeResponse, error) DeleteGroup(context.Context, *DeleteGroupRequest) (*DeleteGroupResponse, error) + UpdateGroup(context.Context, *UpdateGroupRequest) (*UpdateGroupResponse, error) // ////////member AddGroupMember(context.Context, *AddGroupMemberRequest) (*AddGroupMemberResponse, error) GetGroupMember(context.Context, *GetGroupMemberRequest) (*GetGroupMemberResponse, error) @@ -243,6 +256,9 @@ func (UnimplementedGroupsManagementServer) Unsubscribe(context.Context, *Unsubsc func (UnimplementedGroupsManagementServer) DeleteGroup(context.Context, *DeleteGroupRequest) (*DeleteGroupResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteGroup not implemented") } +func (UnimplementedGroupsManagementServer) UpdateGroup(context.Context, *UpdateGroupRequest) (*UpdateGroupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateGroup not implemented") +} func (UnimplementedGroupsManagementServer) AddGroupMember(context.Context, *AddGroupMemberRequest) (*AddGroupMemberResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddGroupMember not implemented") } @@ -408,6 +424,24 @@ func _GroupsManagement_DeleteGroup_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _GroupsManagement_UpdateGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupsManagementServer).UpdateGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupsManagement_UpdateGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupsManagementServer).UpdateGroup(ctx, req.(*UpdateGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _GroupsManagement_AddGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AddGroupMemberRequest) if err := dec(in); err != nil { @@ -551,6 +585,10 @@ var GroupsManagement_ServiceDesc = grpc.ServiceDesc{ MethodName: "DeleteGroup", Handler: _GroupsManagement_DeleteGroup_Handler, }, + { + MethodName: "UpdateGroup", + Handler: _GroupsManagement_UpdateGroup_Handler, + }, { MethodName: "AddGroupMember", Handler: _GroupsManagement_AddGroupMember_Handler, diff --git a/grpcapi/grpcapi.go b/grpcapi/grpcapi.go index 07729e7..36dcaf5 100644 --- a/grpcapi/grpcapi.go +++ b/grpcapi/grpcapi.go @@ -104,6 +104,21 @@ func (s GroupsManagementServerImpl) Unsubscribe(ctx context.Context, req *Unsubs }, nil } +func (s GroupsManagementServerImpl) UpdateGroup(ctx context.Context, req *UpdateGroupRequest) (*UpdateGroupResponse, error) { + g := req.Group.ToStorageType() + group, err := s.handler.UpdateGroup(g) + if err != nil { + fmt.Println(err) + return nil, status.Errorf(codes.Internal, "group update failed : %v", err) + } + response, err := GroupFromStorageType(group) + if err != nil { + fmt.Println(err) + return nil, status.Errorf(codes.Internal, "issue while retrieving group : %v", err) + } + return &UpdateGroupResponse{Group: response}, nil +} + func (s GroupsManagementServerImpl) DeleteGroup(ctx context.Context, req *DeleteGroupRequest) (*DeleteGroupResponse, error) { err := s.handler.DeleteGroup(req.Id) if err != nil { diff --git a/handlers/groups.go b/handlers/groups.go index edaf177..b6951de 100644 --- a/handlers/groups.go +++ b/handlers/groups.go @@ -81,6 +81,13 @@ func (h GroupsManagementHandler) Unsubscribe(groupid string, subscriber string) return nil } +func (h GroupsManagementHandler) UpdateGroup(group storage.Group) (*storage.Group, error) { + if err := h.storage.UpdateGroup(group); err != nil { + return nil, err + } + return &group, nil +} + func (h GroupsManagementHandler) DeleteGroup(id string) error { return h.storage.DeleteGroup(id) }