pull/131/head
wangchuxiao 3 years ago
parent 3f911ab437
commit b992faa468

@ -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) {
}

@ -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
}

@ -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)
}

@ -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
}

@ -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
}

@ -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

@ -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
}

@ -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
}

@ -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
}

@ -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
if err != nil {
return blockUserIds, err
var blockUserInfo BlockUserInfo
blockUser := db.BlackList{
UserId:userId,
}
dbConn.LogMode(true)
err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&blockUsers).Error
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,
}
for _, v := range blockUsers {
blockUserIds = append(blockUserIds, v.UserId)
if err := dbConn.Find(&user).Error; err != nil {
return blockUserInfo, err
}
return blockUserIds, err
blockUserInfo.User.UserID = user.UserID
blockUserInfo.User.FaceURL = user.UserID
blockUserInfo.User.Nickname = user.Nickname
return blockUserInfo, nil
}
func GetBlockUsers(userIds []string) ([]db.Users, error){
func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) {
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
var blockUsers []db.Users
var blockUserInfos []BlockUserInfo
var blockUsers []db.BlackList
if err != nil {
return blockUsers, err
return blockUserInfos, err
}
dbConn.LogMode(true)
dbConn.Find(&blockUsers,userIds)
return blockUsers, err
err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&blockUsers).Error
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,
})
}
}
return blockUserInfos, nil
}
func GetBlockUsersNumCount() (int, error) {

@ -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) {

@ -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);
}

@ -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,

@ -340,5 +340,5 @@ message RequestPagination {
message ResponsePagination {
int32 CurrentPage = 5;
int32 showNumber = 6;
int32 ShowNumber = 6;
}

@ -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",

@ -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);
}

Loading…
Cancel
Save