diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 4e9c2aa99..0b0242777 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -28,15 +28,27 @@ func GetGroups(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + utils.CopyStructFields(&reqPb.Pagination, req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroups(context.Background(), &reqPb) - fmt.Println(respPb) if err != nil { log.NewError("s", "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } + for _, v := range respPb.GroupInfo { + resp.Groups = append(resp.Groups, cms_api_struct.GroupResponse{ + GroupName: v.GroupName, + GroupID: v.GroupID, + GroupMasterName: v.OwnerUserID, + GroupMasterId: v.OwnerUserID, + CreateTime: (utils.UnixSecondToTime(int64(v.CreateTime))).String(), + IsBanChat: false, + IsBanPrivateChat: false, + ProfilePhoto: v.FaceURL, + }) + } openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -52,16 +64,28 @@ func GetGroup(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } - utils.CopyStructFields(&reqPb, req) + reqPb.GroupName = req.GroupName + fmt.Println(reqPb) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroup(context.Background(), &reqPb) - fmt.Println(respPb) if err != nil { log.NewError("s", "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } + for _, v := range respPb.GroupInfo { + resp.Groups = append(resp.Groups, cms_api_struct.GroupResponse{ + GroupName: v.GroupName, + GroupID: v.GroupID, + GroupMasterName: v.OwnerUserID, + GroupMasterId: v.OwnerUserID, + CreateTime: (utils.UnixSecondToTime(int64(v.CreateTime))).String(), + IsBanChat: false, + IsBanPrivateChat: false, + ProfilePhoto: v.FaceURL, + }) + } openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -86,32 +110,67 @@ func CreateGroup(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } + fmt.Println(respPb) openIMHttp.RespHttp200(c, constant.OK, resp) } func BanGroupChat(c *gin.Context) { var ( req cms_api_struct.BanGroupChatRequest - resp cms_api_struct.BanGroupChatResponse + reqPb pbGroup.BanGroupChatReq ) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "ShouldBindQuery failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.GroupId = req.GroupId + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.BanGroupChat(context.Background(), &reqPb) + if err != nil { + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) } func BanPrivateChat(c *gin.Context) { var ( req cms_api_struct.BanPrivateChatRequest - resp cms_api_struct.BanPrivateChatResponse + reqPb pbGroup.BanPrivateChatReq ) - + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.GroupId = req.GroupId + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.BanPrivateChat(context.Background(), &reqPb) + if err != nil { + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) } -func SearchGroupsMember(c *gin.Context) { - +func GetGroupsMember(c *gin.Context) { + var ( + req cms_api_struct.GetGroupMembersRequest + _ cms_api_struct.GetGroupMembersResponse + ) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } } -func AddUsers(c *gin.Context) { - -} func InquireMember(c *gin.Context) { @@ -121,30 +180,16 @@ func InquireGroup(c *gin.Context) { } -func AddGroupMember(c *gin.Context) { - -} func AddMembers(c *gin.Context) { } -func SetMaster(c *gin.Context) { - -} - -func BlockUser(c *gin.Context) { - -} func RemoveUser(c *gin.Context) { } -func BanPrivateChat(c *gin.Context) { - -} - func Withdraw(c *gin.Context) { } diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 01f5e60ae..fc5d4647b 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -55,7 +55,7 @@ func NewGinRouter() *gin.Engine { messageRouterGroup.GET("/search_message_by_group", message.SearchMessageByGroup) messageRouterGroup.POST("/withdraw_message", message.Withdraw) } - groupRouterGroup := router.Group("/groups") + groupRouterGroup := router.Group("/group") { groupRouterGroup.GET("/get_groups", group.GetGroups) groupRouterGroup.GET("/get_group", group.GetGroup) @@ -70,6 +70,7 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.POST("/ban_private_chat", group.BanPrivateChat) groupRouterGroup.POST("/withdraw_message", group.Withdraw) groupRouterGroup.POST("/search_group_message", group.SearchMessage) + groupRouterGroup.POST("/ban_group_chat", group.BanGroupChat) } userRouterGroup := router.Group("/user") { @@ -81,6 +82,7 @@ func NewGinRouter() *gin.Engine { userRouterGroup.POST("/unblock_user", user.UnblockUser) userRouterGroup.POST("/block_user", user.BlockUser) userRouterGroup.GET("/get_block_users", user.GetBlockUsers) + userRouterGroup.GET("/get_block_user", user.GetBlockUser) } return baseRouter } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index e3678e20d..02fe268a2 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -12,11 +12,9 @@ import ( "Open_IM/pkg/utils" "context" "fmt" + "github.com/gin-gonic/gin" "net/http" "strings" - "time" - - "github.com/gin-gonic/gin" ) func GetUser(c *gin.Context) { @@ -129,7 +127,6 @@ func AddUser(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } - fmt.Println(time.Now().String()) utils.CopyStructFields(&reqPb, &req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) @@ -174,10 +171,10 @@ func UnblockUser(c *gin.Context) { ) if err := c.ShouldBind(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + openIMHttp.RespHttp200(c, constant.ErrArgs, resp) return } - fmt.Println(reqPb, req) + utils.CopyStructFields(&reqPb, &req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) _, err := client.UnBlockUser(context.Background(), &reqPb) @@ -210,9 +207,46 @@ func GetBlockUsers(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrServer, resp) return } - utils.CopyStructFields(&resp.BlockUsers, respPb.User) + for _, v := range respPb.BlockUsers{ + resp.BlockUsers = append(resp.BlockUsers, cms_api_struct.BlockUser{ + UserResponse: cms_api_struct.UserResponse{ + UserId:v.User.UserId, + ProfilePhoto:v.User.ProfilePhoto, + Nickname: v.User.Nickname, + IsBlock: v.User.IsBlock, + CreateTime: v.User.CreateTime, + }, + BeginDisableTime: v.BeginDisableTime, + EndDisableTime: v.EndDisableTime, + }) + } resp.BlockUserNum = int(respPb.BlockUserNum) resp.ShowNumber = int(respPb.Pagination.ShowNumber) resp.CurrentPage = int(respPb.Pagination.CurrentPage) openIMHttp.RespHttp200(c, constant.OK, resp) } + + +func GetBlockUser(c *gin.Context) { + var ( + req cms_api_struct.GetBlockUserRequest + resp cms_api_struct.GetBlockUserResponse + reqPb pb.GetBlockUserReq + ) + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetBlockUser(context.Background(), &reqPb) + if err != nil { + openIMHttp.RespHttp200(c, constant.ErrServer, resp) + return + } + resp.EndDisableTime = respPb.BlockUser.EndDisableTime + resp.BeginDisableTime = respPb.BlockUser.BeginDisableTime + utils.CopyStructFields(&resp, respPb.BlockUser.User) + openIMHttp.RespHttp200(c, constant.OK, resp) +} \ No newline at end of file diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 08ba7be23..ecd0b4d27 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -641,15 +641,24 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pbGroup.GetGroupResp, error) { log.NewInfo(req.OperationID, "GetGroup ", req.String()) - group, err := imdb.GetGroupByName(req.GroupName) + resp := &pbGroup.GetGroupResp{ + GroupInfo: []*open_im_sdk.GroupInfo{}, + } + groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { return nil, err } - resp := &pbGroup.GetGroupResp{ - GroupInfo: &open_im_sdk.GroupInfo{ - }, + for _, v:= range groups { + resp.GroupInfo = append(resp.GroupInfo, &open_im_sdk.GroupInfo{ + GroupID: v.GroupID, + GroupName: v.GroupName, + FaceURL: v.FaceUrl, + OwnerUserID: v.CreatorUserID, + Status: v.Status, + CreatorUserID: v.CreatorUserID, + }) } - utils.CopyStructFields(resp.GroupInfo, group) + utils.CopyStructFields(resp.GroupInfo, groups) return resp, nil } @@ -660,9 +669,54 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* return nil, err } resp := &pbGroup.GetGroupsResp{ - GroupInfo: []*open_im_sdk.GroupInfo, + GroupInfo: []*open_im_sdk.GroupInfo{}, + } + for _, v:= range groups { + resp.GroupInfo = append(resp.GroupInfo, &open_im_sdk.GroupInfo{ + GroupID: v.GroupID, + GroupName: v.GroupName, + FaceURL: v.FaceUrl, + OwnerUserID: v.CreatorUserID, + Status: v.Status, + CreatorUserID: v.CreatorUserID, + }) } utils.CopyStructFields(resp.GroupInfo, groups) return resp, nil } +func (s *groupServer) BanGroupChat(_ context.Context, req *pbGroup.BanGroupChatReq) (*pbGroup.BanGroupChatResp, error){ + log.NewInfo(req.OperationID, "BanGroupChat ", req.String()) + resp := &pbGroup.BanGroupChatResp{} + if err := imdb.BanGroupChat(req.GroupId); err != nil { + return resp, err + } + return resp, nil +} + +func (s *groupServer) BanPrivateChat(_ context.Context, req *pbGroup.BanPrivateChatReq) (*pbGroup.BanPrivateChatResp, error) { + log.NewInfo(req.OperationID, "BanPrivateChat ", req.String()) + resp := &pbGroup.BanPrivateChatResp{} + if err := imdb.BanPrivateChat(req.GroupId); err != nil { + return resp, err + } + return resp, nil +} + +func (s *groupServer) DeleteGroup(_ context.Context, req *pbGroup.DeleteGroupReq) (*pbGroup.DeleteGroupResp, error) { + log.NewInfo(req.OperationID, "DeleteGroup ", req.String()) + resp := &pbGroup.DeleteGroupResp{} + if err := imdb.DeleteGroup(req.GroupId); err != nil { + return resp, err + } + return resp, nil +} + +func (s *groupServer) SetMaster(_ context.Context, req *pbGroup.SetMasterReq) (*pbGroup.SetMasterResp, error) { + log.NewInfo(req.OperationID, "DeleteGroup ", req.String()) + resp := &pbGroup.SetMasterResp{} + if err := imdb.SetGroupMaster(req.UserId, req.GroupId); err != nil { + return resp, err + } + return resp, nil +} diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index d317d53c5..cde774647 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -316,6 +316,7 @@ func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (* resp := &pbUser.BlockUserResp{} err := imdb.BlockUser(req.UserId, req.EndDisableTime) if err != nil { + fmt.Println(err) return resp, constant.ErrDB } return resp, nil @@ -323,7 +324,6 @@ func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (* func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq) (*pbUser.UnBlockUserResp, error) { log.NewInfo(req.OperationID, "UnBlockUser args ", req.String()) - fmt.Println(req.UserId) resp := &pbUser.UnBlockUserResp{} err := imdb.UnBlockUser(req.UserId) if err != nil { @@ -332,10 +332,12 @@ func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq return resp, nil } +//func (s *userServer) GetBlockUser(ctx context.Context, req *pbUser.GetBlockUserReq) + func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUsersReq) (*pbUser.GetBlockUsersResp, error) { log.NewInfo(req.OperationID, "GetBlockUsers args ", req.String()) resp := &pbUser.GetBlockUsersResp{} - blockUserIds, err := imdb.GetBlockUsersID(req.Pagination.ShowNumber, req.Pagination.PageNumber) + blockUsers, err := imdb.GetBlockUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { return resp, constant.ErrDB } @@ -344,21 +346,35 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser return resp, constant.ErrDB } resp.BlockUserNum = int32(usersNum) - blockUsers, err := imdb.GetBlockUsers(blockUserIds) - if err != nil { - return resp, constant.ErrDB - } for _, v := range blockUsers { - resp.User = append(resp.User, &pbUser.User{ - ProfilePhoto: v.FaceURL, - Nickname: v.Nickname, - UserId: v.UserID, - CreateTime: v.CreateTime.String(), - IsBlock: true, + resp.BlockUsers = append(resp.BlockUsers, &pbUser.BlockUser{ + User: &pbUser.User{ + ProfilePhoto: v.User.FaceURL, + Nickname: v.User.Nickname, + UserId: v.User.UserID, + IsBlock: true, + }, + BeginDisableTime: (v.BeginDisableTime).String(), + EndDisableTime: (v.EndDisableTime).String(), }) } resp.Pagination = &sdkws.ResponsePagination{} resp.Pagination.ShowNumber = req.Pagination.ShowNumber resp.Pagination.CurrentPage = req.Pagination.PageNumber + fmt.Println(resp) return resp, nil } + +func (s *userServer) GetBlockUser(_ context.Context, req *pbUser.GetBlockUserReq) (*pbUser.GetBlockUserResp, error) { + log.NewInfo(req.OperationID, "GetBlockUser args ", req.String()) + resp := &pbUser.GetBlockUserResp{} + user, err := imdb.GetBlockUserById(req.UserId) + if err != nil{ + return resp, err + } + resp.BlockUser = &pbUser.BlockUser{} + resp.BlockUser.BeginDisableTime = (user.BeginDisableTime).String() + resp.BlockUser.EndDisableTime = (user.EndDisableTime).String() + return resp, nil + +} \ No newline at end of file diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index ac8c0d46a..86ef86467 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -8,14 +8,18 @@ type GroupResponse struct { CreateTime string `json:"create_time"` IsBanChat bool `json:"is_ban_chat"` IsBanPrivateChat bool `json:"is_ban_private_chat"` + ProfilePhoto string `json:"profile_photo"` } type GetGroupRequest struct { - GroupName string `form:"group_name"` + GroupName string `form:"group_name" binding:"required"` + RequestPagination } type GetGroupResponse struct { - GroupResponse + Groups []GroupResponse `json:"groups"` + GroupNums int `json:"group_nums"` + ResponsePagination } type GetGroupsRequest struct { @@ -66,8 +70,9 @@ type DeleteGroupRequest struct { type DeleteGroupResponse struct { } -type GetGroupMemberRequest struct { +type GetGroupMembersRequest struct { GroupId string `json:"group_id"` + RequestPagination } type GroupMemberResponse struct { @@ -77,7 +82,7 @@ type GroupMemberResponse struct { JoinTime string `json:"join_time"` } -type GetGroupMemberResponse struct { +type GetGroupMembersResponse struct { GroupMemberList []GroupMemberResponse `json:"group_member_list"` GroupMemberNums int `json:"group_member_nums"` ResponsePagination diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index 38d73dfaa..875e999ea 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -4,7 +4,7 @@ type UserResponse struct { ProfilePhoto string `json:"profile_photo"` Nickname string `json:"nick_name"` UserId string `json:"user_id"` - CreateTime string `json:"create_time"` + CreateTime string `json:"create_time,omitempty"` IsBlock bool `json:"is_block"` } @@ -49,6 +49,12 @@ type AddUserRequest struct { type AddUserResponse struct { } +type BlockUser struct { + UserResponse + BeginDisableTime string `json:"begin_disable_time"` + EndDisableTime string `json:"end_disable_time"` +} + type BlockUserRequest struct { UserId string `json:"user_id" binding:"required"` EndDisableTime string `json:"end_disable_time" binding:"required"` @@ -69,7 +75,15 @@ type GetBlockUsersRequest struct { } type GetBlockUsersResponse struct { - BlockUsers []UserResponse `json:"block_users"` + BlockUsers []BlockUser `json:"block_users"` BlockUserNum int `json:"block_user_num"` ResponsePagination } + +type GetBlockUserRequest struct { + UserId string `form:"user_id" binding:"required"` +} + +type GetBlockUserResponse struct { + BlockUser +} \ No newline at end of file diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 6e32cea2e..2b8bfc985 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -107,6 +107,13 @@ const ( IsUnreadCount = "unreadCount" IsConversationUpdate = "conversationUpdate" IsSenderSync = "senderSync" + + //GroupStatus + GroupOk = 0 + GroupBanChat = 1 + GroupDisband = 2 + GroupBaned = 3 + GroupBanPrivateChat = 4 ) var ContentType2PushContent = map[int64]string{ @@ -139,3 +146,17 @@ const ( ) const FriendAcceptTip = "You have successfully become friends, so start chatting" + +func GroupIsBanChat(status int32) bool { + if status != GroupBanChat { + return false + } + return true +} + +func GroupIsBanPrivateChat(status int32) bool { + if status != GroupBanPrivateChat { + return false + } + return true +} \ No newline at end of file diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 0795769f5..094aecc9a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -1,6 +1,7 @@ package im_mysql_model import ( + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" "time" @@ -53,19 +54,20 @@ func SetGroupInfo(groupInfo db.Group) error { if err != nil { return err } + dbConn.LogMode(true) err = dbConn.Table("groups").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error return err } -func GetGroupByName(groupName string) (db.Group, error) { +func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]db.Group, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - var group db.Group + var groups []db.Group if err != nil { - return group, err + return groups, err } dbConn.LogMode(true) - err = dbConn.Table("groups").Where("group_id=?", groupName).Find(&group).Error - return group, err + err = dbConn.Table("groups").Where("name=?", groupName).Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error + return groups, err } func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { @@ -75,8 +77,58 @@ func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { return groups, err } dbConn.LogMode(true) - err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error - if err != nil { + if err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error; err != nil { return groups, err } + return groups, nil +} + +func BanGroupChat(groupId string) error { + var group db.Group + group.Status = constant.GroupBanChat + if err := SetGroupInfo(group); err != nil { + return err + } + return nil +} + +func BanPrivateChat(groupId string) error { + var group db.Group + group.Status = constant.GroupBanPrivateChat + if err := SetGroupInfo(group); err != nil { + return err + } + return nil +} + +func DeleteGroup(groupId string) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(true) + var group db.Group + if err := dbConn.Table("groups").Where("").Delete(&group).Error; err != nil { + return err + } + return nil +} + +func SetGroupMaster(userId, groupId string) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(true) + groupMember := db.GroupMember{ + UserID: userId, + GroupID: groupId, + } + updateInfo := db.GroupMember{ + RoleLevel:constant.GroupOwner, + } + if err := dbConn.Find(&groupMember).Update(updateInfo).Error; err != nil { + return err + } + return nil } \ No newline at end of file diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index b1be24d8b..e70a94e4f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -180,6 +180,10 @@ func UserIsBlock(userId string) (bool, error) { } func BlockUser(userId, endDisableTime string) error { + user, err := GetUserByUserID(userId) + if err != nil || user.UserID=="" { + return err + } dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -191,18 +195,18 @@ func BlockUser(userId, endDisableTime string) error { if end.Before(time.Now()) { return constant.ErrDB } - var user db.BlackList - dbConn.Table("black_list").Where("uid=?", userId).First(&user) - if user.UserId != "" { - dbConn.Model(&user).Where("uid=?", user.UserId).Update("end_disable_time", end) + var blockUser db.BlackList + dbConn.Table("black_list").Where("uid=?", userId).First(&blockUser) + if blockUser.UserId != "" { + dbConn.Model(&blockUser).Where("uid=?", blockUser.UserId).Update("end_disable_time", end) return nil } - user = db.BlackList{ + blockUser = db.BlackList{ UserId: userId, BeginDisableTime: time.Now(), EndDisableTime: end, } - result := dbConn.Create(&user) + result := dbConn.Create(&blockUser) return result.Error } @@ -212,38 +216,64 @@ func UnBlockUser(userId string) error { return err } dbConn.LogMode(true) - fmt.Println(userId) result := dbConn.Where("uid=?", userId).Delete(&db.BlackList{}) return result.Error } -func GetBlockUsersID(showNumber, pageNumber int32) ([]string, error) { +type BlockUserInfo struct { + User db.Users + BeginDisableTime time.Time + EndDisableTime time.Time +} + +func GetBlockUserById(userId string) (BlockUserInfo, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - var blockUsers []db.BlackList - var blockUserIds []string + var blockUserInfo BlockUserInfo + blockUser := db.BlackList{ + UserId:userId, + } if err != nil { - return blockUserIds, err + return blockUserInfo, err + } + if err = dbConn.Find(&blockUser).Error; err != nil{ + return blockUserInfo, err + } + user := db.Users{ + UserID:blockUser.UserId, + } + if err := dbConn.Find(&user).Error; err != nil { + return blockUserInfo, err + } + blockUserInfo.User.UserID = user.UserID + blockUserInfo.User.FaceURL = user.UserID + blockUserInfo.User.Nickname = user.Nickname + return blockUserInfo, nil +} + +func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var blockUserInfos []BlockUserInfo + var blockUsers []db.BlackList + if err != nil { + return blockUserInfos, err } dbConn.LogMode(true) err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&blockUsers).Error - if err != nil { - return blockUserIds, err + for _, blockUser := range blockUsers { + var user db.Users + if err := dbConn.Table("users").Where("user_id=?", blockUser.UserId).First(&user).Error; err == nil{ + blockUserInfos = append(blockUserInfos, BlockUserInfo{ + User: db.Users{ + UserID: user.UserID, + Nickname: user.Nickname, + FaceURL: user.FaceURL, + }, + BeginDisableTime: blockUser.BeginDisableTime, + EndDisableTime: blockUser.EndDisableTime, + }) + } } - for _, v := range blockUsers { - blockUserIds = append(blockUserIds, v.UserId) - } - return blockUserIds, err -} - -func GetBlockUsers(userIds []string) ([]db.Users, error){ - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - var blockUsers []db.Users - if err != nil { - return blockUsers, err - } - dbConn.LogMode(true) - dbConn.Find(&blockUsers,userIds) - return blockUsers, err + return blockUserInfos, nil } func GetBlockUsersNumCount() (int, error) { diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 01936f9d7..74af41d22 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: group/group.proto package group @@ -2007,8 +2007,9 @@ type GetGroupReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } func (x *GetGroupReq) Reset() { @@ -2050,6 +2051,13 @@ func (x *GetGroupReq) GetGroupName() string { return "" } +func (x *GetGroupReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil +} + func (x *GetGroupReq) GetOperationID() string { if x != nil { return x.OperationID @@ -2062,7 +2070,7 @@ type GetGroupResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + GroupInfo []*sdk_ws.GroupInfo `protobuf:"bytes,1,rep,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` } func (x *GetGroupResp) Reset() { @@ -2097,7 +2105,7 @@ func (*GetGroupResp) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{32} } -func (x *GetGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { +func (x *GetGroupResp) GetGroupInfo() []*sdk_ws.GroupInfo { if x != nil { return x.GroupInfo } @@ -2901,152 +2909,156 @@ var file_group_group_proto_rawDesc = []byte{ 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x4d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1c, - 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4a, - 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, - 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x4d, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, - 0x12, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x4f, 0x0a, 0x11, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, + 0x93, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, + 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, + 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4a, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x0d, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4d, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x12, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4f, 0x0a, 0x11, 0x42, 0x61, + 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x14, 0x0a, 0x12, 0x42, + 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x14, 0x0a, 0x12, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x65, - 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x0f, - 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, - 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x32, 0xa5, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, - 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x32, 0xa5, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, - 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, - 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, + 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, + 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, + 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, - 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, - 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, - 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, - 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x42, - 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0e, - 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x12, 0x18, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, + 0x74, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x74, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, + 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, - 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, - 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x65, 0x74, + 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, + 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, + 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3130,54 +3142,55 @@ var file_group_group_proto_depIdxs = []int32{ 44, // 14: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo 23, // 15: group.InviteUserToGroupResp.Id2ResultList:type_name -> group.Id2Result 46, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 44, // 17: group.GetGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 47, // 18: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination - 44, // 19: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo - 2, // 20: group.group.createGroup:input_type -> group.CreateGroupReq - 12, // 21: group.group.joinGroup:input_type -> group.JoinGroupReq - 16, // 22: group.group.quitGroup:input_type -> group.QuitGroupReq - 4, // 23: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq - 6, // 24: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq - 8, // 25: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq - 10, // 26: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq - 14, // 27: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq - 18, // 28: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq - 20, // 29: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq - 22, // 30: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq - 25, // 31: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq - 27, // 32: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq - 29, // 33: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq - 31, // 34: group.group.GetGroup:input_type -> group.GetGroupReq - 33, // 35: group.group.GetGroups:input_type -> group.GetGroupsReq - 36, // 36: group.group.BanGroupChat:input_type -> group.BanGroupChatReq - 38, // 37: group.group.BanPrivateChat:input_type -> group.BanPrivateChatReq - 40, // 38: group.group.SetMaster:input_type -> group.SetMasterReq - 42, // 39: group.group.DeleteGroup:input_type -> group.DeleteGroupReq - 3, // 40: group.group.createGroup:output_type -> group.CreateGroupResp - 13, // 41: group.group.joinGroup:output_type -> group.JoinGroupResp - 17, // 42: group.group.quitGroup:output_type -> group.QuitGroupResp - 5, // 43: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp - 7, // 44: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp - 9, // 45: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp - 11, // 46: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp - 15, // 47: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp - 19, // 48: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp - 21, // 49: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp - 24, // 50: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp - 26, // 51: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp - 28, // 52: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp - 30, // 53: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp - 34, // 54: group.group.GetGroup:output_type -> group.GetGroupsResp - 34, // 55: group.group.GetGroups:output_type -> group.GetGroupsResp - 37, // 56: group.group.BanGroupChat:output_type -> group.BanGroupChatResp - 38, // 57: group.group.BanPrivateChat:output_type -> group.BanPrivateChatReq - 41, // 58: group.group.SetMaster:output_type -> group.SetMasterResp - 43, // 59: group.group.DeleteGroup:output_type -> group.DeleteGroupResp - 40, // [40:60] is the sub-list for method output_type - 20, // [20:40] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 47, // 17: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination + 44, // 18: group.GetGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 47, // 19: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination + 44, // 20: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo + 2, // 21: group.group.createGroup:input_type -> group.CreateGroupReq + 12, // 22: group.group.joinGroup:input_type -> group.JoinGroupReq + 16, // 23: group.group.quitGroup:input_type -> group.QuitGroupReq + 4, // 24: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq + 6, // 25: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq + 8, // 26: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq + 10, // 27: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq + 14, // 28: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq + 18, // 29: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq + 20, // 30: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq + 22, // 31: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq + 25, // 32: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq + 27, // 33: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq + 29, // 34: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq + 31, // 35: group.group.GetGroup:input_type -> group.GetGroupReq + 33, // 36: group.group.GetGroups:input_type -> group.GetGroupsReq + 36, // 37: group.group.BanGroupChat:input_type -> group.BanGroupChatReq + 38, // 38: group.group.BanPrivateChat:input_type -> group.BanPrivateChatReq + 40, // 39: group.group.SetMaster:input_type -> group.SetMasterReq + 42, // 40: group.group.DeleteGroup:input_type -> group.DeleteGroupReq + 3, // 41: group.group.createGroup:output_type -> group.CreateGroupResp + 13, // 42: group.group.joinGroup:output_type -> group.JoinGroupResp + 17, // 43: group.group.quitGroup:output_type -> group.QuitGroupResp + 5, // 44: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 7, // 45: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp + 9, // 46: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 11, // 47: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 15, // 48: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 19, // 49: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 21, // 50: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 24, // 51: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 26, // 52: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp + 28, // 53: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp + 30, // 54: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 32, // 55: group.group.GetGroup:output_type -> group.GetGroupResp + 34, // 56: group.group.GetGroups:output_type -> group.GetGroupsResp + 37, // 57: group.group.BanGroupChat:output_type -> group.BanGroupChatResp + 39, // 58: group.group.BanPrivateChat:output_type -> group.BanPrivateChatResp + 41, // 59: group.group.SetMaster:output_type -> group.SetMasterResp + 43, // 60: group.group.DeleteGroup:output_type -> group.DeleteGroupResp + 41, // [41:61] is the sub-list for method output_type + 21, // [21:41] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_group_group_proto_init() } @@ -3761,10 +3774,10 @@ type GroupClient interface { GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) - GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupsResp, error) + GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) BanGroupChat(ctx context.Context, in *BanGroupChatReq, opts ...grpc.CallOption) (*BanGroupChatResp, error) - BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatReq, error) + BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatResp, error) SetMaster(ctx context.Context, in *SetMasterReq, opts ...grpc.CallOption) (*SetMasterResp, error) DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts ...grpc.CallOption) (*DeleteGroupResp, error) } @@ -3903,8 +3916,8 @@ func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemb return out, nil } -func (c *groupClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupsResp, error) { - out := new(GetGroupsResp) +func (c *groupClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) { + out := new(GetGroupResp) err := c.cc.Invoke(ctx, "/group.group/GetGroup", in, out, opts...) if err != nil { return nil, err @@ -3930,8 +3943,8 @@ func (c *groupClient) BanGroupChat(ctx context.Context, in *BanGroupChatReq, opt return out, nil } -func (c *groupClient) BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatReq, error) { - out := new(BanPrivateChatReq) +func (c *groupClient) BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatResp, error) { + out := new(BanPrivateChatResp) err := c.cc.Invoke(ctx, "/group.group/BanPrivateChat", in, out, opts...) if err != nil { return nil, err @@ -3973,10 +3986,10 @@ type GroupServer interface { GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) - GetGroup(context.Context, *GetGroupReq) (*GetGroupsResp, error) + GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) BanGroupChat(context.Context, *BanGroupChatReq) (*BanGroupChatResp, error) - BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatReq, error) + BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatResp, error) SetMaster(context.Context, *SetMasterReq) (*SetMasterResp, error) DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) } @@ -4027,7 +4040,7 @@ func (*UnimplementedGroupServer) InviteUserToGroup(context.Context, *InviteUserT func (*UnimplementedGroupServer) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroupAllMember not implemented") } -func (*UnimplementedGroupServer) GetGroup(context.Context, *GetGroupReq) (*GetGroupsResp, error) { +func (*UnimplementedGroupServer) GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented") } func (*UnimplementedGroupServer) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) { @@ -4036,7 +4049,7 @@ func (*UnimplementedGroupServer) GetGroups(context.Context, *GetGroupsReq) (*Get func (*UnimplementedGroupServer) BanGroupChat(context.Context, *BanGroupChatReq) (*BanGroupChatResp, error) { return nil, status.Errorf(codes.Unimplemented, "method BanGroupChat not implemented") } -func (*UnimplementedGroupServer) BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatReq, error) { +func (*UnimplementedGroupServer) BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatResp, error) { return nil, status.Errorf(codes.Unimplemented, "method BanPrivateChat not implemented") } func (*UnimplementedGroupServer) SetMaster(context.Context, *SetMasterReq) (*SetMasterResp, error) { diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 35b70ce03..a1cc22dc2 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -197,11 +197,12 @@ message GetGroupAllMemberResp { message GetGroupReq { string GroupName = 1; - string OperationID = 2; + server_api_params.RequestPagination Pagination = 2; + string OperationID = 3; } message GetGroupResp { - server_api_params.GroupInfo GroupInfo = 1; + repeated server_api_params.GroupInfo GroupInfo = 1; } message GetGroupsReq { @@ -272,10 +273,10 @@ service group{ rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp); - rpc GetGroup(GetGroupReq) returns(GetGroupsResp); + rpc GetGroup(GetGroupReq) returns(GetGroupResp); rpc GetGroups(GetGroupsReq) returns(GetGroupsResp); rpc BanGroupChat(BanGroupChatReq) returns(BanGroupChatResp); - rpc BanPrivateChat(BanPrivateChatReq) returns(BanPrivateChatReq); + rpc BanPrivateChat(BanPrivateChatReq) returns(BanPrivateChatResp); rpc SetMaster(SetMasterReq) returns(SetMasterResp); rpc DeleteGroup(DeleteGroupReq) returns(DeleteGroupResp); } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 06034b669..838827b8d 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: sdk_ws/ws.proto package server_api_params @@ -2845,7 +2845,7 @@ type ResponsePagination struct { unknownFields protoimpl.UnknownFields CurrentPage int32 `protobuf:"varint,5,opt,name=CurrentPage,proto3" json:"CurrentPage,omitempty"` - ShowNumber int32 `protobuf:"varint,6,opt,name=showNumber,proto3" json:"showNumber,omitempty"` + ShowNumber int32 `protobuf:"varint,6,opt,name=ShowNumber,proto3" json:"ShowNumber,omitempty"` } func (x *ResponsePagination) Reset() { @@ -3351,8 +3351,8 @@ var file_sdk_ws_ws_proto_rawDesc = []byte{ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, + 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 4caccf381..3a0915432 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -340,5 +340,5 @@ message RequestPagination { message ResponsePagination { int32 CurrentPage = 5; - int32 showNumber = 6; + int32 ShowNumber = 6; } \ No newline at end of file diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 1dfc2528d..e991f794c 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -2007,13 +2007,76 @@ func (x *GetBlockUsersReq) GetBlockUserNum() int32 { return 0 } +type BlockUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User *User `protobuf:"bytes,1,opt,name=User,proto3" json:"User,omitempty"` + BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime,proto3" json:"BeginDisableTime,omitempty"` + EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` +} + +func (x *BlockUser) Reset() { + *x = BlockUser{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockUser) ProtoMessage() {} + +func (x *BlockUser) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlockUser.ProtoReflect.Descriptor instead. +func (*BlockUser) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{34} +} + +func (x *BlockUser) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + +func (x *BlockUser) GetBeginDisableTime() string { + if x != nil { + return x.BeginDisableTime + } + return "" +} + +func (x *BlockUser) GetEndDisableTime() string { + if x != nil { + return x.EndDisableTime + } + return "" +} + type GetBlockUsersResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` + BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers,proto3" json:"BlockUsers,omitempty"` Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` BlockUserNum int32 `protobuf:"varint,4,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` } @@ -2021,7 +2084,7 @@ type GetBlockUsersResp struct { func (x *GetBlockUsersResp) Reset() { *x = GetBlockUsersResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[34] + mi := &file_user_user_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2034,7 +2097,7 @@ func (x *GetBlockUsersResp) String() string { func (*GetBlockUsersResp) ProtoMessage() {} func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[34] + mi := &file_user_user_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2047,7 +2110,7 @@ func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockUsersResp.ProtoReflect.Descriptor instead. func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{34} + return file_user_user_proto_rawDescGZIP(), []int{35} } func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { @@ -2057,9 +2120,9 @@ func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { return nil } -func (x *GetBlockUsersResp) GetUser() []*User { +func (x *GetBlockUsersResp) GetBlockUsers() []*BlockUser { if x != nil { - return x.User + return x.BlockUsers } return nil } @@ -2078,6 +2141,108 @@ func (x *GetBlockUsersResp) GetBlockUserNum() int32 { return 0 } +type GetBlockUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetBlockUserReq) Reset() { + *x = GetBlockUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockUserReq) ProtoMessage() {} + +func (x *GetBlockUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBlockUserReq.ProtoReflect.Descriptor instead. +func (*GetBlockUserReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{36} +} + +func (x *GetBlockUserReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *GetBlockUserReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetBlockUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser,proto3" json:"BlockUser,omitempty"` +} + +func (x *GetBlockUserResp) Reset() { + *x = GetBlockUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockUserResp) ProtoMessage() {} + +func (x *GetBlockUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBlockUserResp.ProtoReflect.Descriptor instead. +func (*GetBlockUserResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{37} +} + +func (x *GetBlockUserResp) GetBlockUser() *BlockUser { + if x != nil { + return x.BlockUser + } + return nil +} + type AccountCheckResp_SingleUserStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2090,7 +2255,7 @@ type AccountCheckResp_SingleUserStatus struct { func (x *AccountCheckResp_SingleUserStatus) Reset() { *x = AccountCheckResp_SingleUserStatus{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[35] + mi := &file_user_user_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2103,7 +2268,7 @@ func (x *AccountCheckResp_SingleUserStatus) String() string { func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (x *AccountCheckResp_SingleUserStatus) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[35] + mi := &file_user_user_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2387,86 +2552,108 @@ var file_user_user_proto_rawDesc = []byte{ 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0xd0, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x32, 0x88, 0x08, 0x0a, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, - 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, - 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x4c, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x32, 0xc7, + 0x08, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x22, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, + 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x71, 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2481,7 +2668,7 @@ func file_user_user_proto_rawDescGZIP() []byte { return file_user_user_proto_rawDescData } -var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 39) var file_user_user_proto_goTypes = []interface{}{ (*CommonResp)(nil), // 0: user.CommonResp (*DeleteUsersReq)(nil), // 1: user.DeleteUsersReq @@ -2517,20 +2704,23 @@ var file_user_user_proto_goTypes = []interface{}{ (*UnBlockUserReq)(nil), // 31: user.UnBlockUserReq (*UnBlockUserResp)(nil), // 32: user.UnBlockUserResp (*GetBlockUsersReq)(nil), // 33: user.GetBlockUsersReq - (*GetBlockUsersResp)(nil), // 34: user.GetBlockUsersResp - (*AccountCheckResp_SingleUserStatus)(nil), // 35: user.AccountCheckResp.SingleUserStatus - (*sdk_ws.UserInfo)(nil), // 36: server_api_params.UserInfo - (*sdk_ws.RequestPagination)(nil), // 37: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 38: server_api_params.ResponsePagination + (*BlockUser)(nil), // 34: user.BlockUser + (*GetBlockUsersResp)(nil), // 35: user.GetBlockUsersResp + (*GetBlockUserReq)(nil), // 36: user.GetBlockUserReq + (*GetBlockUserResp)(nil), // 37: user.GetBlockUserResp + (*AccountCheckResp_SingleUserStatus)(nil), // 38: user.AccountCheckResp.SingleUserStatus + (*sdk_ws.UserInfo)(nil), // 39: server_api_params.UserInfo + (*sdk_ws.RequestPagination)(nil), // 40: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 41: server_api_params.ResponsePagination } var file_user_user_proto_depIdxs = []int32{ 0, // 0: user.DeleteUsersResp.CommonResp:type_name -> user.CommonResp 0, // 1: user.GetAllUserIDResp.CommonResp:type_name -> user.CommonResp 0, // 2: user.AccountCheckResp.commonResp:type_name -> user.CommonResp - 35, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus + 38, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus 0, // 4: user.GetUserInfoResp.commonResp:type_name -> user.CommonResp - 36, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo - 36, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo + 39, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo + 39, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo 0, // 7: user.UpdateUserInfoResp.commonResp:type_name -> user.CommonResp 0, // 8: user.SetReceiveMessageOptResp.commonResp:type_name -> user.CommonResp 12, // 9: user.SetReceiveMessageOptResp.conversationOptResultList:type_name -> user.OptResult @@ -2542,54 +2732,58 @@ var file_user_user_proto_depIdxs = []int32{ 0, // 15: user.GetUserResp.CommonResp:type_name -> user.CommonResp 21, // 16: user.GetUserResp.user:type_name -> user.User 0, // 17: user.AlterUserResp.CommonResp:type_name -> user.CommonResp - 37, // 18: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 40, // 18: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination 0, // 19: user.GetUsersResp.CommonResp:type_name -> user.CommonResp 21, // 20: user.GetUsersResp.user:type_name -> user.User - 38, // 21: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 41, // 21: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination 0, // 22: user.AddUserResp.CommonResp:type_name -> user.CommonResp 0, // 23: user.BlockUserResp.CommonResp:type_name -> user.CommonResp 0, // 24: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp - 37, // 25: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 0, // 26: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp - 21, // 27: user.GetBlockUsersResp.user:type_name -> user.User - 38, // 28: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 7, // 29: user.user.GetUserInfo:input_type -> user.GetUserInfoReq - 9, // 30: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq - 1, // 31: user.user.DeleteUsers:input_type -> user.DeleteUsersReq - 3, // 32: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq - 11, // 33: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq - 14, // 34: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq - 16, // 35: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq - 5, // 36: user.user.AccountCheck:input_type -> user.AccountCheckReq - 20, // 37: user.user.GetUser:input_type -> user.GetUserReq - 18, // 38: user.user.ResignUser:input_type -> user.ResignUserReq - 23, // 39: user.user.AlterUser:input_type -> user.AlterUserReq - 25, // 40: user.user.GetUsers:input_type -> user.GetUsersReq - 27, // 41: user.user.AddUser:input_type -> user.AddUserReq - 29, // 42: user.user.BlockUser:input_type -> user.BlockUserReq - 31, // 43: user.user.UnBlockUser:input_type -> user.UnBlockUserReq - 33, // 44: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq - 8, // 45: user.user.GetUserInfo:output_type -> user.GetUserInfoResp - 10, // 46: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp - 2, // 47: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 48: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp - 13, // 49: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp - 15, // 50: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp - 17, // 51: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp - 6, // 52: user.user.AccountCheck:output_type -> user.AccountCheckResp - 22, // 53: user.user.GetUser:output_type -> user.GetUserResp - 19, // 54: user.user.ResignUser:output_type -> user.ResignUserResp - 24, // 55: user.user.AlterUser:output_type -> user.AlterUserResp - 26, // 56: user.user.GetUsers:output_type -> user.GetUsersResp - 28, // 57: user.user.AddUser:output_type -> user.AddUserResp - 30, // 58: user.user.BlockUser:output_type -> user.BlockUserResp - 32, // 59: user.user.UnBlockUser:output_type -> user.UnBlockUserResp - 34, // 60: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp - 45, // [45:61] is the sub-list for method output_type - 29, // [29:45] is the sub-list for method input_type - 29, // [29:29] is the sub-list for extension type_name - 29, // [29:29] is the sub-list for extension extendee - 0, // [0:29] is the sub-list for field type_name + 40, // 25: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 21, // 26: user.BlockUser.User:type_name -> user.User + 0, // 27: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp + 34, // 28: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser + 41, // 29: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 34, // 30: user.GetBlockUserResp.BlockUser:type_name -> user.BlockUser + 7, // 31: user.user.GetUserInfo:input_type -> user.GetUserInfoReq + 9, // 32: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq + 1, // 33: user.user.DeleteUsers:input_type -> user.DeleteUsersReq + 3, // 34: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq + 11, // 35: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq + 14, // 36: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq + 16, // 37: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq + 5, // 38: user.user.AccountCheck:input_type -> user.AccountCheckReq + 20, // 39: user.user.GetUser:input_type -> user.GetUserReq + 18, // 40: user.user.ResignUser:input_type -> user.ResignUserReq + 23, // 41: user.user.AlterUser:input_type -> user.AlterUserReq + 25, // 42: user.user.GetUsers:input_type -> user.GetUsersReq + 27, // 43: user.user.AddUser:input_type -> user.AddUserReq + 29, // 44: user.user.BlockUser:input_type -> user.BlockUserReq + 31, // 45: user.user.UnBlockUser:input_type -> user.UnBlockUserReq + 33, // 46: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq + 36, // 47: user.user.GetBlockUser:input_type -> user.GetBlockUserReq + 8, // 48: user.user.GetUserInfo:output_type -> user.GetUserInfoResp + 10, // 49: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp + 2, // 50: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 51: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp + 13, // 52: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp + 15, // 53: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp + 17, // 54: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp + 6, // 55: user.user.AccountCheck:output_type -> user.AccountCheckResp + 22, // 56: user.user.GetUser:output_type -> user.GetUserResp + 19, // 57: user.user.ResignUser:output_type -> user.ResignUserResp + 24, // 58: user.user.AlterUser:output_type -> user.AlterUserResp + 26, // 59: user.user.GetUsers:output_type -> user.GetUsersResp + 28, // 60: user.user.AddUser:output_type -> user.AddUserResp + 30, // 61: user.user.BlockUser:output_type -> user.BlockUserResp + 32, // 62: user.user.UnBlockUser:output_type -> user.UnBlockUserResp + 35, // 63: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp + 37, // 64: user.user.GetBlockUser:output_type -> user.GetBlockUserResp + 48, // [48:65] is the sub-list for method output_type + 31, // [31:48] is the sub-list for method input_type + 31, // [31:31] is the sub-list for extension type_name + 31, // [31:31] is the sub-list for extension extendee + 0, // [0:31] is the sub-list for field type_name } func init() { file_user_user_proto_init() } @@ -3007,7 +3201,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersResp); i { + switch v := v.(*BlockUser); i { case 0: return &v.state case 1: @@ -3019,6 +3213,42 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountCheckResp_SingleUserStatus); i { case 0: return &v.state @@ -3037,7 +3267,7 @@ func file_user_user_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_user_proto_rawDesc, NumEnums: 0, - NumMessages: 36, + NumMessages: 39, NumExtensions: 0, NumServices: 1, }, @@ -3079,6 +3309,7 @@ type UserClient interface { BlockUser(ctx context.Context, in *BlockUserReq, opts ...grpc.CallOption) (*BlockUserResp, error) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts ...grpc.CallOption) (*UnBlockUserResp, error) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, opts ...grpc.CallOption) (*GetBlockUsersResp, error) + GetBlockUser(ctx context.Context, in *GetBlockUserReq, opts ...grpc.CallOption) (*GetBlockUserResp, error) } type userClient struct { @@ -3233,6 +3464,15 @@ func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, op return out, nil } +func (c *userClient) GetBlockUser(ctx context.Context, in *GetBlockUserReq, opts ...grpc.CallOption) (*GetBlockUserResp, error) { + out := new(GetBlockUserResp) + err := c.cc.Invoke(ctx, "/user.user/GetBlockUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // UserServer is the server API for User service. type UserServer interface { GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) @@ -3251,6 +3491,7 @@ type UserServer interface { BlockUser(context.Context, *BlockUserReq) (*BlockUserResp, error) UnBlockUser(context.Context, *UnBlockUserReq) (*UnBlockUserResp, error) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) + GetBlockUser(context.Context, *GetBlockUserReq) (*GetBlockUserResp, error) } // UnimplementedUserServer can be embedded to have forward compatible implementations. @@ -3305,6 +3546,9 @@ func (*UnimplementedUserServer) UnBlockUser(context.Context, *UnBlockUserReq) (* func (*UnimplementedUserServer) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBlockUsers not implemented") } +func (*UnimplementedUserServer) GetBlockUser(context.Context, *GetBlockUserReq) (*GetBlockUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBlockUser not implemented") +} func RegisterUserServer(s *grpc.Server, srv UserServer) { s.RegisterService(&_User_serviceDesc, srv) @@ -3598,6 +3842,24 @@ func _User_GetBlockUsers_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _User_GetBlockUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBlockUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetBlockUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetBlockUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetBlockUser(ctx, req.(*GetBlockUserReq)) + } + return interceptor(ctx, in, info, handler) +} + var _User_serviceDesc = grpc.ServiceDesc{ ServiceName: "user.user", HandlerType: (*UserServer)(nil), @@ -3666,6 +3928,10 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "GetBlockUsers", Handler: _User_GetBlockUsers_Handler, }, + { + MethodName: "GetBlockUser", + Handler: _User_GetBlockUser_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index d74fbd1c4..78343e9c9 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -193,13 +193,27 @@ message GetBlockUsersReq{ int32 BlockUserNum = 4; } +message BlockUser { + User User = 1; + string BeginDisableTime = 2; + string EndDisableTime = 3; +} + message GetBlockUsersResp{ CommonResp CommonResp = 1; - repeated User user = 2; + repeated BlockUser BlockUsers = 2; server_api_params.ResponsePagination Pagination = 3; int32 BlockUserNum = 4; } +message GetBlockUserReq { + string User_id = 1; + string OperationID = 2; +} + +message GetBlockUserResp { + BlockUser BlockUser = 2; +} service user { rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); @@ -219,4 +233,5 @@ service user { rpc BlockUser(BlockUserReq) returns (BlockUserResp); rpc UnBlockUser(UnBlockUserReq) returns (UnBlockUserResp); rpc GetBlockUsers(GetBlockUsersReq) returns (GetBlockUsersResp); + rpc GetBlockUser(GetBlockUserReq) returns (GetBlockUserResp); }