diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index dd23b4b18..65f2ba789 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit dd23b4b185a273d38e73d51990c531e37ab5ba3b +Subproject commit 65f2ba78952e72f3f07590634e4e3e38897ead1e diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index eff8710e0..a7deb7dbd 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -7,6 +7,7 @@ import ( "Open_IM/internal/api/friend" "Open_IM/internal/api/group" "Open_IM/internal/api/manage" + "Open_IM/internal/api/office" apiThird "Open_IM/internal/api/third" "Open_IM/internal/api/user" "Open_IM/pkg/common/log" @@ -66,6 +67,7 @@ func main() { groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 + groupRouterGroup.POST("/dismiss_group", group.DismissGroup) } //certificate authRouterGroup := r.Group("/auth") @@ -79,6 +81,7 @@ func main() { thirdGroup.POST("/tencent_cloud_storage_credential", apiThird.TencentCloudStorageCredential) thirdGroup.POST("/ali_oss_credential", apiThird.AliOSSCredential) thirdGroup.POST("/minio_storage_credential", apiThird.MinioStorageCredential) + thirdGroup.POST("/minio_upload", apiThird.MinioUploadFile) } //Message chatGroup := r.Group("/msg") @@ -86,6 +89,7 @@ func main() { chatGroup.POST("/newest_seq", apiChat.GetSeq) chatGroup.POST("/send_msg", apiChat.SendMsg) chatGroup.POST("/pull_msg_by_seq", apiChat.PullMsgBySeqList) + chatGroup.POST("/del_msg", apiChat.DelMsg) } //Manager managementGroup := r.Group("/manager") @@ -98,10 +102,23 @@ func main() { } //Conversation conversationGroup := r.Group("/conversation") + { //1 + conversationGroup.POST("/get_all_conversations", conversation.GetAllConversations) + conversationGroup.POST("/get_conversation", conversation.GetConversation) + conversationGroup.POST("/get_conversations", conversation.GetConversations) + conversationGroup.POST("/set_conversation", conversation.SetConversation) + conversationGroup.POST("/batch_set_conversation", conversation.BatchSetConversations) + conversationGroup.POST("/set_recv_msg_opt", conversation.SetRecvMsgOpt) + } + // office + officeGroup := r.Group("/office") { - conversationGroup.POST("/set_receive_message_opt", conversation.SetReceiveMessageOpt) //1 - conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt) //1 - conversationGroup.POST("/get_all_conversation_message_opt", conversation.GetAllConversationMessageOpt) //1 + officeGroup.POST("/get_user_tags", office.GetUserTags) + officeGroup.POST("/create_tag", office.CreateTag) + officeGroup.POST("/delete_tag", office.DeleteTag) + officeGroup.POST("/set_tag", office.SetTag) + officeGroup.POST("/send_msg_to_tag", office.SendMsg2Tag) + officeGroup.POST("/get_send_tag_log", office.GetTagSendLogs) } apiThird.MinioInit() log.NewPrivateLog("api") diff --git a/cmd/rpc/open_im_office/Makefile b/cmd/rpc/open_im_office/Makefile new file mode 100644 index 000000000..b86230c64 --- /dev/null +++ b/cmd/rpc/open_im_office/Makefile @@ -0,0 +1,23 @@ +.PHONY: all build run gotool install clean help + +BINARY_NAME=open_im_office +BIN_DIR=../../../bin/ + +all: gotool build + +build: + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" + +run: + @go run ./ + +gotool: + go fmt ./ + go vet ./ + +install: + make build + mv ${BINARY_NAME} ${BIN_DIR} + +clean: + @if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi diff --git a/cmd/rpc/open_im_office/main.go b/cmd/rpc/open_im_office/main.go new file mode 100644 index 000000000..c4d80cf68 --- /dev/null +++ b/cmd/rpc/open_im_office/main.go @@ -0,0 +1,13 @@ +package main + +import ( + rpc "Open_IM/internal/rpc/office" + "flag" +) + +func main() { + rpcPort := flag.Int("port", 11100, "rpc listening port") + flag.Parse() + rpcServer := rpc.NewOfficeServer(*rpcPort) + rpcServer.Run() +} diff --git a/config/config.yaml b/config/config.yaml index aff4fd24d..7d864283c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -73,7 +73,7 @@ endpoints: rpc_statistic: openim_rpc_statistic rpc_admin_cms: openim_rpc_admin_cms rpc_message_cms: openim_rpc_admin_cms - + rpc_office: openim_rpc_office api: openImApiPort: [ 10000 ] #api服务端口,默认即可,需要开放此端口或做nginx转发 @@ -81,7 +81,7 @@ cmsapi: openImCmsApiPort: [ 8000 ] #管理后台api服务端口,默认即可,需要开放此端口或做nginx转发 sdk: openImSdkWsPort: [ 30000 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 - +#对象存储服务,以下配置二选一,目前支持两种,腾讯云和minio,二者配置好其中一种即可(如果使用minio参考https://doc.rentsoft.cn/#/qa/minio搭建minio服务器) credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改 tencent: appID: 1302656840 @@ -89,7 +89,7 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 bucket: echat-1302656840 secretID: AKIDGNYVChzIQinu7QEgtNp0hnNgqcV8vZTC secretKey: kz15vW83qM6dBUWIq681eBZA0c0vlIbe - minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化时相应改动 + minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化InitSDK,中 object_storage参数为minio bucket: openim location: us-east-1 endpoint: http://127.0.0.1:9000 @@ -119,6 +119,7 @@ rpcport: #rpc服务端口 默认即可 openImStatisticsPort: [ 10800 ] openImMessageCmsPort: [ 10900 ] openImAdminCmsPort: [ 11000 ] + openImOfficePort: [ 11100 ] c2c: callbackBeforeSendMsg: switch: false @@ -140,6 +141,7 @@ rpcregistername: #rpc注册服务名,默认即可 OpenImStatisticsName: Statistics OpenImMessageCMSName: MessageCMS openImAdminCMSName: AdminCMS + openImOfficeName: Office log: storageLocation: ../logs/ @@ -193,6 +195,7 @@ tokenpolicy: accessExpire: 3650 #token过期时间(天) 默认即可 messageverify: friendVerify: false + # c2c: # callbackBeforeSendMsg: # switch: false @@ -214,21 +217,21 @@ callback: callbackbeforeSendSingleMsg: enable: false # 回调是否启用 callbackTimeOut: 2 # 回调超时时间 - CallbackFailedContinue: true # 回调超时是否继续执行代码 + callbackFailedContinue: true # 回调超时是否继续执行代码 callbackAfterSendSingleMsg: enable: false callbackTimeOut: 2 callbackBeforeSendGroupMsg: enable: false callbackTimeOut: 2 - CallbackFailedContinue: true + callbackFailedContinue: true callbackAfterSendGroupMsg: enable: false callbackTimeOut: 2 callbackWordFilter: enable: false callbackTimeOut: 2 - CallbackFailedContinue: true + callbackFailedContinue: true notification: @@ -352,6 +355,17 @@ notification: defaultTips: tips: "entered the group" # group info changed by xx + groupDismissed: + conversation: + reliabilityLevel: 3 + unreadCount: true + offlinePush: + switch: false + title: "groupDismissed title" + desc: "groupDismissed desc" + ext: "groupDismissed ext" + defaultTips: + tips: "group dismissed" #############################friend################################# friendApplicationAdded: @@ -513,4 +527,3 @@ demo: - diff --git a/go.mod b/go.mod index 8bb682c49..30e4daa6a 100644 --- a/go.mod +++ b/go.mod @@ -11,6 +11,8 @@ require ( github.com/alibabacloud-go/tea v1.1.17 github.com/antonfisher/nested-logrus-formatter v1.3.0 github.com/bwmarrin/snowflake v0.3.0 + github.com/coreos/etcd v3.3.27+incompatible // indirect + github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect github.com/eapache/go-resiliency v1.2.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect @@ -20,6 +22,7 @@ require ( github.com/gin-gonic/gin v1.7.0 github.com/go-playground/validator/v10 v10.4.1 github.com/go-sql-driver/mysql v1.6.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v4 v4.1.0 github.com/golang/protobuf v1.5.2 github.com/golang/snappy v0.0.4 // indirect @@ -31,6 +34,8 @@ require ( github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible github.com/lestrrat-go/strftime v1.0.4 // indirect github.com/lib/pq v1.2.0 // indirect + //github.com/livekit/protocol v0.11.14-0.20220223195254-d8c251e13231 // indirect + //github.com/livekit/server-sdk-go v0.9.1 github.com/mattn/go-sqlite3 v1.14.6 // indirect github.com/minio/minio-go/v7 v7.0.22 github.com/mitchellh/mapstructure v1.4.2 @@ -45,11 +50,13 @@ require ( github.com/stretchr/testify v1.7.0 github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect + //go.etcd.io/etcd v3.3.27+incompatible go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698 go.mongodb.org/mongo-driver v1.8.3 golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb - golang.org/x/net v0.0.0-20210917221730-978cfadd31cf - google.golang.org/grpc v1.40.0 + golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd + google.golang.org/grpc v1.42.0 + google.golang.org/grpc/examples v0.0.0-20220311002955-722367c4a737 // indirect google.golang.org/protobuf v1.27.1 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df @@ -59,4 +66,4 @@ require ( sigs.k8s.io/yaml v1.2.0 // indirect ) -replace google.golang.org/grpc => google.golang.org/grpc v1.29.1 +replace google.golang.org/grpc => google.golang.org/grpc v1.29.0 diff --git a/go.sum b/go.sum index 34b43fe72..1defffaf3 100644 --- a/go.sum +++ b/go.sum @@ -49,8 +49,10 @@ github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWX github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/alibabacloud-go/darabonba-openapi v0.1.7/go.mod h1:6FV1Bt1AItYIlC2rVopPTumrRNtkfPBmrPVAZ8v2bLk= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alibabacloud-go/darabonba-openapi v0.1.11 h1:w59gtSA0s87p0U5NNG/N/PIHsRP3rtj7qCP9hx9+GL8= github.com/alibabacloud-go/darabonba-openapi v0.1.11/go.mod h1:MPJMxv7HYrFm5m9uOZWkDYsAWyZztEgnBRfk9Fg0eIU= github.com/alibabacloud-go/darabonba-string v1.0.0/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA= @@ -60,11 +62,8 @@ github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 h1:KXMiCg99Jx7B6V+DlRFbWw github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8/go.mod h1:8aL6tSyQIWJygF7W/Vqxdf/QDbN2S+u57k36bEA8hD8= github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q= github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= -github.com/alibabacloud-go/openapi-util v0.0.8/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= github.com/alibabacloud-go/openapi-util v0.0.9 h1:Z0DP4LFzkM/rW2nxOMiiLoQVZSeE3jVc5jrZ9Fd/UX0= github.com/alibabacloud-go/openapi-util v0.0.9/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= -github.com/alibabacloud-go/sts-20150401 v1.1.0 h1:1yVyKz02ES6aKo3xVjmoPLBH1OAmmSqPkhKRdjEkmYs= -github.com/alibabacloud-go/sts-20150401 v1.1.0/go.mod h1:QW4O/c7Hp4krHYt+6xwnoG8EyZW3V9GYkl6EgIBmxJc= github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg= github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= @@ -89,22 +88,38 @@ github.com/aws/aws-sdk-go v1.38.3/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zK github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bep/debounce v1.2.0 h1:wXds8Kq8qRfwAOpAxHrJDbCXgC5aHSzgQb/0gKsHQqo= +github.com/bep/debounce v1.2.0/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0= github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/coreos/etcd v0.5.0-alpha.5 h1:0Qi6Jzjk2CDuuGlIeecpu+em2nrjhOgz2wsIwCmQHmc= +github.com/coreos/etcd v3.3.27+incompatible h1:QIudLb9KeBsE5zyYxd1mjzRSkzLg9Wf9QlRwFgd6oTA= +github.com/coreos/etcd v3.3.27+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -114,9 +129,13 @@ github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd h1:83Wprp6RO github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eapache/channels v1.1.0 h1:F1taHcn7/F0i8DYqKXJnyhJcVpp2kgFcNePxXtnyu4k= +github.com/eapache/channels v1.1.0/go.mod h1:jMm2qB5Ubtg9zLd+inMZd2/NUvXgzmWXsDaLyQIGfH0= github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= @@ -124,6 +143,8 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1 github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y= github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= @@ -135,6 +156,8 @@ github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8 github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= github.com/garyburd/redigo v1.6.2 h1:yE/pwKCrbLpLpQICzYTeZ7JsTA/C53wFTJHaEtRqniM= @@ -148,7 +171,16 @@ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logr/logr v1.0.0-rc1/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v1.1.0 h1:nAbevmWlS2Ic4m4+/An5NXkaGqlqpbBgdcuThZxnZyI= +github.com/go-logr/logr v1.1.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.0.0 h1:y5pcs7gk8uL+w55/cmuTqhhg5Vjsn8NhlZgr8atE60c= +github.com/go-logr/stdr v1.0.0/go.mod h1:ALK2+RP34e8Kg4N/jgsMDWyZb/T282UsFmhyUqyzpmc= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= @@ -157,11 +189,14 @@ github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD87 github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= +github.com/go-redis/redis/v8 v8.11.3 h1:GCjoYp8c+yQTJfc0n69iwSiHjvuAdruxl7elnZCxgt8= +github.com/go-redis/redis/v8 v8.11.3/go.mod h1:xNJ9xDG09FsIPwh3bWdk+0oDWHbtF9rPN0F/oD9XeKc= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -248,6 +283,11 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -285,6 +325,7 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= @@ -298,14 +339,13 @@ github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/ github.com/jinzhu/now v1.1.3 h1:PlHq1bSCSZL9K0wUhbm2pGLoTWs2GwVhsP6emvGV/ZI= github.com/jinzhu/now v1.1.3/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -316,6 +356,9 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/jxskiss/base62 v0.0.0-20191017122030-4f11678b909b h1:XUr8tvMEILhphQPp3TFcIudb5KTOzFeD0pJyDn5+5QI= +github.com/jxskiss/base62 v0.0.0-20191017122030-4f11678b909b/go.mod h1:a5Mn24iYVJRUQSkFupGByqykzD+k+wFI8J91zGHuPf8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -326,6 +369,7 @@ github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgo github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -347,6 +391,17 @@ github.com/lestrrat-go/strftime v1.0.4/go.mod h1:E1nN3pCbtMSu1yjSVeyuRFVm/U0xoR7 github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lithammer/shortuuid/v3 v3.0.6 h1:pr15YQyvhiSX/qPxncFtqk+v4xLEpOZObbsY/mKrcvA= +github.com/lithammer/shortuuid/v3 v3.0.6/go.mod h1:vMk8ke37EmiewwolSO1NLW8vP4ZaKlRuDIi8tWWmAts= +github.com/lithammer/shortuuid/v3 v3.0.7 h1:trX0KTHy4Pbwo/6ia8fscyHoGA+mf1jWbPJVuvyJQQ8= +github.com/lithammer/shortuuid/v3 v3.0.7/go.mod h1:vMk8ke37EmiewwolSO1NLW8vP4ZaKlRuDIi8tWWmAts= +github.com/livekit/protocol v0.11.13 h1:5iWXKTeFMfERpE/0ocoLUOQtPV1BKwas151nZm0YVt0= +github.com/livekit/protocol v0.11.13/go.mod h1:YoHW9YbWbPnuVsgwBB4hAINKT+V68jmfh9zXBSSn6Wg= +github.com/livekit/protocol v0.11.14-0.20220223195254-d8c251e13231 h1:2bSLRW/t4sosQkqoxI9b6PN296FBw4Xiy9cT9tZPi3w= +github.com/livekit/protocol v0.11.14-0.20220223195254-d8c251e13231/go.mod h1:3pHsWUtQmWaH8mG0cXrQWpbf3Vo+kj0U+In77CEXu90= +github.com/livekit/server-sdk-go v0.9.1 h1:AhshcG4o1Domyo0rfB5lYKnczOZT5nOQQPIkG9jFfE0= +github.com/livekit/server-sdk-go v0.9.1/go.mod h1:I31XJ1SmfUW7DFX3sltpVf9GwvuTO0jr05zscP1nrwA= +github.com/magefile/mage v1.11.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= @@ -367,6 +422,7 @@ github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRU github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/maxbrunsfeld/counterfeiter/v6 v6.3.0/go.mod h1:fcEyUyXZXoV4Abw8DX0t7wyL8mCDxXyU4iAFZfT3IHw= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4= @@ -391,19 +447,77 @@ github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olivere/elastic/v7 v7.0.23 h1:b7tjMogDMhf2CisGI+L02LXLVa0ZyE82Z15XfW1e8t8= github.com/olivere/elastic/v7 v7.0.23/go.mod h1:OuWmD2DiuYhddWegBKPWQuelVKBLrW0fa/VUYgxuGTY= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= +github.com/onsi/gomega v1.15.0 h1:WjP/FQ/sk43MRmnEcT+MlDw2TFvkrXlprrPST/IudjU= +github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E= +github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ= +github.com/pion/dtls/v2 v2.1.2/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= +github.com/pion/dtls/v2 v2.1.3 h1:3UF7udADqous+M2R5Uo2q/YaP4EzUoWKdfX2oscCUio= +github.com/pion/dtls/v2 v2.1.3/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= +github.com/pion/ice/v2 v2.2.1 h1:R3MeuJZpU1ty3diPqpD5OxaxcZ15eprAc+EtUiSoFxg= +github.com/pion/ice/v2 v2.2.1/go.mod h1:Op8jlPtjeiycsXh93Cs4jK82C9j/kh7vef6ztIOvtIQ= +github.com/pion/interceptor v0.1.7/go.mod h1:Lh3JSl/cbJ2wP8I3ccrjh1K/deRGRn3UlSPuOTiHb6U= +github.com/pion/interceptor v0.1.8 h1:5K27KMw8enTB1jVDFrjadK8sZjI5JbPJ91OVfiih5fE= +github.com/pion/interceptor v0.1.8/go.mod h1:Lh3JSl/cbJ2wP8I3ccrjh1K/deRGRn3UlSPuOTiHb6U= +github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= +github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= +github.com/pion/mdns v0.0.5 h1:Q2oj/JB3NqfzY9xGZ1fPzZzK7sDSD8rZPOvcIQ10BCw= +github.com/pion/mdns v0.0.5/go.mod h1:UgssrvdD3mxpi8tMxAXbsppL3vJ4Jipw1mTCW+al01g= +github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= +github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= +github.com/pion/rtcp v1.2.6/go.mod h1:52rMNPWFsjr39z9B9MhnkqhPLoeHTv1aN63o/42bWE0= +github.com/pion/rtcp v1.2.9 h1:1ujStwg++IOLIEoOiIQ2s+qBuJ1VN81KW+9pMPsif+U= +github.com/pion/rtcp v1.2.9/go.mod h1:qVPhiCzAm4D/rxb6XzKeyZiQK69yJpbUDJSF7TgrqNo= +github.com/pion/rtp v1.7.0/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= +github.com/pion/rtp v1.7.4 h1:4dMbjb1SuynU5OpA3kz1zHK+u+eOCQjW3MAeVHf1ODA= +github.com/pion/rtp v1.7.4/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= +github.com/pion/sctp v1.8.0/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= +github.com/pion/sctp v1.8.2 h1:yBBCIrUMJ4yFICL3RIvR4eh/H2BTTvlligmSTy+3kiA= +github.com/pion/sctp v1.8.2/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= +github.com/pion/sdp/v3 v3.0.4 h1:2Kf+dgrzJflNCSw3TV5v2VLeI0s/qkzy2r5jlR0wzf8= +github.com/pion/sdp/v3 v3.0.4/go.mod h1:bNiSknmJE0HYBprTHXKPQ3+JjacTv5uap92ueJZKsRk= +github.com/pion/srtp/v2 v2.0.5 h1:ks3wcTvIUE/GHndO3FAvROQ9opy0uLELpwHJaQ1yqhQ= +github.com/pion/srtp/v2 v2.0.5/go.mod h1:8k6AJlal740mrZ6WYxc4Dg6qDqqhxoRG2GSjlUhDF0A= +github.com/pion/stun v0.3.5 h1:uLUCBCkQby4S1cf6CGuR9QrVOKcvUwFeemaC865QHDg= +github.com/pion/stun v0.3.5/go.mod h1:gDMim+47EeEtfWogA37n6qXZS88L5V6LqFcf+DZA2UA= +github.com/pion/transport v0.12.2/go.mod h1:N3+vZQD9HlDP5GWkZ85LohxNsDcNgofQmyL6ojX5d8Q= +github.com/pion/transport v0.12.3/go.mod h1:OViWW9SP2peE/HbwBvARicmAVnesphkNkCVZIWJ6q9A= +github.com/pion/transport v0.13.0 h1:KWTA5ZrQogizzYwPEciGtHPLwpAjE91FgXnyu+Hv2uY= +github.com/pion/transport v0.13.0/go.mod h1:yxm9uXpK9bpBBWkITk13cLo1y5/ur5VQpG22ny6EP7g= +github.com/pion/turn/v2 v2.0.8 h1:KEstL92OUN3k5k8qxsXHpr7WWfrdp7iJZHx99ud8muw= +github.com/pion/turn/v2 v2.0.8/go.mod h1:+y7xl719J8bAEVpSXBXvTxStjJv3hbz9YFflvkpcGPw= +github.com/pion/udp v0.1.1 h1:8UAPvyqmsxK8oOjloDk4wUt63TzFe9WEJkg5lChlj7o= +github.com/pion/udp v0.1.1/go.mod h1:6AFo+CMdKQm7UiA0eUPA8/eVCTx8jBIITLZHc9DWX5M= +github.com/pion/webrtc/v3 v3.1.25-0.20220225075517-37e16a3b15a3 h1:TzOKzLajJt/Le720iy7bFry5HBBLWB3v6n9jEO4WJDs= +github.com/pion/webrtc/v3 v3.1.25-0.20220225075517-37e16a3b15a3/go.mod h1:mO/yv7fBN3Lp7YNlnYcTj1jtpvNvssJG+7eh6itZ4xM= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -416,15 +530,26 @@ github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSg github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0 h1:iMAkS2TDoNWnKM+Kopnx/8tnEStIfpYA0ur0xQzzhMQ= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo= @@ -438,9 +563,12 @@ github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4QnFHkOM= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -477,6 +605,8 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca h1:G/aIr3WiUesWHL2YGYgEqjM5tCAJ43Ml+0C18wDkWWs= github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca/go.mod h1:b18KQa4IxHbxeseW1GcZox53d7J0z39VNONTxvvlkXw= +github.com/thoas/go-funk v0.9.0 h1:Yzu8aTjTb1sqHZzSZLBt4qaZrFfjNizhA7IfnefjEzo= +github.com/thoas/go-funk v0.9.0/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tjfoc/gmsm v1.3.2 h1:7JVkAn5bvUJ7HtU08iW6UiD+UTmJTIToHCfeFzkcCxM= @@ -484,6 +614,8 @@ github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/twitchtv/twirp v8.1.0+incompatible h1:KGXanpa9LXdVE/V5P/tA27rkKFmXRGCtSNT7zdeeVOY= +github.com/twitchtv/twirp v8.1.0+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A= github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= @@ -509,6 +641,9 @@ go.etcd.io/bbolt v1.3.4 h1:hi1bXHMVrlQh6WwxAy+qZCV/SYIlqo+Ushwdpa4tAKg= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698 h1:jWtjCJX1qxhHISBMLRztWwR+EXkI7MJAF2HjHAE/x/I= go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698/go.mod h1:YoUyTScD3Vcv2RBm3eGVOq7i1ULiz3OuXoQFWOirmAM= +go.etcd.io/etcd v0.5.0-alpha.5 h1:VOolFSo3XgsmnYDLozjvZ6JL6AAwIDu1Yx1y+4EYLDo= +go.etcd.io/etcd v3.3.27+incompatible h1:5hMrpf6REqTHV2LW2OclNpRtxI0k9ZplMemJsMSWju0= +go.etcd.io/etcd v3.3.27+incompatible/go.mod h1:yaeTdrJi5lOmYerz05bd8+V7KubZs8YSFZfzsF9A6aI= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= @@ -521,6 +656,7 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -546,8 +682,11 @@ golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838 h1:71vQrMauZZhcTVK6KdYM+rklehEEwb3E+ZhaE5jrPrE= +golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -586,6 +725,7 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -596,6 +736,7 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -611,21 +752,30 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201026091529-146b70c837a4/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201201195509-5d6afe98e0b7/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210917221730-978cfadd31cf h1:R150MpwJIv1MpS0N/pc+NhTM8ajzvlmxlY5OYsrevXQ= golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -641,6 +791,7 @@ golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -654,6 +805,7 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cO golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -667,13 +819,17 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -689,6 +845,7 @@ golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -696,7 +853,9 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -706,6 +865,7 @@ golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -713,8 +873,11 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf h1:2ucpDCmfkl8Bd/FsLtiD653Wf96cW37s+iGx93zsu4k= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -724,6 +887,8 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -777,9 +942,11 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= @@ -855,6 +1022,7 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -879,9 +1047,21 @@ google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwy google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71 h1:z+ErRPu0+KS02Td3fOAgdX+lnPDh/VyaABEJPD4JRQs= google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/grpc v1.29.0 h1:2pJjwYOdkZ9HlN4sWRYBg9ttH5bCOlsueaM+b/oYjwo= +google.golang.org/grpc v1.29.0/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.32.0 h1:zWTV+LMdc3kaiJMSTOFz2UgSBgx8RNQoTGiZu3fR9S0= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0 h1:raiipEjMOIC/TO2AvyTxP25XFdLxNIBwzDh3FM3XztI= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/grpc/examples v0.0.0-20220311002955-722367c4a737 h1:rLsBNkV6Gc/K6J87wfvo/BSg/TQGd28++7sS+hs8qDw= +google.golang.org/grpc/examples v0.0.0-20220311002955-722367c4a737/go.mod h1:wKDg0brwMZpaizQ1i7IzYcJjH1TmbJudYdnQC9+J+LE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -904,23 +1084,34 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= -gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= +gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/api/chat/del_msg.go b/internal/api/chat/del_msg.go new file mode 100644 index 000000000..81b705953 --- /dev/null +++ b/internal/api/chat/del_msg.go @@ -0,0 +1,43 @@ +package apiChat + +import ( + api "Open_IM/pkg/base_info" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbChat "Open_IM/pkg/proto/chat" + pbCommon "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "context" + "github.com/gin-gonic/gin" + "net/http" + "strings" +) + +func DelMsg(c *gin.Context) { + var ( + req api.DelMsgReq + resp api.DelMsgResp + reqPb pbCommon.DelMsgListReq + ) + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + if err := utils.CopyStructFields(&reqPb, &req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) + grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) + msgClient := pbChat.NewChatClient(grpcConn) + respPb, err := msgClient.DelMsgList(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "DelMsgList failed", err.Error(), reqPb) + c.JSON(http.StatusOK, gin.H{"errCode": constant.ErrServer.ErrCode, "errMsg": constant.ErrServer.ErrMsg + err.Error()}) + return + } + resp.ErrCode = respPb.ErrCode + resp.ErrMsg = respPb.ErrMsg + c.JSON(http.StatusOK, resp) +} diff --git a/internal/api/chat/pull_msg.go b/internal/api/chat/pull_msg.go index 0872319c6..515e9b743 100644 --- a/internal/api/chat/pull_msg.go +++ b/internal/api/chat/pull_msg.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/proto/chat" open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -39,7 +40,10 @@ func PullMsgBySeqList(c *gin.Context) { token := c.Request.Header.Get("token") if ok, err := token_verify.VerifyToken(token, params.SendID); !ok { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err" + err.Error()}) + if err != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error(), token, params.SendID) + } + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) return } pbData := open_im_sdk.PullMessageBySeqListReq{} diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 3971fbad7..5c06ecaf5 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -4,10 +4,8 @@ import ( api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" - "Open_IM/pkg/proto/user" - rpc "Open_IM/pkg/proto/user" + pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" @@ -15,111 +13,206 @@ import ( "strings" ) -func GetAllConversationMessageOpt(c *gin.Context) { - params := api.GetAllConversationMessageOptReq{} - if err := c.BindJSON(¶ms); err != nil { +func SetConversation(c *gin.Context) { + var ( + req api.SetConversationReq + resp api.SetConversationResp + reqPb pbUser.SetConversationReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) return } - req := &rpc.GetAllConversationMsgOptReq{} - utils.CopyStructFields(req, ¶ms) - var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) - if !ok { - log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed or not set token in header"}) - return - } - log.NewInfo(params.OperationID, "GetAllConversationMessageOpt args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := user.NewUserClient(etcdConn) - RpcResp, err := client.GetAllConversationMsgOpt(context.Background(), req) + reqPb.Conversation = &pbUser.Conversation{} + err := utils.CopyStructFields(&reqPb, req) + err = utils.CopyStructFields(reqPb.Conversation, req.Conversation) if err != nil { - log.NewError(params.OperationID, "GetAllConversationMsgOpt rpc failed, ", req, err.Error()) + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", reqPb.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.SetConversation(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) return } - optResult := make([]*api.OptResult, 0) - for _, v := range RpcResp.ConversationOptResultList { - temp := new(api.OptResult) - temp.ConversationID = v.ConversationID - temp.Result = &v.Result - optResult = append(optResult, temp) - } - resp := api.GetAllConversationMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: optResult} - log.NewInfo(req.OperationID, "GetAllConversationMsgOpt api return: ", resp) + resp.ErrMsg = respPb.CommonResp.ErrMsg + resp.ErrCode = respPb.CommonResp.ErrCode + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) c.JSON(http.StatusOK, resp) } -func GetReceiveMessageOpt(c *gin.Context) { - params := api.GetReceiveMessageOptReq{} - if err := c.BindJSON(¶ms); err != nil { +func BatchSetConversations(c *gin.Context) { + var ( + req api.BatchSetConversationsReq + resp api.BatchSetConversationsResp + reqPb pbUser.BatchSetConversationsReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) return } - req := &rpc.GetReceiveMessageOptReq{} - utils.CopyStructFields(req, ¶ms) - var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) - if !ok { - log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) - return + if err := utils.CopyStructFields(&reqPb, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - log.NewInfo(params.OperationID, "GetReceiveMessageOpt args ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", reqPb.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := user.NewUserClient(etcdConn) - RpcResp, err := client.GetReceiveMessageOpt(context.Background(), req) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.BatchSetConversations(context.Background(), &reqPb) if err != nil { - log.NewError(params.OperationID, "GetReceiveMessageOpt rpc failed, ", req, err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()}) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) return } - optResult := make([]*api.OptResult, 0) - for _, v := range RpcResp.ConversationOptResultList { - temp := new(api.OptResult) - temp.ConversationID = v.ConversationID - temp.Result = &v.Result - optResult = append(optResult, temp) + if err := utils.CopyStructFields(&resp.Data, respPb); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) } - resp := api.GetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: optResult} - log.NewInfo(req.OperationID, "GetReceiveMessageOpt api return: ", resp) + resp.ErrMsg = respPb.CommonResp.ErrMsg + resp.ErrCode = respPb.CommonResp.ErrCode + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) c.JSON(http.StatusOK, resp) } +func GetAllConversations(c *gin.Context) { + var ( + req api.GetAllConversationsReq + resp api.GetAllConversationsResp + reqPb pbUser.GetAllConversationsReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + if err := utils.CopyStructFields(&reqPb, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", reqPb.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.GetAllConversations(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) + return + } + resp.ErrMsg = respPb.CommonResp.ErrMsg + resp.ErrCode = respPb.CommonResp.ErrCode + if err := utils.CopyStructFields(&resp.Conversations, respPb.Conversations); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed, ", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + c.JSON(http.StatusOK, resp) +} + +func GetConversation(c *gin.Context) { + var ( + req api.GetConversationReq + resp api.GetConversationResp + reqPb pbUser.GetConversationReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + if err := utils.CopyStructFields(&reqPb, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", reqPb.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.GetConversation(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) + return + } + resp.ErrMsg = respPb.CommonResp.ErrMsg + resp.ErrCode = respPb.CommonResp.ErrCode + if err := utils.CopyStructFields(&resp.Conversation, respPb.Conversation); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + c.JSON(http.StatusOK, resp) +} + +func GetConversations(c *gin.Context) { + var ( + req api.GetConversationsReq + resp api.GetConversationsResp + reqPb pbUser.GetConversationsReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + if err := utils.CopyStructFields(&reqPb, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", reqPb.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.GetConversations(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) + return + } + resp.ErrMsg = respPb.CommonResp.ErrMsg + resp.ErrCode = respPb.CommonResp.ErrCode + if err := utils.CopyStructFields(&resp.Conversations, respPb.Conversations); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + c.JSON(http.StatusOK, resp) +} + +func SetRecvMsgOpt(c *gin.Context) { + var ( + req api.SetRecvMsgOptReq + resp api.SetRecvMsgOptResp + reqPb pbUser.SetRecvMsgOptReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + if err := utils.CopyStructFields(&reqPb, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", reqPb.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + respPb, err := client.SetRecvMsgOpt(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) + return + } + resp.ErrMsg = respPb.CommonResp.ErrMsg + resp.ErrCode = respPb.CommonResp.ErrCode + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + c.JSON(http.StatusOK, resp) +} + +//Deprecated func SetReceiveMessageOpt(c *gin.Context) { - params := api.SetReceiveMessageOptReq{} - if err := c.BindJSON(¶ms); err != nil { - log.NewError(params.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) - return - } - req := &rpc.SetReceiveMessageOptReq{} - utils.CopyStructFields(req, ¶ms) - var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) - if !ok { - log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) - return - } - log.NewInfo(params.OperationID, "SetReceiveMessageOpt args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := user.NewUserClient(etcdConn) - RpcResp, err := client.SetReceiveMessageOpt(context.Background(), req) - if err != nil { - log.NewError(params.OperationID, "SetReceiveMessageOpt rpc failed, ", req, err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()}) - return - } - optResult := make([]*api.OptResult, 0) - for _, v := range RpcResp.ConversationOptResultList { - temp := new(api.OptResult) - temp.ConversationID = v.ConversationID - temp.Result = &v.Result - optResult = append(optResult, temp) - } - resp := api.SetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: optResult} - log.NewInfo(req.OperationID, "SetReceiveMessageOpt api return: ", resp) - c.JSON(http.StatusOK, resp) + +} + +//Deprecated +func GetReceiveMessageOpt(c *gin.Context) { + +} + +//Deprecated +func GetAllConversationMessageOpt(c *gin.Context) { + } diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 1c6b0a9b2..054878c0c 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -26,7 +26,7 @@ func AddBlack(c *gin.Context) { req := &rpc.AddBlacklistReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms) var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -57,7 +57,7 @@ func ImportFriend(c *gin.Context) { req := &rpc.ImportFriendReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -97,7 +97,7 @@ func AddFriend(c *gin.Context) { utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) req.ReqMsg = params.ReqMsg var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -131,7 +131,7 @@ func AddFriendResponse(c *gin.Context) { req.HandleMsg = params.HandleMsg req.HandleResult = params.Flag var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -164,7 +164,7 @@ func DeleteFriend(c *gin.Context) { req := &rpc.DeleteFriendReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -196,7 +196,7 @@ func GetBlacklist(c *gin.Context) { req := &rpc.GetBlacklistReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms) var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -235,7 +235,7 @@ func SetFriendRemark(c *gin.Context) { utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) req.Remark = params.Remark var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -267,7 +267,7 @@ func RemoveBlack(c *gin.Context) { req := &rpc.RemoveBlacklistReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -298,7 +298,7 @@ func IsFriend(c *gin.Context) { req := &rpc.IsFriendReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -365,7 +365,7 @@ func GetFriendList(c *gin.Context) { req := &rpc.GetFriendListReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms) var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -399,7 +399,7 @@ func GetFriendApplyList(c *gin.Context) { req := &rpc.GetFriendApplyListReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms) var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -433,7 +433,7 @@ func GetSelfFriendApplyList(c *gin.Context) { req := &rpc.GetSelfApplyListReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms) var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.CommID.OperationID) if !ok { log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index d7c8c93f3..f5e09af2b 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -30,7 +30,7 @@ func KickGroupMember(c *gin.Context) { req := &rpc.KickGroupMemberReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -72,7 +72,7 @@ func GetGroupMembersInfo(c *gin.Context) { req := &rpc.GetGroupMembersInfoReq{} utils.CopyStructFields(req, params) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) //c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -107,7 +107,7 @@ func GetGroupMemberList(c *gin.Context) { req := &rpc.GetGroupMemberListReq{} utils.CopyStructFields(req, params) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -142,7 +142,7 @@ func GetGroupAllMemberList(c *gin.Context) { req := &rpc.GetGroupAllMemberReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -175,7 +175,7 @@ func GetJoinedGroupList(c *gin.Context) { req := &rpc.GetJoinedGroupListReq{} utils.CopyStructFields(req, params) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -208,7 +208,7 @@ func InviteUserToGroup(c *gin.Context) { req := &rpc.InviteUserToGroupReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -253,7 +253,7 @@ func CreateGroup(c *gin.Context) { req.InitMemberList = append(req.InitMemberList, &rpc.GroupAddMemberInfo{UserID: v.UserID, RoleLevel: v.RoleLevel}) } var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -357,7 +357,7 @@ func GetGroupsInfo(c *gin.Context) { req := &rpc.GetGroupsInfoReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -390,7 +390,7 @@ func ApplicationGroupResponse(c *gin.Context) { req := &rpc.GroupApplicationResponseReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -422,7 +422,7 @@ func JoinGroup(c *gin.Context) { req := &rpc.JoinGroupReq{} utils.CopyStructFields(req, params) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -453,7 +453,7 @@ func QuitGroup(c *gin.Context) { req := &rpc.QuitGroupReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -485,7 +485,7 @@ func SetGroupInfo(c *gin.Context) { utils.CopyStructFields(req.GroupInfo, ¶ms) req.OperationID = params.OperationID var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -516,7 +516,7 @@ func TransferGroupOwner(c *gin.Context) { req := &rpc.TransferGroupOwnerReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -537,3 +537,35 @@ func TransferGroupOwner(c *gin.Context) { log.NewInfo(req.OperationID, "TransferGroupOwner api return ", resp) c.JSON(http.StatusOK, resp) } + +func DismissGroup(c *gin.Context) { + params := api.DismissGroupReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.DismissGroupReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.DismissGroup(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + resp := api.DismissGroupResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp) + c.JSON(http.StatusOK, resp) +} diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 8ff3e5906..802bb4207 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -20,6 +20,7 @@ import ( "context" "github.com/gin-gonic/gin" "github.com/go-playground/validator/v10" + "github.com/golang/protobuf/proto" "github.com/mitchellh/mapstructure" "net/http" "strings" @@ -29,6 +30,7 @@ var validate *validator.Validate func newUserSendMsgReq(params *ManagementSendMsgReq) *pbChat.SendMsgReq { var newContent string + var err error switch params.ContentType { case constant.Text: newContent = params.Content["text"].(string) @@ -40,6 +42,9 @@ func newUserSendMsgReq(params *ManagementSendMsgReq) *pbChat.SendMsgReq { fallthrough case constant.File: newContent = utils.StructToJsonString(params.Content) + case constant.Revoke: + newContent = params.Content["revokeMsgClientID"].(string) + default: } var options map[string]bool @@ -70,6 +75,14 @@ func newUserSendMsgReq(params *ManagementSendMsgReq) *pbChat.SendMsgReq { OfflinePushInfo: params.OfflinePushInfo, }, } + if params.ContentType == constant.OANotification { + var tips open_im_sdk.TipsComm + tips.JsonDetail = utils.StructToJsonString(params.Content) + pbData.MsgData.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(params.OperationID, "Marshal failed ", err.Error(), tips.String()) + } + } return &pbData } func init() { @@ -103,7 +116,11 @@ func ManagementSendMsg(c *gin.Context) { //case constant.Location: case constant.Custom: data = CustomElem{} - //case constant.Revoke: + case constant.Revoke: + data = RevokeElem{} + case constant.OANotification: + data = OANotificationElem{} + params.SessionType = constant.NotificationChatType //case constant.HasReadReceipt: //case constant.Typing: //case constant.Quote: @@ -121,12 +138,13 @@ func ManagementSendMsg(c *gin.Context) { log.ErrorByKv("data args validate err", "", "err", err.Error()) return } - + log.NewInfo("", data, params) token := c.Request.Header.Get("token") claims, err := token_verify.ParseToken(token) if err != nil { log.NewError(params.OperationID, "parse token failed", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) + return } if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""}) @@ -138,11 +156,13 @@ func ManagementSendMsg(c *gin.Context) { if len(params.RecvID) == 0 { log.NewError(params.OperationID, "recvID is a null string") c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""}) + return } case constant.GroupChatType: if len(params.GroupID) == 0 { log.NewError(params.OperationID, "groupID is a null string") c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""}) + return } } @@ -257,3 +277,30 @@ type CustomElem struct { type TextElem struct { Text string `mapstructure:"text" validate:"required"` } + +type RevokeElem struct { + RevokeMsgClientID string `mapstructure:"revokeMsgClientID" validate:"required"` +} +type OANotificationElem struct { + NotificationName string `mapstructure:"notificationName" validate:"required"` + NotificationFaceURL string `mapstructure:"notificationFaceURL" validate:"required"` + NotificationType int32 `mapstructure:"notificationType" validate:"required"` + Text string `mapstructure:"text" validate:"required"` + Url string `mapstructure:"url"` + MixType int32 `mapstructure:"mixType"` + Image struct { + SourceUrl string `mapstructure:"sourceUrl"` + SnapshotUrl string `mapstructure:"snapshotUrl"` + } `mapstructure:"image"` + Video struct { + SourceUrl string `mapstructure:"sourceUrl"` + SnapshotUrl string `mapstructure:"snapshotUrl"` + Duration int64 `mapstructure:"duration"` + } `mapstructure:"video"` + File struct { + SourceUrl string `mapstructure:"sourceUrl"` + FileName string `mapstructure:"fileName"` + FileSize int64 `mapstructure:"fileSize"` + } `mapstructure:"file"` + Ex string `mapstructure:"ex"` +} diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index 6ef6f678f..5bcc19be0 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -31,7 +31,7 @@ func DeleteUser(c *gin.Context) { req := &rpc.DeleteUsersReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -63,7 +63,7 @@ func GetAllUsersUid(c *gin.Context) { req := &rpc.GetAllUserIDReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -95,7 +95,7 @@ func AccountCheck(c *gin.Context) { req := &rpc.AccountCheckReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -127,7 +127,7 @@ func GetUsersOnlineStatus(c *gin.Context) { req := &pbRelay.GetUsersOnlineStatusReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) diff --git a/internal/api/office/tag.go b/internal/api/office/tag.go new file mode 100644 index 000000000..1f14a0116 --- /dev/null +++ b/internal/api/office/tag.go @@ -0,0 +1,236 @@ +package office + +import ( + apistruct "Open_IM/pkg/base_info" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbOffice "Open_IM/pkg/proto/office" + pbCommon "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "context" + "github.com/gin-gonic/gin" + "net/http" + "strings" +) + +func GetUserTags(c *gin.Context) { + var ( + req apistruct.GetUserTagsReq + resp apistruct.GetUserTagsResp + reqPb pbOffice.GetUserTagsReq + respPb *pbOffice.GetUserTagsResp + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + reqPb.UserID = userID + reqPb.OperationID = req.OperationID + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName) + client := pbOffice.NewOfficeServiceClient(etcdConn) + respPb, err := client.GetUserTags(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserTags failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserTags rpc server failed" + err.Error()}) + return + } + if err := utils.CopyStructFields(&resp.CommResp, respPb.CommonResp); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + resp.Data.Tags = respPb.Tags + c.JSON(http.StatusOK, resp) +} + +func CreateTag(c *gin.Context) { + var ( + req apistruct.CreateTagReq + resp apistruct.CreateTagResp + reqPb pbOffice.CreateTagReq + respPb *pbOffice.CreateTagResp + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + if err := utils.CopyStructFields(&reqPb, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + reqPb.UserID = userID + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName) + client := pbOffice.NewOfficeServiceClient(etcdConn) + respPb, err := client.CreateTag(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserTags failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "CreateTag rpc server failed" + err.Error()}) + return + } + if err := utils.CopyStructFields(&resp.CommResp, respPb.CommonResp); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + c.JSON(http.StatusOK, resp) +} + +func DeleteTag(c *gin.Context) { + var ( + req apistruct.DeleteTagReq + resp apistruct.DeleteTagResp + reqPb pbOffice.DeleteTagReq + respPb *pbOffice.DeleteTagResp + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + if err := utils.CopyStructFields(&reqPb, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + reqPb.UserID = userID + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName) + client := pbOffice.NewOfficeServiceClient(etcdConn) + respPb, err := client.DeleteTag(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserTags failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "CreateTag rpc server failed" + err.Error()}) + return + } + if err := utils.CopyStructFields(&resp.CommResp, respPb.CommonResp); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + c.JSON(http.StatusOK, resp) +} + +func SetTag(c *gin.Context) { + var ( + req apistruct.SetTagReq + resp apistruct.SetTagResp + reqPb pbOffice.SetTagReq + respPb *pbOffice.SetTagResp + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + if err := utils.CopyStructFields(&reqPb, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + reqPb.UserID = userID + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName) + client := pbOffice.NewOfficeServiceClient(etcdConn) + respPb, err := client.SetTag(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserTags failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "CreateTag rpc server failed" + err.Error()}) + return + } + if err := utils.CopyStructFields(&resp.CommResp, respPb.CommonResp); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + c.JSON(http.StatusOK, resp) +} + +func SendMsg2Tag(c *gin.Context) { + var ( + req apistruct.SendMsg2TagReq + resp apistruct.SendMsg2TagResp + reqPb pbOffice.SendMsg2TagReq + respPb *pbOffice.SendMsg2TagResp + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + if err := utils.CopyStructFields(&reqPb, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + reqPb.SendID = userID + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName) + client := pbOffice.NewOfficeServiceClient(etcdConn) + respPb, err := client.SendMsg2Tag(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserTags failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "CreateTag rpc server failed" + err.Error()}) + return + } + if err := utils.CopyStructFields(&resp.CommResp, respPb.CommonResp); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + c.JSON(http.StatusOK, resp) +} + +func GetTagSendLogs(c *gin.Context) { + var ( + req apistruct.GetTagSendLogsReq + resp apistruct.GetTagSendLogsResp + reqPb pbOffice.GetTagSendLogsReq + respPb *pbOffice.GetTagSendLogsResp + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + reqPb.UserID = userID + reqPb.OperationID = req.OperationID + reqPb.Pagination = &pbCommon.RequestPagination{ + PageNumber: req.PageNumber, + ShowNumber: req.ShowNumber, + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfficeName) + client := pbOffice.NewOfficeServiceClient(etcdConn) + respPb, err := client.GetTagSendLogs(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserTags failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "CreateTag rpc server failed" + err.Error()}) + return + } + if err := utils.CopyStructFields(&resp.CommResp, respPb.CommonResp); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", err.Error()) + } + resp.Data.Logs = respPb.TagSendLogs + resp.Data.ShowNumber = respPb.Pagination.ShowNumber + resp.Data.CurrentPage = respPb.Pagination.CurrentPage + c.JSON(http.StatusOK, resp) +} diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 29338ee77..564d19a1e 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -10,13 +10,18 @@ import ( url2 "net/url" ) +var ( + minioClient *minio.Client +) + func MinioInit() { + log.NewInfo("", utils.GetSelfFuncName()) minioUrl, err := url2.Parse(config.Config.Credential.Minio.Endpoint) if err != nil { log.NewError("", utils.GetSelfFuncName(), "parse failed, please check config/config.yaml", err.Error()) return } - minioClient, err := minio.New(minioUrl.Host, &minio.Options{ + minioClient, err = minio.New(minioUrl.Host, &minio.Options{ Creds: credentials.NewStaticV4(config.Config.Credential.Minio.AccessKeyID, config.Config.Credential.Minio.SecretAccessKey, ""), Secure: false, }) @@ -45,8 +50,8 @@ func MinioInit() { // 自动化桶public的代码 //err = minioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policy.BucketPolicyReadWrite) //if err != nil { - // log.NewError("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in ", err.Error()) - // return`z + // log.NewError("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in web", err.Error()) + // return //} log.NewInfo("", utils.GetSelfFuncName(), "minio create and set policy success") } diff --git a/internal/api/third/minio_storage_credential.go b/internal/api/third/minio_storage_credential.go index f34f64c94..50ab64eb2 100644 --- a/internal/api/third/minio_storage_credential.go +++ b/internal/api/third/minio_storage_credential.go @@ -8,15 +8,92 @@ import ( "Open_IM/pkg/common/token_verify" _ "Open_IM/pkg/common/token_verify" "Open_IM/pkg/utils" + "context" "github.com/gin-gonic/gin" + "github.com/minio/minio-go/v7" _ "github.com/minio/minio-go/v7" cr "github.com/minio/minio-go/v7/pkg/credentials" "net/http" ) +func MinioUploadFile(c *gin.Context) { + var ( + req apiStruct.MinioUploadFileReq + resp apiStruct.MinioUploadFileResp + ) + defer func() { + if r := recover(); r != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), r) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "missing file or snapShot args"}) + return + } + }() + if err := c.Bind(&req); err != nil { + log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + ok, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + log.NewError("", utils.GetSelfFuncName(), "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) + switch req.FileType { + // videoType upload snapShot + case constant.VideoType: + snapShotFile, err := c.FormFile("snapShot") + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "missing snapshot arg: " + err.Error()}) + return + } + snapShotFileObj, err := snapShotFile.Open() + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "Open file error", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + snapShotNewName, snapShotNewType := utils.GetNewFileNameAndContentType(snapShotFile.Filename, constant.ImageType) + log.Debug(req.OperationID, utils.GetSelfFuncName(), snapShotNewName, snapShotNewType) + _, err = minioClient.PutObject(context.Background(), config.Config.Credential.Minio.Bucket, snapShotNewName, snapShotFileObj, snapShotFile.Size, minio.PutObjectOptions{ContentType: snapShotNewType}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "PutObject snapShotFile error", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + resp.SnapshotURL = config.Config.Credential.Minio.Endpoint + "/" + config.Config.Credential.Minio.Bucket + "/" + snapShotNewName + resp.SnapshotNewName = snapShotNewName + } + file, err := c.FormFile("file") + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "missing file arg: " + err.Error()}) + return + } + fileObj, err := file.Open() + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "Open file error", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "invalid file path" + err.Error()}) + return + } + newName, newType := utils.GetNewFileNameAndContentType(file.Filename, req.FileType) + log.Debug(req.OperationID, utils.GetSelfFuncName(), newName, newType) + _, err = minioClient.PutObject(context.Background(), config.Config.Credential.Minio.Bucket, newName, fileObj, file.Size, minio.PutObjectOptions{ContentType: newType}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "open file error") + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "invalid file path" + err.Error()}) + return + } + resp.NewName = newName + resp.URL = config.Config.Credential.Minio.Endpoint + "/" + config.Config.Credential.Minio.Bucket + "/" + newName + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) + return +} + func MinioStorageCredential(c *gin.Context) { var ( - req apiStruct.MinioStorageCredentialReq + req apiStruct.MinioStorageCredentialReq resp apiStruct.MiniostorageCredentialResp ) if err := c.BindJSON(&req); err != nil { @@ -24,7 +101,7 @@ func MinioStorageCredential(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - ok, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError("", utils.GetSelfFuncName(), "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -51,5 +128,5 @@ func MinioStorageCredential(c *gin.Context) { resp.AccessKeyID = v.AccessKeyID resp.BucketName = config.Config.Credential.Minio.Bucket resp.StsEndpointURL = config.Config.Credential.Minio.Endpoint - c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data":resp}) + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) } diff --git a/internal/api/third/tencent_cloud_storage_credential.go b/internal/api/third/tencent_cloud_storage_credential.go index d78d03b96..ed293791e 100644 --- a/internal/api/third/tencent_cloud_storage_credential.go +++ b/internal/api/third/tencent_cloud_storage_credential.go @@ -22,7 +22,7 @@ func TencentCloudStorageCredential(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 4fa1c62dd..1756a9f8d 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -26,7 +26,7 @@ func GetUsersInfo(c *gin.Context) { req := &rpc.GetUserInfoReq{} utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -66,7 +66,7 @@ func UpdateUserInfo(c *gin.Context) { req.OperationID = params.OperationID var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) @@ -98,7 +98,7 @@ func GetSelfUserInfo(c *gin.Context) { utils.CopyStructFields(req, ¶ms) var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) diff --git a/internal/cms_api/middleware/jwt_auth.go b/internal/cms_api/middleware/jwt_auth.go index f245fc4ad..a6f1af993 100644 --- a/internal/cms_api/middleware/jwt_auth.go +++ b/internal/cms_api/middleware/jwt_auth.go @@ -11,7 +11,7 @@ import ( func JWTAuth() gin.HandlerFunc { return func(c *gin.Context) { - ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), "") log.NewInfo("0", utils.GetSelfFuncName(), "userID: ", userID) c.Set("userID", userID) if !ok { diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index 8e5fdcdac..b891de437 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -28,7 +28,7 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { dec := gob.NewDecoder(b) err := dec.Decode(&m) if err != nil { - log.ErrorByKv("ws Decode err", "", "err", err.Error()) + log.NewError("", "ws Decode err", err.Error()) ws.sendErrMsg(conn, 200, err.Error(), constant.WSDataError, "", "") err = conn.Close() if err != nil { @@ -37,7 +37,7 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { return } if err := validate.Struct(m); err != nil { - log.ErrorByKv("ws args validate err", "", "err", err.Error()) + log.NewError("", "ws args validate err", err.Error()) ws.sendErrMsg(conn, 201, err.Error(), m.ReqIdentifier, m.MsgIncr, m.OperationID) return } @@ -45,7 +45,7 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { // ws.sendErrMsg(conn, 202, "token validate err", m.ReqIdentifier, m.MsgIncr,m.OperationID) // return //} - log.InfoByKv("Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID, "msgIncr", m.MsgIncr) + log.NewInfo(m.OperationID, "Basic Info Authentication Success", m) switch m.ReqIdentifier { case constant.WSGetNewestSeq: @@ -61,7 +61,7 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { log.NewInfo("", "goroutine num is ", runtime.NumGoroutine()) } func (ws *WServer) getSeqReq(conn *UserConn, m *Req) { - log.NewInfo(m.OperationID, "Ws call success to getNewSeq", m.MsgIncr, m.SendID, m.ReqIdentifier) + log.NewInfo(m.OperationID, "Ws call success to getNewSeq", m.MsgIncr, m.SendID, m.ReqIdentifier, m.Data) rpcReq := pbChat.GetMaxAndMinSeqReq{} nReply := new(pbChat.GetMaxAndMinSeqResp) rpcReq.UserID = m.SendID @@ -99,15 +99,15 @@ func (ws *WServer) getSeqResp(conn *UserConn, m *Req, pb *pbChat.GetMaxAndMinSeq } func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { - log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq start", m.SendID, m.ReqIdentifier, m.MsgIncr) + log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq start", m.SendID, m.ReqIdentifier, m.MsgIncr, m.Data) nReply := new(sdk_ws.PullMessageBySeqListResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsgBySeqList) - log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq middle", m.SendID, m.ReqIdentifier, m.MsgIncr, data.(sdk_ws.PullMessageBySeqListReq).SeqList) if isPass { rpcReq := sdk_ws.PullMessageBySeqListReq{} rpcReq.SeqList = data.(sdk_ws.PullMessageBySeqListReq).SeqList rpcReq.UserID = m.SendID rpcReq.OperationID = m.OperationID + log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq middle", m.SendID, m.ReqIdentifier, m.MsgIncr, data.(sdk_ws.PullMessageBySeqListReq).SeqList) grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) msgClient := pbChat.NewChatClient(grpcConn) reply, err := msgClient.PullMessageBySeqList(context.Background(), &rpcReq) @@ -145,7 +145,7 @@ func (ws *WServer) pullMsgBySeqListResp(conn *UserConn, m *Req, pb *sdk_ws.PullM } func (ws *WServer) sendMsgReq(conn *UserConn, m *Req) { sendMsgCount++ - log.NewInfo(m.OperationID, "Ws call success to sendMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID) + log.NewInfo(m.OperationID, "Ws call success to sendMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID, m.Data) nReply := new(pbChat.SendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) if isPass { @@ -196,51 +196,48 @@ func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) { } func (ws *WServer) sendSignalMsgReq(conn *UserConn, m *Req) { - sendMsgCount++ - log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID) + log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID, m.Data) nReply := new(pbChat.SendMsgResp) - isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) + isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendSignalMsg) if isPass { - data := pData.(sdk_ws.MsgData) - pbData := pbChat.SendMsgReq{ - Token: m.Token, - OperationID: m.OperationID, - MsgData: &data, - } - log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq middle", m.ReqIdentifier, m.SendID, m.MsgIncr, data) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) - client := pbChat.NewChatClient(etcdConn) - reply, err := client.SendMsg(context.Background(), &pbData) - if err != nil { - log.NewError(pbData.OperationID, "rpc sendMsg err", err.Error()) - nReply.ErrCode = 200 - nReply.ErrMsg = err.Error() - ws.sendSignalMsgResp(conn, m, nReply) + isPass2, errCode2, errMsg2, signalResp, msgData := ws.signalMessageAssemble(pData.(*sdk_ws.SignalReq), m.OperationID) + if isPass2 { + pbData := pbChat.SendMsgReq{ + Token: m.Token, + OperationID: m.OperationID, + MsgData: msgData, + } + log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq middle", m.ReqIdentifier, m.SendID, m.MsgIncr, msgData) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) + client := pbChat.NewChatClient(etcdConn) + reply, err := client.SendMsg(context.Background(), &pbData) + if err != nil { + log.NewError(pbData.OperationID, "rpc sendMsg err", err.Error()) + nReply.ErrCode = 200 + nReply.ErrMsg = err.Error() + ws.sendSignalMsgResp(conn, 200, err.Error(), m, signalResp) + } else { + log.NewInfo(pbData.OperationID, "rpc call success to sendMsgReq", reply.String()) + ws.sendSignalMsgResp(conn, 0, "", m, signalResp) + } } else { - log.NewInfo(pbData.OperationID, "rpc call success to sendMsgReq", reply.String()) - ws.sendSignalMsgResp(conn, m, reply) + log.NewError(m.OperationID, isPass2, errCode2, errMsg2) + ws.sendSignalMsgResp(conn, errCode2, errMsg2, m, signalResp) } - } else { - nReply.ErrCode = errCode - nReply.ErrMsg = errMsg - ws.sendSignalMsgResp(conn, m, nReply) + ws.sendSignalMsgResp(conn, errCode, errMsg, m, nil) } } -func (ws *WServer) sendSignalMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) { +func (ws *WServer) sendSignalMsgResp(conn *UserConn, errCode int32, errMsg string, m *Req, pb *sdk_ws.SignalResp) { // := make(map[string]interface{}) - var mReplyData sdk_ws.UserSendMsgResp - mReplyData.ClientMsgID = pb.GetClientMsgID() - mReplyData.ServerMsgID = pb.GetServerMsgID() - mReplyData.SendTime = pb.GetSendTime() - b, _ := proto.Marshal(&mReplyData) + b, _ := proto.Marshal(pb) mReply := Resp{ ReqIdentifier: m.ReqIdentifier, MsgIncr: m.MsgIncr, - ErrCode: pb.GetErrCode(), - ErrMsg: pb.GetErrMsg(), + ErrCode: errCode, + ErrMsg: errMsg, OperationID: m.OperationID, Data: b, } diff --git a/internal/msg_gateway/gate/open_im_media/room.go b/internal/msg_gateway/gate/open_im_media/room.go new file mode 100644 index 000000000..bddd36922 --- /dev/null +++ b/internal/msg_gateway/gate/open_im_media/room.go @@ -0,0 +1,67 @@ +package open_im_media + +import ( + pbRtc "Open_IM/pkg/proto/rtc" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "context" + "errors" + "github.com/jinzhu/copier" + "google.golang.org/grpc" +) + +const ( + // Address gRPC服务地址 + Address = "127.0.0.1:11300" +) + +//var roomClient *lksdk.RoomServiceClient + +type Media struct { +} + +func NewMedia() *Media { + return &Media{} +} + +func (m *Media) GetJoinToken(room, identity string, operationID string, data *open_im_sdk.ParticipantMetaData) (string, string, error) { + var newData pbRtc.ParticipantMetaData + copier.Copy(&newData, data) + conn, err := grpc.Dial(Address, grpc.WithInsecure()) + if err != nil { + return "", "", err + } + defer conn.Close() + c := pbRtc.NewRtcServiceClient(conn) + req := &pbRtc.GetJoinTokenReq{Room: room, OperationID: operationID, Identity: identity, MetaData: &newData} + resp, err := c.GetJoinToken(context.Background(), req) + if err != nil { + return "", "", err + } + if resp.CommonResp.ErrCode != 0 { + return "", "", errors.New(resp.CommonResp.ErrMsg) + } + return resp.Jwt, resp.LiveURL, nil + //at := auth.NewAccessToken(m.ApiKey, m.ApiSecret) + //grant := &auth.VideoGrant{ + // RoomJoin: true, + // Room: room, + //} + //at.AddGrant(grant). + // SetIdentity(identity). + // SetValidFor(time.Hour) + // + //return at.ToJWT() +} + +func init() { + //roomClient = lksdk.NewRoomServiceClient(MediaAddress, ApiKey, ApiSecret) +} + +func (m *Media) CreateRoom(roomName string) (error, error) { + return nil, nil + //return roomClient.CreateRoom(context.Background(), &livekit.CreateRoomRequest{ + // Name: roomName, + // EmptyTimeout: 60 * 3, + //}) + +} diff --git a/internal/msg_gateway/gate/validate.go b/internal/msg_gateway/gate/validate.go index c763ff1b2..378cbf1a7 100644 --- a/internal/msg_gateway/gate/validate.go +++ b/internal/msg_gateway/gate/validate.go @@ -7,9 +7,12 @@ package gate import ( + "Open_IM/internal/msg_gateway/gate/open_im_media" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "errors" "github.com/golang/protobuf/proto" ) @@ -58,7 +61,7 @@ type SeqListData struct { func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, errMsg string, returnData interface{}) { switch r { - case constant.WSSendMsg | constant.WSSendSignalMsg: + case constant.WSSendMsg: data := open_im_sdk.MsgData{} if err := proto.Unmarshal(m.Data, &data); err != nil { log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) @@ -70,6 +73,18 @@ func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, er } return true, 0, "", data + case constant.WSSendSignalMsg: + data := open_im_sdk.SignalReq{} + if err := proto.Unmarshal(m.Data, &data); err != nil { + log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) + return false, 203, err.Error(), nil + } + if err := validate.Struct(data); err != nil { + log.ErrorByKv("data args validate err", "", "err", err.Error(), "reqIdentifier", r) + return false, 204, err.Error(), nil + + } + return true, 0, "", &data case constant.WSPullMsgBySeqList: data := open_im_sdk.PullMessageBySeqListReq{} if err := proto.Unmarshal(m.Data, &data); err != nil { @@ -101,3 +116,140 @@ func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, er //} else } + +func (ws *WServer) signalMessageAssemble(s *open_im_sdk.SignalReq, operationID string) (isPass bool, errCode int32, errMsg string, r *open_im_sdk.SignalResp, msgData *open_im_sdk.MsgData) { + var msg open_im_sdk.MsgData + var resp open_im_sdk.SignalResp + media := open_im_media.NewMedia() + msg.MsgFrom = constant.UserMsgType + msg.ContentType = constant.SignalingNotification + reqData, e := proto.Marshal(s) + if e != nil { + return false, 201, e.Error(), nil, nil + } + msg.Content = reqData + msg.CreateTime = utils.GetCurrentTimestampByMill() + options := make(map[string]bool, 6) + utils.SetSwitchFromOptions(options, constant.IsHistory, false) + utils.SetSwitchFromOptions(options, constant.IsPersistent, false) + utils.SetSwitchFromOptions(options, constant.IsSenderSync, true) + utils.SetSwitchFromOptions(options, constant.IsConversationUpdate, false) + utils.SetSwitchFromOptions(options, constant.IsSenderConversationUpdate, false) + utils.SetSwitchFromOptions(options, constant.IsUnreadCount, false) + utils.SetSwitchFromOptions(options, constant.IsOfflinePush, true) + msg.Options = options + switch payload := s.Payload.(type) { + case *open_im_sdk.SignalReq_Invite: + token, liveURL, err2 := media.GetJoinToken(payload.Invite.Invitation.RoomID, payload.Invite.Invitation.InviterUserID, operationID, payload.Invite.Participant) + if err2 != nil { + return false, 202, err2.Error(), nil, nil + } + invite := open_im_sdk.SignalResp_Invite{&open_im_sdk.SignalInviteReply{ + Token: token, + RoomID: payload.Invite.Invitation.RoomID, + LiveURL: liveURL, + }} + resp.Payload = &invite + msg.SenderPlatformID = payload.Invite.Invitation.PlatformID + msg.SessionType = payload.Invite.Invitation.SessionType + msg.OfflinePushInfo = payload.Invite.OfflinePushInfo + msg.SendID = payload.Invite.Invitation.InviterUserID + if len(payload.Invite.Invitation.InviteeUserIDList) > 0 { + msg.RecvID = payload.Invite.Invitation.InviteeUserIDList[0] + } else { + return false, 203, errors.New("InviteeUserIDList is null").Error(), nil, nil + } + msg.ClientMsgID = utils.GetMsgID(payload.Invite.Invitation.InviterUserID) + return true, 0, "", &resp, &msg + case *open_im_sdk.SignalReq_InviteInGroup: + token, liveURL, err2 := media.GetJoinToken(payload.InviteInGroup.Invitation.RoomID, payload.InviteInGroup.Invitation.InviterUserID, operationID, payload.InviteInGroup.Participant) + if err2 != nil { + return false, 204, err2.Error(), nil, nil + } + inviteGroup := open_im_sdk.SignalResp_InviteInGroup{&open_im_sdk.SignalInviteInGroupReply{ + RoomID: payload.InviteInGroup.Invitation.RoomID, + Token: token, + LiveURL: liveURL, + }} + resp.Payload = &inviteGroup + msg.SenderPlatformID = payload.InviteInGroup.Invitation.PlatformID + msg.SessionType = payload.InviteInGroup.Invitation.SessionType + msg.OfflinePushInfo = payload.InviteInGroup.OfflinePushInfo + msg.SendID = payload.InviteInGroup.Invitation.InviterUserID + if len(payload.InviteInGroup.Invitation.InviteeUserIDList) > 0 { + msg.GroupID = payload.InviteInGroup.Invitation.GroupID + } else { + return false, 205, errors.New("InviteeUserIDList is null").Error(), nil, nil + } + msg.ClientMsgID = utils.GetMsgID(payload.InviteInGroup.Invitation.InviterUserID) + + return true, 0, "", &resp, &msg + case *open_im_sdk.SignalReq_Cancel: + cancel := open_im_sdk.SignalResp_Cancel{&open_im_sdk.SignalCancelReply{}} + resp.Payload = &cancel + msg.OfflinePushInfo = payload.Cancel.OfflinePushInfo + msg.SendID = payload.Cancel.Invitation.InviterUserID + msg.SenderPlatformID = payload.Cancel.Invitation.PlatformID + msg.SessionType = payload.Cancel.Invitation.SessionType + if len(payload.Cancel.Invitation.InviteeUserIDList) > 0 { + switch payload.Cancel.Invitation.SessionType { + case constant.SingleChatType: + msg.RecvID = payload.Cancel.Invitation.InviteeUserIDList[0] + case constant.GroupChatType: + msg.GroupID = payload.Cancel.Invitation.GroupID + } + } else { + return false, 206, errors.New("InviteeUserIDList is null").Error(), nil, nil + } + msg.ClientMsgID = utils.GetMsgID(payload.Cancel.OpUserID) + return true, 0, "", &resp, &msg + case *open_im_sdk.SignalReq_Accept: + token, liveURL, err2 := media.GetJoinToken(payload.Accept.Invitation.RoomID, payload.Accept.OpUserID, operationID, payload.Accept.Participant) + if err2 != nil { + return false, 207, err2.Error(), nil, nil + } + accept := open_im_sdk.SignalResp_Accept{&open_im_sdk.SignalAcceptReply{ + Token: token, + LiveURL: liveURL, + RoomID: payload.Accept.Invitation.RoomID, + }} + resp.Payload = &accept + msg.OfflinePushInfo = payload.Accept.OfflinePushInfo + msg.SendID = payload.Accept.OpUserID + msg.SenderPlatformID = payload.Accept.Invitation.PlatformID + msg.SessionType = payload.Accept.Invitation.SessionType + if len(payload.Accept.Invitation.InviteeUserIDList) > 0 { + switch payload.Accept.Invitation.SessionType { + case constant.SingleChatType: + msg.RecvID = payload.Accept.Invitation.InviterUserID + case constant.GroupChatType: + msg.GroupID = payload.Accept.Invitation.GroupID + } + } else { + return false, 208, errors.New("InviteeUserIDList is null").Error(), nil, nil + } + msg.ClientMsgID = utils.GetMsgID(payload.Accept.OpUserID) + return true, 0, "", &resp, &msg + case *open_im_sdk.SignalReq_HungUp: + case *open_im_sdk.SignalReq_Reject: + reject := open_im_sdk.SignalResp_Reject{&open_im_sdk.SignalRejectReply{}} + resp.Payload = &reject + msg.OfflinePushInfo = payload.Reject.OfflinePushInfo + msg.SendID = payload.Reject.OpUserID + msg.SenderPlatformID = payload.Reject.Invitation.PlatformID + msg.SessionType = payload.Reject.Invitation.SessionType + if len(payload.Reject.Invitation.InviteeUserIDList) > 0 { + switch payload.Reject.Invitation.SessionType { + case constant.SingleChatType: + msg.RecvID = payload.Reject.Invitation.InviterUserID + case constant.GroupChatType: + msg.GroupID = payload.Reject.Invitation.GroupID + } + } else { + return false, 209, errors.New("InviteeUserIDList is null").Error(), nil, nil + } + msg.ClientMsgID = utils.GetMsgID(payload.Reject.OpUserID) + return true, 0, "", &resp, &msg + } + return false, 210, errors.New("InviteeUserIDList is null").Error(), nil, nil +} diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 477d43420..7c602a5fc 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -93,20 +93,20 @@ func (ws *WServer) writeMsg(conn *UserConn, a int, msg []byte) error { return conn.WriteMessage(a, msg) } -func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newConn *UserConn, token string) { +func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newConn *UserConn, token string, operationID string) { switch config.Config.MultiLoginPolicy { case constant.AllLoginButSameTermKick: - if oldConnMap, ok := ws.wsUserToConn[uid]; ok { + if oldConnMap, ok := ws.wsUserToConn[uid]; ok { // user->map[platform->conn] if oldConn, ok := oldConnMap[constant.PlatformIDToName(platformID)]; ok { - log.NewDebug("", uid, platformID, "kick old conn") + log.NewDebug(operationID, uid, platformID, "kick old conn") ws.sendKickMsg(oldConn, newConn) m, err := db.DB.GetTokenMapByUidPid(uid, constant.PlatformIDToName(platformID)) if err != nil && err != redis.ErrNil { - log.NewError("", "get token from redis err", err.Error()) + log.NewError(operationID, "get token from redis err", err.Error()) return } if m == nil { - log.NewError("", "get token from redis err", "m is nil") + log.NewError(operationID, "get token from redis err", "m is nil") return } for k, _ := range m { @@ -114,10 +114,10 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newCo m[k] = constant.KickedToken } } - log.NewDebug("get map is ", m) + log.NewDebug(operationID, "get map is ", m) err = db.DB.SetTokenMapByUidPid(uid, platformID, m) if err != nil { - log.NewError("", "SetTokenMapByUidPid err", err.Error()) + log.NewError(operationID, "SetTokenMapByUidPid err", err.Error()) return } err = oldConn.Close() @@ -128,13 +128,15 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newCo } delete(ws.wsConnToUser, oldConn) if err != nil { - log.NewError("", "conn close err", err.Error(), uid, platformID) + log.NewError(operationID, "conn close err", err.Error(), uid, platformID) } + } else { + log.NewWarn(operationID, "abnormal uid-conn ", uid, platformID, oldConnMap[constant.PlatformIDToName(platformID)]) } } else { - log.NewDebug("no other conn", ws.wsUserToConn) + log.NewDebug(operationID, "no other conn", ws.wsUserToConn, uid, platformID) } case constant.SingleTerminalLogin: @@ -162,14 +164,17 @@ func (ws *WServer) sendKickMsg(oldConn, newConn *UserConn) { func (ws *WServer) addUserConn(uid string, platformID int32, conn *UserConn, token string) { rwLock.Lock() defer rwLock.Unlock() - ws.MultiTerminalLoginChecker(uid, platformID, conn, token) + operationID := utils.OperationIDGenerator() + ws.MultiTerminalLoginChecker(uid, platformID, conn, token, operationID) if oldConnMap, ok := ws.wsUserToConn[uid]; ok { oldConnMap[constant.PlatformIDToName(platformID)] = conn ws.wsUserToConn[uid] = oldConnMap + log.Debug(operationID, "user not first come in, add conn ", uid, platformID, conn, oldConnMap) } else { i := make(map[string]*UserConn) i[constant.PlatformIDToName(platformID)] = conn ws.wsUserToConn[uid] = i + log.Debug(operationID, "user first come in, new user, conn", uid, platformID, conn, ws.wsUserToConn[uid]) } if oldStringMap, ok := ws.wsConnToUser[conn]; ok { oldStringMap[constant.PlatformIDToName(platformID)] = uid @@ -183,7 +188,7 @@ func (ws *WServer) addUserConn(uid string, platformID int32, conn *UserConn, tok for _, v := range ws.wsUserToConn { count = count + len(v) } - log.Debug("WS Add operation", "", "wsUser added", ws.wsUserToConn, "connection_uid", uid, "connection_platform", constant.PlatformIDToName(platformID), "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) + log.Debug(operationID, "WS Add operation", "", "wsUser added", ws.wsUserToConn, "connection_uid", uid, "connection_platform", constant.PlatformIDToName(platformID), "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) userCount = uint64(len(ws.wsUserToConn)) } @@ -258,9 +263,9 @@ func (ws *WServer) headerCheck(w http.ResponseWriter, r *http.Request) bool { status := http.StatusUnauthorized query := r.URL.Query() if len(query["token"]) != 0 && len(query["sendID"]) != 0 && len(query["platformID"]) != 0 { - if ok, err := token_verify.VerifyToken(query["token"][0], query["sendID"][0]); !ok { + if ok, err, msg := token_verify.WsVerifyToken(query["token"][0], query["sendID"][0], query["platformID"][0]); !ok { e := err.(*constant.ErrInfo) - log.ErrorByKv("Token verify failed", "", "query", query) + log.ErrorByKv("Token verify failed", "", "query", query, msg) w.Header().Set("Sec-Websocket-Version", "13") http.Error(w, e.ErrMsg, int(e.ErrCode)) return false diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index 1281b1732..7d729f5cd 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -38,15 +38,15 @@ func (mc *HistoryConsumerHandler) Init() { } func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) { - log.NewInfo("msg come mongo!!!", "", "msg", string(msg)) time := utils.GetCurrentTimestampByNano() msgFromMQ := pbMsg.MsgDataToMQ{} err := proto.Unmarshal(msg, &msgFromMQ) if err != nil { - log.ErrorByKv("msg_transfer Unmarshal msg err", "", "msg", string(msg), "err", err.Error()) + log.Error("msg_transfer Unmarshal msg err", "", "msg", string(msg), "err", err.Error()) return } operationID := msgFromMQ.OperationID + log.NewInfo(operationID, "msg come mongo!!!", "", "msg", string(msg)) //Control whether to store offline messages (mongo) isHistory := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsHistory) //Control whether to store history messages (mysql) @@ -99,28 +99,28 @@ func (mc *HistoryConsumerHandler) ConsumeClaim(sess sarama.ConsumerGroupSession, return nil } func sendMessageToPush(message *pbMsg.MsgDataToMQ, pushToUserID string) { - log.InfoByKv("msg_transfer send message to push", message.OperationID, "message", message.String()) + log.Info(message.OperationID, "msg_transfer send message to push", "message", message.String()) rpcPushMsg := pbPush.PushMsgReq{OperationID: message.OperationID, MsgData: message.MsgData, PushToUserID: pushToUserID} mqPushMsg := pbMsg.PushMsgDataToMQ{OperationID: message.OperationID, MsgData: message.MsgData, PushToUserID: pushToUserID} grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImPushName) if grpcConn == nil { - log.ErrorByKv("rpc dial failed", rpcPushMsg.OperationID, "push data", rpcPushMsg.String()) + log.Error(rpcPushMsg.OperationID, "rpc dial failed", "push data", rpcPushMsg.String()) pid, offset, err := producer.SendMessage(&mqPushMsg) if err != nil { - log.ErrorByKv("kafka send failed", mqPushMsg.OperationID, "send data", message.String(), "pid", pid, "offset", offset, "err", err.Error()) + log.Error(mqPushMsg.OperationID, "kafka send failed", "send data", message.String(), "pid", pid, "offset", offset, "err", err.Error()) } return } msgClient := pbPush.NewPushMsgServiceClient(grpcConn) _, err := msgClient.PushMsg(context.Background(), &rpcPushMsg) if err != nil { - log.ErrorByKv("rpc send failed", rpcPushMsg.OperationID, "push data", rpcPushMsg.String(), "err", err.Error()) + log.Error(rpcPushMsg.OperationID, "rpc send failed", rpcPushMsg.OperationID, "push data", rpcPushMsg.String(), "err", err.Error()) pid, offset, err := producer.SendMessage(&mqPushMsg) if err != nil { - log.ErrorByKv("kafka send failed", mqPushMsg.OperationID, "send data", mqPushMsg.String(), "pid", pid, "offset", offset, "err", err.Error()) + log.Error("kafka send failed", mqPushMsg.OperationID, "send data", mqPushMsg.String(), "pid", pid, "offset", offset, "err", err.Error()) } } else { - log.InfoByKv("rpc send success", rpcPushMsg.OperationID, "push data", rpcPushMsg.String()) + log.Info("rpc send success", rpcPushMsg.OperationID, "push data", rpcPushMsg.String()) } } diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index bb804d6e2..ed6ec4404 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -51,7 +51,7 @@ func (rpc *rpcAuth) UserToken(_ context.Context, req *pbAuth.UserTokenReq) (*pbA return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - log.NewInfo(req.OperationID, "rpc UserToken return ") + log.NewInfo(req.OperationID, "rpc UserToken return ", tokens, expTime) return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}, nil } diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index dcea5be2a..d79f2af33 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -351,7 +351,7 @@ func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlac } func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) (*pbFriend.IsFriendResp, error) { - log.NewInfo("IsFriend args ", req.String()) + log.NewInfo(req.CommID.OperationID, req.String()) var isFriend bool if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) @@ -363,7 +363,7 @@ func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) } else { isFriend = false } - log.NewInfo("IsFriend rpc ok ", pbFriend.IsFriendResp{Response: isFriend}) + log.NewInfo(req.CommID.OperationID, pbFriend.IsFriendResp{Response: isFriend}) return &pbFriend.IsFriendResp{Response: isFriend}, nil } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6b5c872c4..6d9b9d910 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -937,3 +937,74 @@ func (s *groupServer) GetUserReqApplicationList(_ context.Context, req *pbGroup. } return resp, nil } + +func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGroupReq) (*pbGroup.DismissGroupResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !token_verify.IsMangerUserID(req.OpUserID) && !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) { + log.NewError(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) + return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + + err := imdb.OperateGroupStatus(req.GroupID, constant.GroupStatusDismissed) + if err != nil { + log.NewError(req.OperationID, "OperateGroupStatus failed ", req.GroupID, constant.GroupStatusDismissed) + return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + chat.GroupDismissedNotification(req) + + err = imdb.DeleteGroupMemberByGroupID(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "DeleteGroupMemberByGroupID failed ", req.GroupID) + return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil +} + +// rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp); +// rpc CancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp); +// rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp); +// rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp); + +func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) + return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.UserID} + groupMemberInfo.MuteEndTime = time.Unix(int64(time.Now().Second())+int64(req.MutedSeconds), 0) + err := imdb.UpdateGroupMemberInfo(groupMemberInfo) + if err != nil { + log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) + return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil +} + +func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String()) + if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) { + log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID) + return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.UserID} + groupMemberInfo.MuteEndTime = time.Unix(0, 0) + err := imdb.UpdateGroupMemberInfo(groupMemberInfo) + if err != nil { + log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo) + return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}) + return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil +} + +func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) { + return nil, nil +} + +func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) { + return nil, nil +} diff --git a/internal/rpc/msg/conversation_notification.go b/internal/rpc/msg/conversation_notification.go index cd9a7a6be..598ba1cc7 100644 --- a/internal/rpc/msg/conversation_notification.go +++ b/internal/rpc/msg/conversation_notification.go @@ -44,9 +44,8 @@ func conversationNotification(contentType int32, m proto.Message, operationID, u Notification(&n) } -// 客户端调用设置opt接口后调用 -func SetReceiveMessageOptNotification(operationID, opUserID, userID string) { - log.NewInfo(operationID, utils.GetSelfFuncName(), "operation user: ", opUserID, "operation id: ", userID) +func SetConversationNotification(operationID, userID string) { + log.NewInfo(operationID, utils.GetSelfFuncName(), "userID: ", userID) conversationUpdateTips := open_im_sdk.ConversationUpdateTips{ UserID: userID, } diff --git a/internal/rpc/msg/del_msg.go b/internal/rpc/msg/del_msg.go new file mode 100644 index 000000000..838312d40 --- /dev/null +++ b/internal/rpc/msg/del_msg.go @@ -0,0 +1,23 @@ +package msg + +import ( + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + commonPb "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "context" +) + +func (rpc *rpcChat) DelMsgList(_ context.Context, req *commonPb.DelMsgListReq) (*commonPb.DelMsgListResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &commonPb.DelMsgListResp{} + if err := db.DB.DelMsgLogic(req.UserID, req.SeqList, req.OperationID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "DelMsg failed", err.Error()) + resp.ErrMsg = constant.ErrDB.ErrMsg + resp.ErrCode = constant.ErrDB.ErrCode + return resp, err + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + return resp, nil +} diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 16c81600a..f5155889b 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -157,7 +157,9 @@ func groupNotification(contentType int32, m proto.Message, sendID, groupID, recv case constant.MemberInvitedNotification: // tips.DefaultTips = toNickname + " " + cn.MemberInvited.DefaultTips.Tips case constant.MemberEnterNotification: - tips.DefaultTips = toNickname + " " + cn.MemberInvited.DefaultTips.Tips + tips.DefaultTips = toNickname + " " + cn.MemberEnter.DefaultTips.Tips + case constant.GroupDismissedNotification: + tips.DefaultTips = toNickname + "" + cn.GroupDismissed.DefaultTips.Tips default: log.Error(operationID, "contentType failed ", contentType) return @@ -324,6 +326,19 @@ func GroupOwnerTransferredNotification(req *pbGroup.TransferGroupOwnerReq) { groupNotification(constant.GroupOwnerTransferredNotification, &GroupOwnerTransferredTips, req.OpUserID, req.GroupID, "", req.OperationID) } +func GroupDismissedNotification(req *pbGroup.DismissGroupReq) { + tips := open_im_sdk.GroupDismissedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + if err := setGroupInfo(req.GroupID, tips.Group); err != nil { + log.NewError(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID) + return + } + if err := setOpUserInfo(req.OpUserID, req.GroupID, tips.OpUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed", req.OpUserID, req.GroupID) + return + } + groupNotification(constant.GroupDismissedNotification, &tips, req.OpUserID, req.GroupID, "", req.OperationID) +} + //message MemberKickedTips{ // GroupInfo Group = 1; // GroupMemberFullInfo OpUser = 2; diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index af8f40b4f..2820bd8ad 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" + rpc "Open_IM/pkg/proto/friend" pbGroup "Open_IM/pkg/proto/group" sdk_ws "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" @@ -41,16 +42,45 @@ type MsgCallBackResp struct { } } -func userRelationshipVerification(data *pbChat.SendMsgReq) { - - //etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) - //client := pbChat.NewChatClient(etcdConn) - //reply, err := client.SendMsg(context.Background(), &req) - //if err != nil { - // log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String(), err.Error()) - //} else if reply.ErrCode != 0 { - // log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String()) - //} +func userRelationshipVerification(data *pbChat.SendMsgReq) (bool, int32, string) { + if data.MsgData.SessionType == constant.GroupChatType { + return true, 0, "" + } + log.NewDebug(data.OperationID, config.Config.MessageVerify.FriendVerify) + req := &rpc.IsInBlackListReq{CommID: &rpc.CommID{}} + req.CommID.OperationID = data.OperationID + req.CommID.OpUserID = data.MsgData.RecvID + req.CommID.FromUserID = data.MsgData.RecvID + req.CommID.ToUserID = data.MsgData.SendID + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := rpc.NewFriendClient(etcdConn) + reply, err := client.IsInBlackList(context.Background(), req) + if err != nil { + log.NewDebug(data.OperationID, "IsInBlackListReq rpc failed, ", req.String(), err.Error()) + } else if reply.Response == true { + log.NewDebug(data.OperationID, "IsInBlackListReq ", req.String()) + return false, 600, "in black list" + } + log.NewDebug(data.OperationID, config.Config.MessageVerify.FriendVerify) + if config.Config.MessageVerify.FriendVerify { + friendReq := &rpc.IsFriendReq{CommID: &rpc.CommID{}} + friendReq.CommID.OperationID = data.OperationID + friendReq.CommID.OpUserID = data.MsgData.RecvID + friendReq.CommID.FromUserID = data.MsgData.RecvID + friendReq.CommID.ToUserID = data.MsgData.SendID + friendReply, err := client.IsFriend(context.Background(), friendReq) + if err != nil { + log.NewDebug(data.OperationID, "IsFriendReq rpc failed, ", req.String(), err.Error()) + return true, 0, "" + } else if friendReply.Response == false { + log.NewDebug(data.OperationID, "not friend ", req.String()) + return friendReply.Response, 601, "not friend" + } + log.NewDebug(data.OperationID, config.Config.MessageVerify.FriendVerify, friendReply.Response) + return true, 0, "" + } else { + return true, 0, "" + } } func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { msg.ServerMsgID = GetMsgID(msg.SendID) @@ -86,6 +116,7 @@ func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { case constant.HasReadReceipt: log.Info("", "this is a test start", msg, msg.Options) utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsSenderConversationUpdate, false) utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, false) utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) log.Info("", "this is a test end", msg, msg.Options) @@ -94,6 +125,7 @@ func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) utils.SetSwitchFromOptions(msg.Options, constant.IsSenderSync, false) utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsSenderConversationUpdate, false) utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, false) utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) @@ -102,12 +134,15 @@ func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.SendMsgResp, error) { replay := pbChat.SendMsgResp{} log.NewDebug(pb.OperationID, "rpc sendMsg come here", pb.String()) - userRelationshipVerification(pb) + flag, errCode, errMsg := userRelationshipVerification(pb) + if !flag { + return returnMsg(&replay, pb, errCode, errMsg, "", 0) + } //if !utils.VerifyToken(pb.Token, pb.SendID) { // return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) rpc.encapsulateMsgData(pb.MsgData) log.Info("", "this is a test MsgData ", pb.MsgData) - msgToMQ := pbChat.MsgDataToMQ{Token: pb.Token, OperationID: pb.OperationID} + msgToMQ := pbChat.MsgDataToMQ{Token: pb.Token, OperationID: pb.OperationID, MsgData: pb.MsgData} //options := utils.JsonStringToMap(pbData.Options) isHistory := utils.GetSwitchFromOptions(pb.MsgData.Options, constant.IsHistory) mReq := MsgCallBackReq{ @@ -274,7 +309,7 @@ func returnMsg(replay *pbChat.SendMsgResp, pb *pbChat.SendMsgReq, errCode int32, func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType int, pb *pbChat.SendMsgReq) bool { conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) - opt, err := db.DB.GetSingleConversationMsgOpt(userID, conversationID) + opt, err := db.DB.GetSingleConversationRecvMsgOpt(userID, conversationID) if err != nil && err != redis.ErrNil { log.NewError(pb.OperationID, "GetSingleConversationMsgOpt from redis err", conversationID, pb.String(), err.Error()) return true @@ -470,14 +505,24 @@ func Notification(n *NotificationMsg) { ex = config.Config.Notification.ConversationOptUpdate.OfflinePush.Ext reliabilityLevel = config.Config.Notification.ConversationOptUpdate.Conversation.ReliabilityLevel unReadCount = config.Config.Notification.ConversationOptUpdate.Conversation.UnreadCount + + case constant.GroupDismissedNotification: + pushSwitch = config.Config.Notification.GroupDismissed.OfflinePush.PushSwitch + title = config.Config.Notification.GroupDismissed.OfflinePush.Title + desc = config.Config.Notification.GroupDismissed.OfflinePush.Desc + ex = config.Config.Notification.GroupDismissed.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.GroupDismissed.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.GroupDismissed.Conversation.UnreadCount } switch reliabilityLevel { case constant.UnreliableNotification: utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsSenderConversationUpdate, false) case constant.ReliableNotificationNoMsg: utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsSenderConversationUpdate, false) case constant.ReliableNotificationMsg: } diff --git a/internal/rpc/msg/tag_send_msg.go b/internal/rpc/msg/tag_send_msg.go new file mode 100644 index 000000000..08c88bfba --- /dev/null +++ b/internal/rpc/msg/tag_send_msg.go @@ -0,0 +1,39 @@ +package msg + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbChat "Open_IM/pkg/proto/chat" + pbCommon "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "context" + "strings" +) + +func TagSendMessage(operationID, sendID, recvID, content string, contentType int32) { + log.NewInfo(operationID, utils.GetSelfFuncName(), "args: ", sendID, recvID, content, contentType) + var req pbChat.SendMsgReq + var msgData pbCommon.MsgData + msgData.SendID = sendID + msgData.RecvID = recvID + msgData.ContentType = contentType + msgData.SessionType = constant.SingleChatType + msgData.MsgFrom = constant.UserMsgType + msgData.Content = []byte(content) + msgData.Options = map[string]bool{} + msgData.Options[constant.IsSenderConversationUpdate] = false + req.MsgData = &msgData + req.OperationID = operationID + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) + client := pbChat.NewChatClient(etcdConn) + respPb, err := client.SendMsg(context.Background(), &req) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "send msg failed", err.Error()) + return + } + if respPb.ErrCode != 0 { + log.NewError(operationID, utils.GetSelfFuncName(), "send tag msg failed ", respPb) + } +} diff --git a/internal/rpc/office/office.go b/internal/rpc/office/office.go new file mode 100644 index 000000000..2d0cce613 --- /dev/null +++ b/internal/rpc/office/office.go @@ -0,0 +1,186 @@ +package office + +import ( + "Open_IM/internal/rpc/msg" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbOffice "Open_IM/pkg/proto/office" + pbCommon "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "context" + "google.golang.org/grpc" + "net" + "strconv" + "strings" +) + +type officeServer struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func NewOfficeServer(port int) *officeServer { + log.NewPrivateLog("office") + return &officeServer{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImOfficeName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} + +func (s *officeServer) Run() { + log.NewInfo("0", "officeServer rpc start ") + ip := utils.ServerIP + registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) + //listener network + listener, err := net.Listen("tcp", registerAddress) + if err != nil { + log.NewError("0", "Listen failed ", err.Error(), registerAddress) + return + } + log.NewInfo("0", "listen network success, ", registerAddress, listener) + defer listener.Close() + //grpc server + srv := grpc.NewServer() + defer srv.GracefulStop() + //Service registers with etcd + pbOffice.RegisterOfficeServiceServer(srv, s) + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) + if err != nil { + log.NewError("0", "RegisterEtcd failed ", err.Error()) + return + } + err = srv.Serve(listener) + if err != nil { + log.NewError("0", "Serve failed ", err.Error()) + return + } + log.NewInfo("0", "message cms rpc success") +} + +func (s *officeServer) GetUserTags(_ context.Context, req *pbOffice.GetUserTagsReq) (resp *pbOffice.GetUserTagsResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req ", req.String()) + resp = &pbOffice.GetUserTagsResp{ + CommonResp: &pbOffice.CommonResp{}, + Tags: []*pbOffice.Tag{}, + } + tags, err := db.DB.GetUserTags(req.UserID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserTags failed", err.Error()) + resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + return resp, nil + } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "tags: ", tags) + for _, v := range tags { + tag := &pbOffice.Tag{ + TagID: v.TagID, + TagName: v.TagName, + } + for _, userID := range v.UserList { + UserName, err := im_mysql_model.GetUserNameByUserID(userID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserNameByUserID failed", err.Error()) + continue + } + tag.UserList = append(tag.UserList, &pbOffice.TagUser{ + UserID: userID, + UserName: UserName, + }) + } + resp.Tags = append(resp.Tags, tag) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp ", resp.String()) + return resp, nil +} + +func (s *officeServer) CreateTag(_ context.Context, req *pbOffice.CreateTagReq) (resp *pbOffice.CreateTagResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "CreateTag req", req.String()) + userIDList := utils.RemoveUserIDRepByMap(req.UserIDList) + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "userIDList: ", userIDList) + resp = &pbOffice.CreateTagResp{CommonResp: &pbOffice.CommonResp{}} + if err := db.DB.CreateTag(req.UserID, req.TagName, userIDList); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserTags failed", err.Error()) + resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + return resp, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp", resp.String()) + return resp, nil +} + +func (s *officeServer) DeleteTag(_ context.Context, req *pbOffice.DeleteTagReq) (resp *pbOffice.DeleteTagResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp = &pbOffice.DeleteTagResp{CommonResp: &pbOffice.CommonResp{}} + if err := db.DB.DeleteTag(req.UserID, req.TagID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "DeleteTag failed", err.Error()) + resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + return resp, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + return resp, nil +} + +func (s *officeServer) SetTag(_ context.Context, req *pbOffice.SetTagReq) (resp *pbOffice.SetTagResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp = &pbOffice.SetTagResp{CommonResp: &pbOffice.CommonResp{}} + IncreaseUserIDList := utils.RemoveUserIDRepByMap(req.IncreaseUserIDList) + reduceUserIDList := utils.RemoveUserIDRepByMap(req.ReduceUserIDList) + if err := db.DB.SetTag(req.UserID, req.TagID, req.NewName, IncreaseUserIDList, reduceUserIDList); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetTag failed", err.Error()) + resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + return resp, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + return resp, nil +} + +func (s *officeServer) SendMsg2Tag(_ context.Context, req *pbOffice.SendMsg2TagReq) (resp *pbOffice.SendMsg2TagResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp = &pbOffice.SendMsg2TagResp{CommonResp: &pbOffice.CommonResp{}} + userIDList, err := db.DB.GetUserIDListByTagID(req.SendID, req.TagID) + for _, userID := range userIDList { + msg.TagSendMessage(req.OperationID, req.SendID, userID, req.Content, req.ContentType) + } + if err := db.DB.SaveTagSendLog(req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SaveTagSendLog failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + return resp, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + return resp, nil +} + +func (s *officeServer) GetTagSendLogs(_ context.Context, req *pbOffice.GetTagSendLogsReq) (resp *pbOffice.GetTagSendLogsResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp = &pbOffice.GetTagSendLogsResp{ + CommonResp: &pbOffice.CommonResp{}, + Pagination: &pbCommon.ResponsePagination{ + CurrentPage: req.Pagination.PageNumber, + ShowNumber: req.Pagination.ShowNumber, + }, + TagSendLogs: []*pbOffice.TagSendLog{}, + } + tagSendLogs, err := db.DB.GetTagSendLogs(req.UserID, req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTagSendLogs", err.Error()) + resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + return resp, nil + } + if err := utils.CopyStructFields(&resp.TagSendLogs, tagSendLogs); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + return resp, nil +} diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index b0ebf593a..6b4472f01 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -88,63 +88,137 @@ func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq userInfoList = append(userInfoList, &userInfo) } } else { - return &pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}}, nil } log.NewInfo(req.OperationID, "GetUserInfo rpc return ", pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList: userInfoList}) return &pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList: userInfoList}, nil } -func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetReceiveMessageOptReq) (*pbUser.SetReceiveMessageOptResp, error) { - log.NewInfo(req.OperationID, "SetReceiveMessageOpt args ", req.String()) - m := make(map[string]int, len(req.ConversationIDList)) - for _, v := range req.ConversationIDList { - m[v] = int(req.Opt) +func (s *userServer) BatchSetConversations(ctx context.Context, req *pbUser.BatchSetConversationsReq) (*pbUser.BatchSetConversationsResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbUser.BatchSetConversationsResp{} + for _, v := range req.Conversations { + conversation := db.Conversation{} + if err := utils.CopyStructFields(&conversation, v); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), v.String(), "CopyStructFields failed", err.Error()) + } + if err := db.DB.SetSingleConversationRecvMsgOpt(req.OwnerUserID, v.ConversationID, v.RecvMsgOpt); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "cache failed, rpc return", err.Error()) + resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + if err := imdb.SetConversation(conversation); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) + resp.Failed = append(resp.Failed, v.ConversationID) + continue + } + resp.Success = append(resp.Success, v.ConversationID) } - err := db.DB.SetMultiConversationMsgOpt(req.FromUserID, m) - if err != nil { - log.NewError(req.OperationID, "SetMultiConversationMsgOpt failed ", err.Error(), req) - return &pbUser.SetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil - } - resp := pbUser.SetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}} - - for _, v := range req.ConversationIDList { - resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: v, Result: req.Opt}) - } - chat.SetReceiveMessageOptNotification(req.OperationID, req.OpUserID, req.FromUserID) - log.NewInfo(req.OperationID, "SetReceiveMessageOpt rpc return ", resp.String()) - return &resp, nil + chat.SetConversationNotification(req.OperationID, req.OwnerUserID) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return", resp.String()) + resp.CommonResp = &pbUser.CommonResp{} + return resp, nil } -func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) { - log.NewInfo(req.OperationID, "GetReceiveMessageOpt args ", req.String()) - m, err := db.DB.GetMultiConversationMsgOpt(req.FromUserID, req.ConversationIDList) +func (s *userServer) GetAllConversations(ctx context.Context, req *pbUser.GetAllConversationsReq) (*pbUser.GetAllConversationsResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbUser.GetAllConversationsResp{Conversations: []*pbUser.Conversation{}} + conversations, err := imdb.GetUserAllConversations(req.OwnerUserID) if err != nil { - log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req.FromUserID, req.ConversationIDList) - return &pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetConversations error", err.Error()) + resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil } - resp := pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}} - for k, v := range m { - resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: k, Result: int32(v)}) + if err = utils.CopyStructFields(&resp.Conversations, conversations); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields error", err.Error()) } - log.NewInfo(req.OperationID, "GetReceiveMessageOpt rpc return ", resp.String()) - return &resp, nil + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return", resp.String()) + resp.CommonResp = &pbUser.CommonResp{} + return resp, nil } -func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.GetAllConversationMsgOptReq) (*pbUser.GetAllConversationMsgOptResp, error) { - log.NewInfo(req.OperationID, "GetAllConversationMsgOpt args ", req.String()) - m, err := db.DB.GetAllConversationMsgOpt(req.FromUserID) +func (s *userServer) GetConversation(ctx context.Context, req *pbUser.GetConversationReq) (*pbUser.GetConversationResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbUser.GetConversationResp{Conversation: &pbUser.Conversation{}} + conversation, err := imdb.GetConversation(req.OwnerUserID, req.ConversationID) if err != nil { - log.NewError(req.OperationID, "GetAllConversationMsgOpt failed ", err.Error(), req.FromUserID) - return &pbUser.GetAllConversationMsgOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetConversation error", err.Error()) + resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil } - resp := pbUser.GetAllConversationMsgOptResp{CommonResp: &pbUser.CommonResp{}} - for k, v := range m { - resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: k, Result: int32(v)}) + if err := utils.CopyStructFields(resp.Conversation, &conversation); err != nil { + log.Debug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields error", conversation, err.Error()) } - log.NewInfo(req.OperationID, "GetAllConversationMsgOpt rpc return ", resp.String()) - return &resp, nil + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + resp.CommonResp = &pbUser.CommonResp{} + return resp, nil } + +func (s *userServer) GetConversations(ctx context.Context, req *pbUser.GetConversationsReq) (*pbUser.GetConversationsResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbUser.GetConversationsResp{Conversations: []*pbUser.Conversation{}} + conversations, err := imdb.GetConversations(req.OwnerUserID, req.ConversationIDs) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetConversations error", err.Error()) + resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + if err := utils.CopyStructFields(&resp.Conversations, conversations); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", conversations, err.Error()) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + resp.CommonResp = &pbUser.CommonResp{} + return resp, nil +} + +func (s *userServer) SetConversation(ctx context.Context, req *pbUser.SetConversationReq) (*pbUser.SetConversationResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbUser.SetConversationResp{} + var conversation db.Conversation + if err := utils.CopyStructFields(&conversation, req.Conversation); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", *req.Conversation, err.Error()) + } + if err := db.DB.SetSingleConversationRecvMsgOpt(req.Conversation.OwnerUserID, req.Conversation.ConversationID, req.Conversation.RecvMsgOpt); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "cache failed, rpc return", err.Error()) + resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + err := imdb.SetConversation(conversation) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) + resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + chat.SetConversationNotification(req.OperationID, req.Conversation.OwnerUserID) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return", resp.String()) + resp.CommonResp = &pbUser.CommonResp{} + return resp, nil +} + +func (s *userServer) SetRecvMsgOpt(ctx context.Context, req *pbUser.SetRecvMsgOptReq) (*pbUser.SetRecvMsgOptResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbUser.SetRecvMsgOptResp{} + var conversation db.Conversation + if err := utils.CopyStructFields(&conversation, req); err != nil { + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "CopyStructFields failed", *req, err.Error()) + } + if err := db.DB.SetSingleConversationRecvMsgOpt(req.OwnerUserID, req.ConversationID, req.RecvMsgOpt); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "cache failed, rpc return", err.Error()) + resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + err := imdb.SetRecvMsgOpt(conversation) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) + resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} + return resp, nil + } + chat.SetConversationNotification(req.OperationID, req.OwnerUserID) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + resp.CommonResp = &pbUser.CommonResp{} + return resp, nil +} + func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { log.NewInfo(req.OperationID, "DeleteUsers args ", req.String()) if !token_verify.IsMangerUserID(req.OpUserID) { diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 95aa8527f..ed706c4ad 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -32,17 +32,83 @@ type SetReceiveMessageOptResp struct { ConversationOptResultList []*OptResult `json:"data"` } -//type Conversation struct { -// OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"` -// ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"` -// ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"` -// UserID string `gorm:"column:user_id;type:char(64)" json:"userID"` -// GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"` -// RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"` -// UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"` -// DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` -// IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` -// AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` -// Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` -//} +type Conversation struct { + OwnerUserID string `json:"ownerUserID" binding:"required"` + ConversationID string `json:"conversationID"` + ConversationType int32 `json:"conversationType"` + UserID string `json:"userID"` + GroupID string `json:"groupID"` + RecvMsgOpt int32 `json:"recvMsgOpt" binding:"omitempty,oneof=0 1 2"` + UnreadCount int32 `json:"unreadCount" binding:"omitempty"` + DraftTextTime int64 `json:"draftTextTime"` + IsPinned bool `json:"isPinned" binding:"omitempty"` + IsPrivateChat bool `json:"isPrivateChat"` + AttachedInfo string `json:"attachedInfo"` + Ex string `json:"ex"` +} +type SetConversationReq struct { + Conversation + OperationID string `json:"operationID" binding:"required"` +} + +type SetConversationResp struct { + CommResp +} + +type BatchSetConversationsReq struct { + Conversations []Conversation `json:"conversations" binding:"required"` + OwnerUserID string `json:"ownerUserID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type BatchSetConversationsResp struct { + CommResp + Data struct { + Success []string `json:"success"` + Failed []string `json:"failed"` + } `json:"data"` +} + +type GetConversationReq struct { + ConversationID string `json:"conversationID" binding:"required"` + OwnerUserID string `json:"ownerUserID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type GetConversationResp struct { + CommResp + Conversation Conversation `json:"data"` +} + +type GetAllConversationsReq struct { + OwnerUserID string `json:"ownerUserID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type GetAllConversationsResp struct { + CommResp + Conversations []Conversation `json:"data"` +} + +type GetConversationsReq struct { + ConversationIDs []string `json:"conversationIDs" binding:"required"` + OwnerUserID string `json:"ownerUserID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type GetConversationsResp struct { + CommResp + Conversations []Conversation `json:"data"` +} + +type SetRecvMsgOptReq struct { + OwnerUserID string `json:"ownerUserID" binding:"required"` + ConversationID string `json:"conversationID"` + RecvMsgOpt int32 `json:"recvMsgOpt" binding:"omitempty,oneof=0 1 2"` + OperationID string `json:"operationID" binding:"required"` +} + +type SetRecvMsgOptResp struct { + CommResp +} diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 6dc9668c6..68df84731 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -177,3 +177,11 @@ type TransferGroupOwnerReq struct { type TransferGroupOwnerResp struct { CommResp } + +type DismissGroupReq struct { + GroupID string `json:"groupID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} +type DismissGroupResp struct { + CommResp +} diff --git a/pkg/base_info/minio_api_struct.go b/pkg/base_info/minio_api_struct.go index f15997053..6d3b0ecac 100644 --- a/pkg/base_info/minio_api_struct.go +++ b/pkg/base_info/minio_api_struct.go @@ -6,8 +6,20 @@ type MinioStorageCredentialReq struct { type MiniostorageCredentialResp struct { SecretAccessKey string `json:"secretAccessKey"` - AccessKeyID string `json:"accessKeyID"` - SessionToken string `json:"sessionToken"` - BucketName string `json:"bucketName"` - StsEndpointURL string `json:"stsEndpointURL"` + AccessKeyID string `json:"accessKeyID"` + SessionToken string `json:"sessionToken"` + BucketName string `json:"bucketName"` + StsEndpointURL string `json:"stsEndpointURL"` +} + +type MinioUploadFileReq struct { + OperationID string `form:"operationID" binding:"required"` + FileType int `form:"fileType" binding:"required"` +} + +type MinioUploadFileResp struct { + URL string `json:"URL"` + NewName string `json:"newName"` + SnapshotURL string `json:"snapshotURL,omitempty"` + SnapshotNewName string `json:"snapshotName,omitempty"` } diff --git a/pkg/base_info/msg.go b/pkg/base_info/msg.go new file mode 100644 index 000000000..bc80cf304 --- /dev/null +++ b/pkg/base_info/msg.go @@ -0,0 +1,12 @@ +package base_info + +type DelMsgReq struct { + OpUserID string `json:"opUserID,omitempty"` + UserID string `json:"userID,omitempty"` + SeqList []uint32 `json:"seqList,omitempty"` + OperationID string `json:"operationID,omitempty"` +} + +type DelMsgResp struct { + CommResp +} diff --git a/pkg/base_info/office_struct.go b/pkg/base_info/office_struct.go new file mode 100644 index 000000000..65066d0b7 --- /dev/null +++ b/pkg/base_info/office_struct.go @@ -0,0 +1,74 @@ +package base_info + +import ( + pbOffice "Open_IM/pkg/proto/office" +) + +type GetUserTagsReq struct { + OperationID string `json:"operationID"` +} + +type GetUserTagsResp struct { + CommResp + Data struct { + Tags []*pbOffice.Tag `json:"tags"` + } `json:"data"` +} + +type CreateTagReq struct { + TagName string `json:"tagName" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type CreateTagResp struct { + CommResp +} + +type DeleteTagReq struct { + TagID string `json:"tagID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type DeleteTagResp struct { + CommResp +} + +type SetTagReq struct { + TagID string `json:"tagID" binding:"required"` + NewName string `json:"newName"` + IncreaseUserIDList []string `json:"increaseUserIDList"` + ReduceUserIDList []string `json:"reduceUserIDList"` + OperationID string `json:"operationID" binding:"required"` +} + +type SetTagResp struct { + CommResp +} + +type SendMsg2TagReq struct { + TagID string `json:"tagID" binding:"required"` + SenderPlatformID int32 `json:"senderPlatformID" binding:"required"` + Content string `json:"content" binding:"required"` + ContentType int32 `json:"contentType" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type SendMsg2TagResp struct { + CommResp +} + +type GetTagSendLogsReq struct { + PageNumber int32 `json:"pageNumber" binding:"required"` + ShowNumber int32 `json:"showNumber" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type GetTagSendLogsResp struct { + CommResp + Data struct { + Logs []*pbOffice.TagSendLog `json:"logs"` + CurrentPage int32 `json:"currentPage"` + ShowNumber int32 `json:"showNumber"` + } `json:"data"` +} diff --git a/pkg/call_back_struct/common.go b/pkg/call_back_struct/common.go index e2bf510f4..bc9ad5dac 100644 --- a/pkg/call_back_struct/common.go +++ b/pkg/call_back_struct/common.go @@ -17,10 +17,8 @@ type CommonCallbackReq struct { } type CommonCallbackResp struct { - ActionCode int `json:"actionCode"` - ErrCode int `json:"errCode"` - ErrMsg string `json:"errMsg"` + ActionCode int `json:"actionCode"` + ErrCode int `json:"errCode"` + ErrMsg string `json:"errMsg"` OperationID string `json:"operationID"` } - - diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index deb7f98fd..2a8ec36ff 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -22,7 +22,7 @@ var Config config type callBackConfig struct { Enable bool `yaml:"enable"` CallbackTimeOut int `yaml:"callbackTimeOut"` - CallbackFailedContinue bool `CallbackFailedContinue` + CallbackFailedContinue bool `yaml:"callbackFailedContinue"` } type config struct { @@ -64,6 +64,7 @@ type config struct { SecretAccessKey string `yaml:"secretAccessKey"` } `yaml:"minio"` } + Mysql struct { DBAddress []string `yaml:"dbMysqlAddress"` DBUserName string `yaml:"dbMysqlUserName"` @@ -114,6 +115,7 @@ type config struct { OpenImAuthName string `yaml:"openImAuthName"` OpenImMessageCMSName string `yaml:"openImMessageCMSName"` OpenImAdminCMSName string `yaml:"openImAdminCMSName"` + OpenImOfficeName string `yaml:"openImOfficeName"` } Etcd struct { EtcdSchema string `yaml:"etcdSchema"` @@ -184,8 +186,8 @@ type config struct { AccessSecret string `yaml:"accessSecret"` AccessExpire int64 `yaml:"accessExpire"` } - MessageJudge struct { - IsJudgeFriend bool `yaml:"isJudgeFriend"` + MessageVerify struct { + FriendVerify bool `yaml:"friendVerify"` } IOSPush struct { PushSound string `yaml:"pushSound"` @@ -261,6 +263,13 @@ type config struct { OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } `yaml:"memberEnter"` + + GroupDismissed struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } `yaml:"groupDismissed"` + ////////////////////////user/////////////////////// UserInfoUpdated struct { Conversation PConversation `yaml:"conversation"` diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 7e1971c64..bfecd0872 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -64,6 +64,7 @@ const ( ConversationNotNotification = 1308 ConversationDefault = 0 UserNotificationEnd = 1399 + OANotification = 1400 GroupNotificationBegin = 1500 @@ -77,7 +78,16 @@ const ( MemberKickedNotification = 1508 MemberInvitedNotification = 1509 MemberEnterNotification = 1510 - NotificationEnd = 2000 + GroupDismissedNotification = 1511 + + SignalingNotificationBegin = 1600 + SignalingNotification = 1601 + SignalingNotificationEnd = 1699 + NotificationEnd = 2000 + + //status + MsgNormal = 1 + MsgDeleted = 4 //MsgFrom UserMsgType = 100 @@ -86,6 +96,8 @@ const ( //SessionType SingleChatType = 1 GroupChatType = 2 + + NotificationChatType = 4 //token NormalToken = 0 InValidToken = 1 @@ -113,17 +125,21 @@ const ( ReceiveNotNotifyMessage = 2 //OptionsKey - IsHistory = "history" - IsPersistent = "persistent" - IsOfflinePush = "offlinePush" - IsUnreadCount = "unreadCount" - IsConversationUpdate = "conversationUpdate" - IsSenderSync = "senderSync" + IsHistory = "history" + IsPersistent = "persistent" + IsOfflinePush = "offlinePush" + IsUnreadCount = "unreadCount" + IsConversationUpdate = "conversationUpdate" + IsSenderSync = "senderSync" + IsNotPrivate = "notPrivate" + IsSenderConversationUpdate = "senderConversationUpdate" //GroupStatus - GroupOk = 0 - GroupBanChat = 1 - GroupDisband = 2 + GroupOk = 0 + GroupBanChat = 1 + GroupStatusDismissed = 2 + GroupStatusMuted = 3 + GroupBaned = 3 GroupBanPrivateChat = 4 @@ -151,6 +167,11 @@ const ( //callback callbackHandleCode CallbackHandleSuccess = 0 CallbackHandleFailed = 1 + + // minioUpload + OtherType = 1 + VideoType = 2 + ImageType = 3 ) var ContentType2PushContent = map[int64]string{ diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 548720a37..00a11fd49 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -9,7 +9,7 @@ type ErrInfo struct { } var ( - OK = ErrInfo{0, ""} + OK = ErrInfo{0, ""} ErrServer = ErrInfo{500, "server error"} // ErrMysql = ErrInfo{100, ""} @@ -47,10 +47,11 @@ var ( ErrTokenMalformed = ErrInfo{703, TokenMalformedMsg.Error()} ErrTokenNotValidYet = ErrInfo{704, TokenNotValidYetMsg.Error()} ErrTokenUnknown = ErrInfo{705, TokenUnknownMsg.Error()} + ErrTokenKicked = ErrInfo{706, TokenUserKickedMsg.Error()} - ErrAccess = ErrInfo{ErrCode: 801, ErrMsg: AccessMsg.Error()} - ErrDB = ErrInfo{ErrCode: 802, ErrMsg: DBMsg.Error()} - ErrArgs = ErrInfo{ErrCode: 8003, ErrMsg: ArgsMsg.Error()} + ErrAccess = ErrInfo{ErrCode: 801, ErrMsg: AccessMsg.Error()} + ErrDB = ErrInfo{ErrCode: 802, ErrMsg: DBMsg.Error()} + ErrArgs = ErrInfo{ErrCode: 8003, ErrMsg: ArgsMsg.Error()} ErrCallback = ErrInfo{ErrCode: 809, ErrMsg: CallBackMsg.Error()} ) @@ -61,11 +62,11 @@ var ( TokenNotValidYetMsg = errors.New("token not active yet") TokenMalformedMsg = errors.New("that's not even a token") TokenUnknownMsg = errors.New("couldn't handle this token") - - AccessMsg = errors.New("no permission") - DBMsg = errors.New("db failed") - ArgsMsg = errors.New("args failed") - CallBackMsg = errors.New("callback failed") + TokenUserKickedMsg = errors.New("user has been kicked") + AccessMsg = errors.New("no permission") + DBMsg = errors.New("db failed") + ArgsMsg = errors.New("args failed") + CallBackMsg = errors.New("callback failed") ThirdPartyMsg = errors.New("third party error") ) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index e7b03cbd5..812783e03 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -17,15 +17,14 @@ import ( //"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" // "go.mongodb.org/mongo-driver/mongo/options" - ) var DB DataBases type DataBases struct { - MysqlDB mysqlDB - mgoSession *mgo.Session - redisPool *redis.Pool + MysqlDB mysqlDB + mgoSession *mgo.Session + redisPool *redis.Pool mongoClient *mongo.Client } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 184f51e9d..72396e9a1 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -108,6 +108,7 @@ type GroupMember struct { JoinTime time.Time `gorm:"column:join_time"` JoinSource int32 `gorm:"column:join_source"` OperatorUserID string `gorm:"column:operator_user_id;size:64"` + MuteEndTime time.Time `gorm:"column:mute_end_time"` Ex string `gorm:"column:ex;size:1024"` } @@ -213,6 +214,11 @@ type Conversation struct { UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"` DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` + IsPrivateChat bool `gorm:"column:is_private_chat" json:"isPrivateChat"` AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } + +func (Conversation) TableName() string { + return "conversations" +} diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 3b489af23..e503c06ab 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -2,12 +2,19 @@ package db import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" pbMsg "Open_IM/pkg/proto/chat" + officePb "Open_IM/pkg/proto/office" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "errors" + "fmt" + "github.com/gogo/protobuf/sortkeys" + "go.mongodb.org/mongo-driver/mongo/options" + "math/rand" + //"github.com/garyburd/redigo/redis" "github.com/golang/protobuf/proto" "gopkg.in/mgo.v2/bson" @@ -18,6 +25,8 @@ import ( const cChat = "msg" const cGroup = "group" +const cTag = "tag" +const cSendLog = "send_log" const singleGocMsgNum = 5000 type MsgInfo struct { @@ -69,6 +78,47 @@ func (d *DataBases) GetMinSeqFromMongo2(uid string) (MinSeq uint32, err error) { return 1, nil } +// deleteMsgByLogic +func (d *DataBases) DelMsgLogic(uid string, seqList []uint32, operationID string) error { + sortkeys.Uint32s(seqList) + seqMsgs, err := d.GetMsgBySeqListMongo2(uid, seqList, operationID) + if err != nil { + return utils.Wrap(err, "") + } + for _, seqMsg := range seqMsgs { + log.NewDebug(operationID, utils.GetSelfFuncName(), *seqMsg) + seqMsg.Status = constant.MsgDeleted + if err = d.ReplaceMsgBySeq(uid, seqMsg, operationID); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "ReplaceMsgListBySeq error", err.Error()) + } + } + return nil +} + +func (d *DataBases) ReplaceMsgBySeq(uid string, msg *open_im_sdk.MsgData, operationID string) error { + log.NewInfo(operationID, utils.GetSelfFuncName(), uid, *msg) + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) + uid = getSeqUid(uid, msg.Seq) + seqIndex := getMsgIndex(msg.Seq) + s := fmt.Sprintf("msg.%d.msg", seqIndex) + log.NewDebug(operationID, utils.GetSelfFuncName(), seqIndex, s) + bytes, err := proto.Marshal(msg) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "proto marshal", err.Error()) + return utils.Wrap(err, "") + } + updateResult, err := c.UpdateOne( + ctx, bson.M{"uid": uid}, + bson.M{"$set": bson.M{s: bytes}}) + log.NewInfo(operationID, utils.GetSelfFuncName(), updateResult) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "UpdateOne", err.Error()) + return utils.Wrap(err, "") + } + return nil +} + func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) { log.NewInfo(operationID, utils.GetSelfFuncName(), uid, seqList) var hasSeqList []uint32 @@ -125,7 +175,6 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID st return seqMsg, nil } - func (d *DataBases) GetMsgBySeqListMongo2(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) { var hasSeqList []uint32 singleCount := 0 @@ -178,7 +227,6 @@ func (d *DataBases) GetMsgBySeqListMongo2(uid string, seqList []uint32, operatio return seqMsg, nil } - func genExceptionMessageBySeqList(seqList []uint32) (exceptionMsg []*open_im_sdk.MsgData) { for _, v := range seqList { msg := new(open_im_sdk.MsgData) @@ -199,7 +247,7 @@ func (d *DataBases) SaveUserChatMongo2(uid string, sendTime int64, m *pbMsg.MsgD sMsg := MsgInfo{} sMsg.SendTime = sendTime if sMsg.Msg, err = proto.Marshal(m.MsgData); err != nil { - return utils.Wrap(err,"") + return utils.Wrap(err, "") } err = c.FindOneAndUpdate(ctx, filter, bson.M{"$push": bson.M{"msg": sMsg}}).Err() log.NewDebug(operationID, "get mgoSession cost time", getCurrentTimestampByMill()-newTime) @@ -207,11 +255,11 @@ func (d *DataBases) SaveUserChatMongo2(uid string, sendTime int64, m *pbMsg.MsgD sChat := UserChat{} sChat.UID = seqUid sChat.Msg = append(sChat.Msg, sMsg) - if _, err = c.InsertOne(ctx, &sChat) ; err != nil{ + if _, err = c.InsertOne(ctx, &sChat); err != nil { log.NewDebug(operationID, "InsertOne failed", filter) return utils.Wrap(err, "") } - }else{ + } else { log.NewDebug(operationID, "FindOneAndUpdate ok", filter) } @@ -258,7 +306,6 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgDataToD return nil } - func (d *DataBases) DelUserChat(uid string) error { return nil //session := d.mgoSession.Clone() @@ -277,7 +324,6 @@ func (d *DataBases) DelUserChat(uid string) error { //return nil } - func (d *DataBases) DelUserChatMongo2(uid string) error { ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) @@ -290,8 +336,6 @@ func (d *DataBases) DelUserChatMongo2(uid string) error { return nil } - - func (d *DataBases) MgoUserCount() (int, error) { return 0, nil //session := d.mgoSession.Clone() @@ -391,13 +435,165 @@ func (d *DataBases) DelGroupMember(groupID, uid string) error { //return nil } +type Tag struct { + UserID string `bson:"user_id"` + TagID string `bson:"tag_id"` + TagName string `bson:"tag_name"` + UserList []string `bson:"user_list"` +} + +func (d *DataBases) GetUserTags(userID string) ([]Tag, error) { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cTag) + var tags []Tag + cursor, err := c.Find(ctx, bson.M{"user_id": userID}) + if err != nil { + return tags, err + } + if err = cursor.All(ctx, &tags); err != nil { + return tags, err + } + return tags, nil +} + +func (d *DataBases) CreateTag(userID, tagName string, userList []string) error { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cTag) + tagID := generateTagID(tagName, userID) + tag := Tag{ + UserID: userID, + TagID: tagID, + TagName: tagName, + UserList: userList, + } + _, err := c.InsertOne(ctx, tag) + return err +} + +func (d *DataBases) DeleteTag(userID, tagID string) error { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cTag) + _, err := c.DeleteOne(ctx, bson.M{"user_id": userID, "tag_id": tagID}) + return err +} + +func (d *DataBases) SetTag(userID, tagID, newName string, increaseUserIDList []string, reduceUserIDList []string) error { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cTag) + var tag Tag + if err := c.FindOne(ctx, bson.M{"tag_id": tagID, "user_id": userID}).Decode(&tag); err != nil { + return err + } + if newName != "" { + _, err := c.UpdateOne(ctx, bson.M{"user_id": userID, "tag_id": tagID}, bson.M{"$set": bson.M{"tag_name": newName}}) + if err != nil { + return err + } + } + tag.UserList = append(tag.UserList, increaseUserIDList...) + tag.UserList = utils.RemoveUserIDRepByMap(tag.UserList) + for _, v := range reduceUserIDList { + for i2, v2 := range tag.UserList { + if v == v2 { + tag.UserList[i2] = "" + } + } + } + var newUserList []string + for _, v := range tag.UserList { + if v != "" { + newUserList = append(newUserList, v) + } + } + _, err := c.UpdateOne(ctx, bson.M{"user_id": userID, "tag_id": tagID}, bson.M{"$set": bson.M{"user_list": newUserList}}) + if err != nil { + return err + } + return nil +} + +func (d *DataBases) GetUserIDListByTagID(userID, tagID string) ([]string, error) { + var tag Tag + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cTag) + _ = c.FindOne(ctx, bson.M{"user_id": userID, "tag_id": tagID}).Decode(&tag) + return tag.UserList, nil +} + +type TagUser struct { + UserID string `bson:"user_id"` + UserName string `bson:"user_name"` +} + +type TagSendLog struct { + TagID string `bson:"tag_id"` + TagName string `bson:"tag_name"` + SendID string `bson:"send_id"` + SenderPlatformID int32 `bson:"sender_platform_id"` + Content string `bson:"content"` + ContentType int32 `bson:"content_type"` + SendTime int64 `bson:"send_time"` +} + +func (d *DataBases) SaveTagSendLog(sendReq *officePb.SendMsg2TagReq) error { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cTag) + var tag Tag + _ = c.FindOne(ctx, bson.M{"user_id": sendReq.SendID, "tag_id": sendReq.TagID}).Decode(&tag) + c = d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cSendLog) + tagSendLog := TagSendLog{ + TagID: sendReq.TagID, + TagName: tag.TagName, + SendID: sendReq.SendID, + SenderPlatformID: sendReq.SenderPlatformID, + Content: sendReq.Content, + ContentType: sendReq.ContentType, + SendTime: time.Now().Unix(), + } + _, err := c.InsertOne(ctx, tagSendLog) + return err +} + +func (d *DataBases) GetTagSendLogs(userID string, showNumber, pageNumber int32) ([]TagSendLog, error) { + var tagSendLogs []TagSendLog + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cSendLog) + findOpts := options.Find().SetLimit(int64(showNumber)).SetSkip(int64(showNumber) * (int64(pageNumber) - 1)).SetSort(bson.M{"send_time": -1}) + cursor, err := c.Find(ctx, bson.M{"send_id": userID}, findOpts) + if err != nil { + return tagSendLogs, err + } + err = cursor.All(ctx, &tagSendLogs) + if err != nil { + return tagSendLogs, err + } + return tagSendLogs, nil +} + +func generateTagID(tagName, userID string) string { + return utils.Md5(tagName + userID + strconv.Itoa(rand.Int())) +} + func getCurrentTimestampByMill() int64 { return time.Now().UnixNano() / 1e6 } + func getSeqUid(uid string, seq uint32) string { seqSuffix := seq / singleGocMsgNum return indexGen(uid, seqSuffix) } + +func getMsgIndex(seq uint32) int { + seqSuffix := seq / singleGocMsgNum + var index uint32 + if seqSuffix == 0 { + index = (seq - seqSuffix*5000) - 1 + } else { + index = seq - seqSuffix*singleGocMsgNum + } + return int(index) +} + func isContainInt32(target uint32, List []uint32) bool { for _, element := range List { diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 63f12c115..a8fe5ed56 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -30,6 +30,9 @@ func InsertIntoGroupMember(toInsertInfo db.GroupMember) error { if toInsertInfo.RoleLevel == 0 { toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers } + if toInsertInfo.MuteEndTime.Unix() == 0 { + toInsertInfo.MuteEndTime = time.Unix(0, 0) + } err = dbConn.Table("group_members").Create(toInsertInfo).Error if err != nil { return err @@ -103,6 +106,18 @@ func DeleteGroupMemberByGroupIDAndUserID(groupID, userID string) error { return nil } +func DeleteGroupMemberByGroupID(groupID string) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + err = dbConn.Table("group_members").Where("group_id=? ", groupID).Delete(db.GroupMember{}).Error + if err != nil { + return err + } + return nil +} + func UpdateGroupMemberInfo(groupMemberInfo db.GroupMember) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { @@ -255,6 +270,14 @@ func GetGroupMembersCount(groupId, userName string) (int32, error) { return count, nil } +func UpdateGroupMemberInfoDefaultZero(groupMemberInfo db.GroupMember, args map[string]interface{}) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + return dbConn.Model(groupMemberInfo).Updates(args).Error +} + // //func SelectGroupList(groupID string) ([]string, error) { // var groupUserID string diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 587e3672e..2d1d0e4db 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -57,7 +57,6 @@ 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 } @@ -68,7 +67,7 @@ func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]db.Group if err != nil { return groups, err } - dbConn.LogMode(true) + err = dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", groupName)).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error return groups, err } @@ -79,7 +78,7 @@ func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { if err != nil { return groups, err } - dbConn.LogMode(true) + if err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error; err != nil { return groups, err } @@ -102,7 +101,7 @@ func DeleteGroup(groupId string) error { if err != nil { return err } - dbConn.LogMode(true) + var group db.Group var groupMembers []db.GroupMember if err := dbConn.Table("groups").Where("group_id=?", groupId).Delete(&group).Error; err != nil { @@ -119,7 +118,6 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, if err != nil { return "", "", err } - dbConn.LogMode(true) groupMember := db.GroupMember{ UserID: userId, GroupID: groupId, @@ -182,7 +180,7 @@ func GetGroupsCountNum(group db.Group) (int32, error) { if err != nil { return 0, err } - dbConn.LogMode(true) + var count int32 if err := dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", group.GroupName)).Count(&count).Error; err != nil { return 0, err @@ -198,7 +196,7 @@ func GetGroupById(groupId string) (db.Group, error) { if err != nil { return group, err } - dbConn.LogMode(true) + if err := dbConn.Table("groups").Find(&group).Error; err != nil { return group, err } @@ -211,9 +209,17 @@ func GetGroupMaster(groupId string) (db.GroupMember, error) { if err != nil { return groupMember, err } - dbConn.LogMode(true) + if err := dbConn.Table("group_members").Where("role_level=? and group_id=?", constant.GroupOwner, groupId).Find(&groupMember).Error; err != nil { return groupMember, err } return groupMember, nil } + +func UpdateGroupInfoDefaultZero(groupInfo db.Group, args map[string]interface{}) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + return dbConn.Model(groupInfo).Updates(args).Error +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index 811943667..eb4b0cc52 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -2,6 +2,8 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" "fmt" ) @@ -30,7 +32,6 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, if chatLog.SendTime.Unix() > 0 { db = db.Where("send_time > ? and send_time < ?", chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) } - err = db.Find(&chatLogs).Error return chatLogs, err } @@ -58,6 +59,7 @@ func GetChatLogCount(chatLog db.ChatLog) (int64, error) { db = db.Where("recv_id = ?", chatLog.RecvID) } if chatLog.SendTime.Unix() > 0 { + log.NewDebug("", utils.GetSelfFuncName(), chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) db = db.Where("send_time > ? and send_time < ?", chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) } diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 7492d6a38..c753396a8 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "fmt" "time" @@ -73,6 +74,19 @@ func GetUserByUserID(userID string) (*db.User, error) { return &user, nil } +func GetUserNameByUserID(userID string) (string, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return "", err + } + var user db.User + err = dbConn.Table("users").Select("name").Where("user_id=?", userID).First(&user).Error + if err != nil { + return "", err + } + return user.Nickname, nil +} + func UpdateUserInfo(user db.User) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { @@ -291,3 +305,75 @@ func GetBlockUsersNumCount() (int32, error) { } return count, nil } + +func SetConversation(conversation db.Conversation) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(true) + newConversation := conversation + if dbConn.Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") + return dbConn.Model(&db.Conversation{}).Create(conversation).Error + // if exist, then update record + } else { + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") + //force update + return dbConn.Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). + Update(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt, "is_pinned": conversation.IsPinned, "is_private_chat": conversation.IsPrivateChat}).Error + } +} + +func SetRecvMsgOpt(conversation db.Conversation) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(true) + newConversation := conversation + if dbConn.Model(&db.Conversation{}).Find(&newConversation).RowsAffected == 0 { + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "not exist in db, create") + return dbConn.Model(&db.Conversation{}).Create(conversation).Error + // if exist, then update record + } else { + log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation, "exist in db, update") + //force update + return dbConn.Model(conversation).Where("owner_user_id = ? and conversation_id = ?", conversation.OwnerUserID, conversation.ConversationID). + Update(map[string]interface{}{"recv_msg_opt": conversation.RecvMsgOpt}).Error + } +} + +func GetUserAllConversations(ownerUserID string) ([]db.Conversation, error) { + var conversations []db.Conversation + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return conversations, err + } + dbConn.LogMode(true) + err = dbConn.Model(&db.Conversation{}).Where("owner_user_id=?", ownerUserID).Find(&conversations).Error + return conversations, err +} + +func GetConversation(OwnerUserID, conversationID string) (db.Conversation, error) { + var conversation db.Conversation + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return conversation, err + } + err = dbConn.Model(&db.Conversation{ + OwnerUserID: OwnerUserID, + ConversationID: conversationID, + }).Find(&conversation).Error + return conversation, err +} + +func GetConversations(OwnerUserID string, conversationIDs []string) ([]db.Conversation, error) { + var conversations []db.Conversation + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return conversations, err + } + err = dbConn.Model(&db.Conversation{}).Where("conversation_id IN (?) and owner_user_id=?", conversationIDs, OwnerUserID).Find(&conversations).Error + return conversations, err +} diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index c8529b97c..c5594da9a 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -111,12 +111,14 @@ func (d *DataBases) DeleteTokenByUidPid(userID string, platformID int32, fields _, err := d.Exec("HDEL", key, redis.Args{}.Add().AddFlat(fields)...) return err } -func (d *DataBases) SetSingleConversationMsgOpt(userID, conversationID string, opt int) error { + +func (d *DataBases) SetSingleConversationRecvMsgOpt(userID, conversationID string, opt int32) error { key := conversationReceiveMessageOpt + userID _, err := d.Exec("HSet", key, conversationID, opt) return err } -func (d *DataBases) GetSingleConversationMsgOpt(userID, conversationID string) (int, error) { + +func (d *DataBases) GetSingleConversationRecvMsgOpt(userID, conversationID string) (int, error) { key := conversationReceiveMessageOpt + userID return redis.Int(d.Exec("HGet", key, conversationID)) } diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 50aecc8ae..21334a7a8 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -129,9 +129,10 @@ func CheckAccess(OpUserID string, OwnerUserID string) bool { return false } -func GetUserIDFromToken(token string) (bool, string) { +func GetUserIDFromToken(token string, operationID string) (bool, string) { claims, err := ParseToken(token) if err != nil { + log.Error(operationID, "ParseToken failed, ", err.Error(), token) return false, "" } return true, claims.UID @@ -162,7 +163,7 @@ func ParseToken(tokensString string) (claims *Claims, err error) { case constant.InValidToken: return nil, &constant.ErrTokenInvalid case constant.KickedToken: - return nil, &constant.ErrTokenInvalid + return nil, &constant.ErrTokenKicked case constant.ExpiredToken: return nil, &constant.ErrTokenExpired default: @@ -201,6 +202,21 @@ func VerifyToken(token, uid string) (bool, error) { if claims.UID != uid { return false, &constant.ErrTokenUnknown } + log.NewDebug("", claims.UID, claims.Platform) return true, nil } +func WsVerifyToken(token, uid string, platformID string) (bool, error, string) { + claims, err := ParseToken(token) + if err != nil { + return false, err, "parse token err" + } + if claims.UID != uid { + return false, &constant.ErrTokenUnknown, "uid is not same to token uid" + } + if claims.Platform != constant.PlatformIDToName(utils.StringToInt32(platformID)) { + return false, &constant.ErrTokenUnknown, "platform is not same to token platform" + } + log.NewDebug("", claims.UID, claims.Platform) + return true, nil, "" +} diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 8e7346cc1..bbd546225 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -118,6 +118,7 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group dst.AppMangerLevel = 1 } dst.JoinTime = int32(src.JoinTime.Unix()) + dst.MuteEndTime = uint32(src.JoinTime.Unix()) return nil } diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index 898a4b8c0..6bfdb626c 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -78,15 +78,25 @@ func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName strin log.Debug("", "KeepAlive kresp ok", pv) } else { log.Error("", "KeepAlive kresp failed", pv) - t := time.NewTicker(time.Duration(ttl) * time.Second) + t := time.NewTicker(time.Duration(ttl/2) * time.Second) for { select { case <-t.C: } + ctx, _ := context.WithCancel(context.Background()) + resp, err := cli.Grant(ctx, int64(ttl)) + if err != nil { + log.Error("", "Grant failed ", err.Error()) + continue + } + if _, err := cli.Put(ctx, serviceKey, serviceValue, clientv3.WithLease(resp.ID)); err != nil { log.Error("", "etcd Put failed ", err.Error(), serviceKey, serviceValue, resp.ID) + continue + } else { + log.Info("", "etcd Put ok", serviceKey, serviceValue, resp.ID) } - log.Info("", "etcd Put ok", serviceKey, serviceValue, resp.ID) + } } } diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index 834c9b307..cf1c6ba50 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -37,7 +37,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} } func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMQ) ProtoMessage() {} func (*MsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_a5e95d84ecbd21a3, []int{0} + return fileDescriptor_chat_83f286704599d5b1, []int{0} } func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) @@ -90,7 +90,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} } func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } func (*MsgDataToDB) ProtoMessage() {} func (*MsgDataToDB) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_a5e95d84ecbd21a3, []int{1} + return fileDescriptor_chat_83f286704599d5b1, []int{1} } func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) @@ -137,7 +137,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} } func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*PushMsgDataToMQ) ProtoMessage() {} func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_a5e95d84ecbd21a3, []int{2} + return fileDescriptor_chat_83f286704599d5b1, []int{2} } func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) @@ -210,7 +210,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_a5e95d84ecbd21a3, []int{3} + return fileDescriptor_chat_83f286704599d5b1, []int{3} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -258,7 +258,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_a5e95d84ecbd21a3, []int{4} + return fileDescriptor_chat_83f286704599d5b1, []int{4} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -319,7 +319,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_a5e95d84ecbd21a3, []int{5} + return fileDescriptor_chat_83f286704599d5b1, []int{5} } func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) @@ -375,7 +375,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_a5e95d84ecbd21a3, []int{6} + return fileDescriptor_chat_83f286704599d5b1, []int{6} } func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) @@ -454,6 +454,7 @@ type ChatClient interface { GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) PullMessageBySeqList(ctx context.Context, in *sdk_ws.PullMessageBySeqListReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageBySeqListResp, error) SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.CallOption) (*SendMsgResp, error) + DelMsgList(ctx context.Context, in *sdk_ws.DelMsgListReq, opts ...grpc.CallOption) (*sdk_ws.DelMsgListResp, error) } type chatClient struct { @@ -491,12 +492,22 @@ func (c *chatClient) SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.C return out, nil } +func (c *chatClient) DelMsgList(ctx context.Context, in *sdk_ws.DelMsgListReq, opts ...grpc.CallOption) (*sdk_ws.DelMsgListResp, error) { + out := new(sdk_ws.DelMsgListResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/DelMsgList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for Chat service type ChatServer interface { GetMaxAndMinSeq(context.Context, *GetMaxAndMinSeqReq) (*GetMaxAndMinSeqResp, error) PullMessageBySeqList(context.Context, *sdk_ws.PullMessageBySeqListReq) (*sdk_ws.PullMessageBySeqListResp, error) SendMsg(context.Context, *SendMsgReq) (*SendMsgResp, error) + DelMsgList(context.Context, *sdk_ws.DelMsgListReq) (*sdk_ws.DelMsgListResp, error) } func RegisterChatServer(s *grpc.Server, srv ChatServer) { @@ -557,6 +568,24 @@ func _Chat_SendMsg_Handler(srv interface{}, ctx context.Context, dec func(interf return interceptor(ctx, in, info, handler) } +func _Chat_DelMsgList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(sdk_ws.DelMsgListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).DelMsgList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/DelMsgList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).DelMsgList(ctx, req.(*sdk_ws.DelMsgListReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Chat_serviceDesc = grpc.ServiceDesc{ ServiceName: "pbChat.Chat", HandlerType: (*ChatServer)(nil), @@ -573,44 +602,49 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ MethodName: "SendMsg", Handler: _Chat_SendMsg_Handler, }, + { + MethodName: "DelMsgList", + Handler: _Chat_DelMsgList_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_a5e95d84ecbd21a3) } +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_83f286704599d5b1) } -var fileDescriptor_chat_a5e95d84ecbd21a3 = []byte{ - // 489 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4f, 0x6f, 0xd3, 0x4e, - 0x10, 0x95, 0xd3, 0x26, 0xf9, 0x65, 0xf2, 0xab, 0x22, 0x6d, 0x2b, 0x64, 0x99, 0x8b, 0xf1, 0x29, - 0x02, 0xc9, 0x96, 0x02, 0x37, 0x4e, 0xa4, 0xae, 0x50, 0x10, 0x4b, 0x8b, 0x13, 0x2e, 0x5c, 0xa2, - 0x6d, 0x3d, 0x72, 0xac, 0x24, 0xf6, 0x66, 0xc7, 0x21, 0x05, 0x3e, 0x03, 0x9f, 0x81, 0x8f, 0xc9, - 0x15, 0x79, 0xd7, 0x69, 0x9d, 0xa6, 0x88, 0x9c, 0xb8, 0x58, 0x7a, 0x6f, 0xc6, 0x6f, 0xde, 0xdb, - 0x7f, 0xd0, 0xbb, 0x99, 0x89, 0x22, 0x28, 0x3f, 0xbe, 0x54, 0x79, 0x91, 0xb3, 0x96, 0xbc, 0x3e, - 0x9f, 0x89, 0xc2, 0x79, 0x76, 0x29, 0x31, 0x9b, 0x8e, 0x78, 0x20, 0xe7, 0x49, 0xa0, 0x4b, 0x01, - 0xc5, 0xf3, 0xe9, 0x86, 0x82, 0x0d, 0x99, 0x56, 0xef, 0x3b, 0x74, 0x39, 0x25, 0xa1, 0x28, 0xc4, - 0x24, 0xe7, 0x1f, 0xd9, 0x19, 0x34, 0x8b, 0x7c, 0x8e, 0x99, 0x6d, 0xb9, 0x56, 0xbf, 0x13, 0x19, - 0xc0, 0x5c, 0xe8, 0xe6, 0x12, 0x95, 0x28, 0xd2, 0x3c, 0x1b, 0x85, 0x76, 0x43, 0xd7, 0xea, 0x14, - 0x7b, 0x05, 0xed, 0xa5, 0x91, 0xb1, 0x8f, 0x5c, 0xab, 0xdf, 0x1d, 0x38, 0x3e, 0xa1, 0xfa, 0x82, - 0x6a, 0x2a, 0x64, 0x3a, 0x95, 0x42, 0x89, 0x25, 0xf9, 0xd5, 0xa0, 0x68, 0xdb, 0xea, 0x61, 0x6d, - 0x78, 0x38, 0xac, 0x8b, 0x58, 0x07, 0x8b, 0xfc, 0xdd, 0x9c, 0xf7, 0xc3, 0x82, 0xde, 0xd5, 0x9a, - 0x66, 0xf5, 0xa0, 0x2e, 0x74, 0x2f, 0x6b, 0x7f, 0x99, 0xb8, 0x75, 0xaa, 0xee, 0xa6, 0x71, 0xb8, - 0x1b, 0x0f, 0xfe, 0x97, 0x6b, 0x9a, 0x4d, 0xf2, 0x4f, 0x84, 0x6a, 0x14, 0xea, 0xd5, 0xe8, 0x44, - 0x3b, 0x9c, 0xf7, 0x01, 0xd8, 0x5b, 0x2c, 0xb8, 0xb8, 0x7d, 0x93, 0xc5, 0x3c, 0xcd, 0xc6, 0xb8, - 0x8a, 0x70, 0xc5, 0x9e, 0x40, 0xab, 0xfa, 0xc7, 0x98, 0xa9, 0xd0, 0x43, 0xa7, 0x8d, 0x3d, 0xa7, - 0xde, 0x06, 0x4e, 0xf7, 0xf4, 0x48, 0x32, 0x1b, 0xda, 0x17, 0x4a, 0x9d, 0xe7, 0x31, 0x6a, 0xc5, - 0x66, 0xb4, 0x85, 0xe5, 0xa8, 0x0b, 0xa5, 0x38, 0x25, 0x95, 0x5a, 0x85, 0x4a, 0x9e, 0x8b, 0xdb, - 0x31, 0xae, 0xb4, 0xed, 0x93, 0xa8, 0x42, 0x9a, 0xd7, 0xba, 0xf6, 0x71, 0xc5, 0x6b, 0xe4, 0x7d, - 0x03, 0x18, 0x63, 0x16, 0x73, 0x4a, 0xca, 0x00, 0xff, 0xf6, 0xec, 0xfc, 0xb4, 0xa0, 0x7b, 0x37, - 0xdc, 0xa4, 0xc5, 0xdd, 0xb4, 0x78, 0x9f, 0x16, 0x77, 0xd2, 0x1a, 0x54, 0x3a, 0x33, 0x73, 0x38, - 0x25, 0xa3, 0x50, 0x47, 0xeb, 0x44, 0x75, 0xaa, 0xec, 0xb8, 0x59, 0xa4, 0x98, 0x15, 0xa6, 0xa3, - 0x69, 0x3a, 0x6a, 0x14, 0x73, 0xe0, 0x3f, 0xc2, 0x2c, 0x9e, 0xa4, 0x4b, 0xb4, 0x5b, 0xae, 0xd5, - 0x3f, 0x8a, 0xee, 0xf0, 0xe0, 0x97, 0x05, 0xc7, 0xe5, 0x35, 0x64, 0xef, 0xa0, 0xf7, 0x60, 0x7f, - 0x98, 0xe3, 0x9b, 0x2b, 0xea, 0xef, 0x1f, 0x04, 0xe7, 0xe9, 0x1f, 0x6b, 0x24, 0x59, 0x0e, 0x67, - 0x57, 0xeb, 0xc5, 0x82, 0x23, 0x91, 0x48, 0x70, 0xf8, 0x75, 0x8c, 0xab, 0xf7, 0x29, 0x15, 0xec, - 0xf9, 0x23, 0x6b, 0xf6, 0x58, 0x63, 0x39, 0xe0, 0xc5, 0xc1, 0xbd, 0x24, 0xd9, 0x00, 0xda, 0xd5, - 0x32, 0x33, 0xb6, 0x35, 0x76, 0xbf, 0xe9, 0xce, 0xe9, 0x1e, 0x47, 0x72, 0xd8, 0xfb, 0x7c, 0xe2, - 0xeb, 0xf7, 0xe8, 0xb5, 0x29, 0x5e, 0xb7, 0xf4, 0x63, 0xf3, 0xf2, 0x77, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xe8, 0xa6, 0x3e, 0x67, 0xaa, 0x04, 0x00, 0x00, +var fileDescriptor_chat_83f286704599d5b1 = []byte{ + // 507 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xcd, 0x6e, 0xda, 0x40, + 0x10, 0x96, 0x49, 0x80, 0x32, 0x34, 0x42, 0xda, 0x44, 0x95, 0xe5, 0x5e, 0x1c, 0x9f, 0x50, 0x2b, + 0x19, 0x89, 0xf6, 0xd6, 0x53, 0x89, 0xa3, 0x8a, 0xaa, 0xdb, 0x24, 0x86, 0x5e, 0x7a, 0x41, 0x9b, + 0x30, 0x32, 0x16, 0x60, 0x2f, 0x3b, 0xa6, 0xa4, 0xed, 0x33, 0xf4, 0x19, 0xfa, 0x3e, 0x7d, 0xaa, + 0xca, 0xbb, 0x26, 0x98, 0x40, 0x15, 0x4e, 0xbd, 0x58, 0x9a, 0x6f, 0x3e, 0x7f, 0x3f, 0xeb, 0x1f, + 0x68, 0xdd, 0x4d, 0x44, 0xd6, 0xc9, 0x2f, 0xbe, 0x54, 0x69, 0x96, 0xb2, 0x9a, 0xbc, 0xbd, 0x98, + 0x88, 0xcc, 0x39, 0xbf, 0x92, 0x98, 0x8c, 0xfa, 0xbc, 0x23, 0xa7, 0x51, 0x47, 0xaf, 0x3a, 0x34, + 0x9e, 0x8e, 0x56, 0xd4, 0x59, 0x91, 0xa1, 0x7a, 0x3f, 0xa1, 0xc9, 0x29, 0x0a, 0x44, 0x26, 0x86, + 0x29, 0xbf, 0x61, 0x67, 0x50, 0xcd, 0xd2, 0x29, 0x26, 0xb6, 0xe5, 0x5a, 0xed, 0x46, 0x68, 0x06, + 0xe6, 0x42, 0x33, 0x95, 0xa8, 0x44, 0x16, 0xa7, 0x49, 0x3f, 0xb0, 0x2b, 0x7a, 0x57, 0x86, 0xd8, + 0x5b, 0xa8, 0xcf, 0x8d, 0x8c, 0x7d, 0xe4, 0x5a, 0xed, 0x66, 0xd7, 0xf1, 0x09, 0xd5, 0x37, 0x54, + 0x23, 0x21, 0xe3, 0x91, 0x14, 0x4a, 0xcc, 0xc9, 0x2f, 0x8c, 0xc2, 0x35, 0xd5, 0xc3, 0x92, 0x79, + 0xd0, 0x2b, 0x8b, 0x58, 0x07, 0x8b, 0x3c, 0x1d, 0xce, 0xfb, 0x65, 0x41, 0xeb, 0x7a, 0x49, 0x93, + 0x72, 0x51, 0x17, 0x9a, 0x57, 0xa5, 0xbb, 0x4c, 0xdd, 0x32, 0x54, 0x4e, 0x53, 0x39, 0x3c, 0x8d, + 0x07, 0xcf, 0xe5, 0x92, 0x26, 0xc3, 0xf4, 0x0b, 0xa1, 0xea, 0x07, 0xfa, 0x34, 0x1a, 0xe1, 0x16, + 0xe6, 0x7d, 0x06, 0xf6, 0x01, 0x33, 0x2e, 0xee, 0xdf, 0x27, 0x63, 0x1e, 0x27, 0x03, 0x5c, 0x84, + 0xb8, 0x60, 0x2f, 0xa0, 0x56, 0xdc, 0x63, 0xc2, 0x14, 0xd3, 0xe3, 0xa4, 0x95, 0x9d, 0xa4, 0xde, + 0x0a, 0x4e, 0x77, 0xf4, 0x48, 0x32, 0x1b, 0xea, 0x97, 0x4a, 0x5d, 0xa4, 0x63, 0xd4, 0x8a, 0xd5, + 0x70, 0x3d, 0xe6, 0x56, 0x97, 0x4a, 0x71, 0x8a, 0x0a, 0xb5, 0x62, 0xca, 0x71, 0x2e, 0xee, 0x07, + 0xb8, 0xd0, 0xb1, 0x4f, 0xc2, 0x62, 0xd2, 0xb8, 0xd6, 0xb5, 0x8f, 0x0b, 0x5c, 0x4f, 0xde, 0x0f, + 0x80, 0x01, 0x26, 0x63, 0x4e, 0x51, 0x5e, 0xe0, 0xff, 0xbe, 0x3b, 0xbf, 0x2d, 0x68, 0x3e, 0x98, + 0x9b, 0xb6, 0xb8, 0xdd, 0x16, 0x37, 0x6d, 0x71, 0xab, 0xad, 0x99, 0xf2, 0x64, 0xc6, 0x87, 0x53, + 0xd4, 0x0f, 0x74, 0xb5, 0x46, 0x58, 0x86, 0x72, 0xc6, 0xdd, 0x2c, 0xc6, 0x24, 0x33, 0x8c, 0xaa, + 0x61, 0x94, 0x20, 0xe6, 0xc0, 0x33, 0xc2, 0x64, 0x3c, 0x8c, 0xe7, 0x68, 0xd7, 0x5c, 0xab, 0x7d, + 0x14, 0x3e, 0xcc, 0xdd, 0x3f, 0x15, 0x38, 0xce, 0x3f, 0x43, 0xf6, 0x11, 0x5a, 0x8f, 0x9e, 0x0f, + 0x73, 0x7c, 0xf3, 0x89, 0xfa, 0xbb, 0x2f, 0x82, 0xf3, 0xf2, 0x9f, 0x3b, 0x92, 0x2c, 0x85, 0xb3, + 0xeb, 0xe5, 0x6c, 0xc6, 0x91, 0x48, 0x44, 0xd8, 0xfb, 0x3e, 0xc0, 0xc5, 0xa7, 0x98, 0x32, 0xf6, + 0x6a, 0xcf, 0x99, 0xed, 0x23, 0xe6, 0x06, 0xaf, 0x0f, 0xe6, 0x92, 0x64, 0x5d, 0xa8, 0x17, 0xc7, + 0xcc, 0xd8, 0x3a, 0xd8, 0xe6, 0xa1, 0x3b, 0xa7, 0x3b, 0x18, 0x49, 0x76, 0x03, 0x10, 0xe0, 0x8c, + 0x53, 0xa4, 0xa3, 0xb9, 0x7b, 0xec, 0x36, 0xeb, 0x5c, 0xe4, 0xfc, 0x09, 0x06, 0xc9, 0x5e, 0xeb, + 0xeb, 0x89, 0xaf, 0x7f, 0x71, 0xef, 0x8c, 0xdf, 0x6d, 0x4d, 0xff, 0xbf, 0xde, 0xfc, 0x0d, 0x00, + 0x00, 0xff, 0xff, 0x6f, 0x9d, 0x6f, 0xa0, 0xfd, 0x04, 0x00, 0x00, } diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index 4625d8174..146994f01 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -1,7 +1,9 @@ syntax = "proto3"; import "Open_IM/pkg/proto/sdk_ws/ws.proto"; -package pbChat;//The package name to which the proto file belongs -option go_package = "./chat;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat +option go_package = "./chat;pbChat"; +package pbChat; + + message MsgDataToMQ{ string token =1; @@ -69,8 +71,12 @@ message SendMsgResp { int64 sendTime = 6; } + + + service Chat { rpc GetMaxAndMinSeq(GetMaxAndMinSeqReq) returns(GetMaxAndMinSeqResp); rpc PullMessageBySeqList(server_api_params.PullMessageBySeqListReq) returns(server_api_params.PullMessageBySeqListResp); rpc SendMsg(SendMsgReq) returns(SendMsgResp); + rpc DelMsgList(server_api_params.DelMsgListReq) returns(server_api_params.DelMsgListResp); } diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index d6dc9ccd9..2f8176fad 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -1,4644 +1,3363 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 // source: group/group.proto -package group +package group // import "./group" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import sdk_ws "Open_IM/pkg/proto/sdk_ws" import ( - sdk_ws "Open_IM/pkg/proto/sdk_ws" - context "context" + context "golang.org/x/net/context" grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" ) -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type CommonResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *CommonResp) Reset() { - *x = CommonResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CommonResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CommonResp) ProtoMessage() {} - -func (x *CommonResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[0] - 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 CommonResp.ProtoReflect.Descriptor instead. +func (m *CommonResp) Reset() { *m = CommonResp{} } +func (m *CommonResp) String() string { return proto.CompactTextString(m) } +func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{0} + return fileDescriptor_group_3c77315b028a1402, []int{0} +} +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) +} +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) +} +func (dst *CommonResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonResp.Merge(dst, src) +} +func (m *CommonResp) XXX_Size() int { + return xxx_messageInfo_CommonResp.Size(m) +} +func (m *CommonResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommonResp.DiscardUnknown(m) } -func (x *CommonResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *CommonResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *CommonResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } type GroupAddMemberInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` - RoleLevel int32 `protobuf:"varint,2,opt,name=RoleLevel,proto3" json:"RoleLevel,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + RoleLevel int32 `protobuf:"varint,2,opt,name=RoleLevel" json:"RoleLevel,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupAddMemberInfo) Reset() { - *x = GroupAddMemberInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupAddMemberInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupAddMemberInfo) ProtoMessage() {} - -func (x *GroupAddMemberInfo) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[1] - 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 GroupAddMemberInfo.ProtoReflect.Descriptor instead. +func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } +func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } +func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{1} + return fileDescriptor_group_3c77315b028a1402, []int{1} +} +func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) +} +func (m *GroupAddMemberInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupAddMemberInfo.Marshal(b, m, deterministic) +} +func (dst *GroupAddMemberInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupAddMemberInfo.Merge(dst, src) +} +func (m *GroupAddMemberInfo) XXX_Size() int { + return xxx_messageInfo_GroupAddMemberInfo.Size(m) +} +func (m *GroupAddMemberInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupAddMemberInfo.DiscardUnknown(m) } -func (x *GroupAddMemberInfo) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_GroupAddMemberInfo proto.InternalMessageInfo + +func (m *GroupAddMemberInfo) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *GroupAddMemberInfo) GetRoleLevel() int32 { - if x != nil { - return x.RoleLevel +func (m *GroupAddMemberInfo) GetRoleLevel() int32 { + if m != nil { + return m.RoleLevel } return 0 } type CreateGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - InitMemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=InitMemberList,proto3" json:"InitMemberList,omitempty"` - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner - OwnerUserID string `protobuf:"bytes,5,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` //owner + InitMemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=InitMemberList" json:"InitMemberList,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=GroupInfo" json:"GroupInfo,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` + OwnerUserID string `protobuf:"bytes,5,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *CreateGroupReq) Reset() { - *x = CreateGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateGroupReq) ProtoMessage() {} - -func (x *CreateGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[2] - 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 CreateGroupReq.ProtoReflect.Descriptor instead. +func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } +func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } +func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{2} + return fileDescriptor_group_3c77315b028a1402, []int{2} +} +func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) +} +func (m *CreateGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateGroupReq.Marshal(b, m, deterministic) +} +func (dst *CreateGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateGroupReq.Merge(dst, src) +} +func (m *CreateGroupReq) XXX_Size() int { + return xxx_messageInfo_CreateGroupReq.Size(m) +} +func (m *CreateGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_CreateGroupReq.DiscardUnknown(m) } -func (x *CreateGroupReq) GetInitMemberList() []*GroupAddMemberInfo { - if x != nil { - return x.InitMemberList +var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo + +func (m *CreateGroupReq) GetInitMemberList() []*GroupAddMemberInfo { + if m != nil { + return m.InitMemberList } return nil } -func (x *CreateGroupReq) GetGroupInfo() *sdk_ws.GroupInfo { - if x != nil { - return x.GroupInfo +func (m *CreateGroupReq) GetGroupInfo() *sdk_ws.GroupInfo { + if m != nil { + return m.GroupInfo } return nil } -func (x *CreateGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *CreateGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *CreateGroupReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *CreateGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *CreateGroupReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID +func (m *CreateGroupReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID } return "" } type CreateGroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,3,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,3,opt,name=GroupInfo" json:"GroupInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *CreateGroupResp) Reset() { - *x = CreateGroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateGroupResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateGroupResp) ProtoMessage() {} - -func (x *CreateGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[3] - 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 CreateGroupResp.ProtoReflect.Descriptor instead. +func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } +func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } +func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{3} + return fileDescriptor_group_3c77315b028a1402, []int{3} +} +func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) +} +func (m *CreateGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateGroupResp.Marshal(b, m, deterministic) +} +func (dst *CreateGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateGroupResp.Merge(dst, src) +} +func (m *CreateGroupResp) XXX_Size() int { + return xxx_messageInfo_CreateGroupResp.Size(m) +} +func (m *CreateGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_CreateGroupResp.DiscardUnknown(m) } -func (x *CreateGroupResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_CreateGroupResp proto.InternalMessageInfo + +func (m *CreateGroupResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *CreateGroupResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *CreateGroupResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *CreateGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { - if x != nil { - return x.GroupInfo +func (m *CreateGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { + if m != nil { + return m.GroupInfo } return nil } type GetGroupsInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupIDList []string `protobuf:"bytes,1,rep,name=GroupIDList,proto3" json:"GroupIDList,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission + GroupIDList []string `protobuf:"bytes,1,rep,name=GroupIDList" json:"GroupIDList,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupsInfoReq) Reset() { - *x = GetGroupsInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupsInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupsInfoReq) ProtoMessage() {} - -func (x *GetGroupsInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[4] - 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 GetGroupsInfoReq.ProtoReflect.Descriptor instead. +func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } +func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{4} + return fileDescriptor_group_3c77315b028a1402, []int{4} +} +func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) +} +func (m *GetGroupsInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupsInfoReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupsInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupsInfoReq.Merge(dst, src) +} +func (m *GetGroupsInfoReq) XXX_Size() int { + return xxx_messageInfo_GetGroupsInfoReq.Size(m) +} +func (m *GetGroupsInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupsInfoReq.DiscardUnknown(m) } -func (x *GetGroupsInfoReq) GetGroupIDList() []string { - if x != nil { - return x.GroupIDList +var xxx_messageInfo_GetGroupsInfoReq proto.InternalMessageInfo + +func (m *GetGroupsInfoReq) GetGroupIDList() []string { + if m != nil { + return m.GroupIDList } return nil } -func (x *GetGroupsInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupsInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GetGroupsInfoReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *GetGroupsInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } type GetGroupsInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - GroupInfoList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupInfoList,proto3" json:"GroupInfoList,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + GroupInfoList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupInfoList" json:"GroupInfoList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupsInfoResp) Reset() { - *x = GetGroupsInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupsInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupsInfoResp) ProtoMessage() {} - -func (x *GetGroupsInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[5] - 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 GetGroupsInfoResp.ProtoReflect.Descriptor instead. +func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } +func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{5} + return fileDescriptor_group_3c77315b028a1402, []int{5} +} +func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) +} +func (m *GetGroupsInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupsInfoResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupsInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupsInfoResp.Merge(dst, src) +} +func (m *GetGroupsInfoResp) XXX_Size() int { + return xxx_messageInfo_GetGroupsInfoResp.Size(m) +} +func (m *GetGroupsInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupsInfoResp.DiscardUnknown(m) } -func (x *GetGroupsInfoResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_GetGroupsInfoResp proto.InternalMessageInfo + +func (m *GetGroupsInfoResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GetGroupsInfoResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GetGroupsInfoResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo { - if x != nil { - return x.GroupInfoList +func (m *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo { + if m != nil { + return m.GroupInfoList } return nil } type SetGroupInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo" json:"GroupInfo,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *SetGroupInfoReq) Reset() { - *x = SetGroupInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetGroupInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetGroupInfoReq) ProtoMessage() {} - -func (x *SetGroupInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[6] - 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 SetGroupInfoReq.ProtoReflect.Descriptor instead. +func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } +func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } +func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{6} + return fileDescriptor_group_3c77315b028a1402, []int{6} +} +func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) +} +func (m *SetGroupInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetGroupInfoReq.Marshal(b, m, deterministic) +} +func (dst *SetGroupInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetGroupInfoReq.Merge(dst, src) +} +func (m *SetGroupInfoReq) XXX_Size() int { + return xxx_messageInfo_SetGroupInfoReq.Size(m) +} +func (m *SetGroupInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetGroupInfoReq.DiscardUnknown(m) } -func (x *SetGroupInfoReq) GetGroupInfo() *sdk_ws.GroupInfo { - if x != nil { - return x.GroupInfo +var xxx_messageInfo_SetGroupInfoReq proto.InternalMessageInfo + +func (m *SetGroupInfoReq) GetGroupInfo() *sdk_ws.GroupInfo { + if m != nil { + return m.GroupInfo } return nil } -func (x *SetGroupInfoReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *SetGroupInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *SetGroupInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *SetGroupInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type SetGroupInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *SetGroupInfoResp) Reset() { - *x = SetGroupInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetGroupInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetGroupInfoResp) ProtoMessage() {} - -func (x *SetGroupInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[7] - 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 SetGroupInfoResp.ProtoReflect.Descriptor instead. +func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } +func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } +func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{7} + return fileDescriptor_group_3c77315b028a1402, []int{7} +} +func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) +} +func (m *SetGroupInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetGroupInfoResp.Marshal(b, m, deterministic) +} +func (dst *SetGroupInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetGroupInfoResp.Merge(dst, src) +} +func (m *SetGroupInfoResp) XXX_Size() int { + return xxx_messageInfo_SetGroupInfoResp.Size(m) +} +func (m *SetGroupInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetGroupInfoResp.DiscardUnknown(m) } -func (x *SetGroupInfoResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_SetGroupInfoResp proto.InternalMessageInfo + +func (m *SetGroupInfoResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } type GetGroupApplicationListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner(manager) - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - FromUserID string `protobuf:"bytes,3,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` //owner or manager + OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupApplicationListReq) Reset() { - *x = GetGroupApplicationListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupApplicationListReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupApplicationListReq) ProtoMessage() {} - -func (x *GetGroupApplicationListReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[8] - 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 GetGroupApplicationListReq.ProtoReflect.Descriptor instead. +func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationListReq{} } +func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{8} + return fileDescriptor_group_3c77315b028a1402, []int{8} +} +func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) +} +func (m *GetGroupApplicationListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupApplicationListReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupApplicationListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupApplicationListReq.Merge(dst, src) +} +func (m *GetGroupApplicationListReq) XXX_Size() int { + return xxx_messageInfo_GetGroupApplicationListReq.Size(m) +} +func (m *GetGroupApplicationListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupApplicationListReq.DiscardUnknown(m) } -func (x *GetGroupApplicationListReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +var xxx_messageInfo_GetGroupApplicationListReq proto.InternalMessageInfo + +func (m *GetGroupApplicationListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *GetGroupApplicationListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupApplicationListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GetGroupApplicationListReq) GetFromUserID() string { - if x != nil { - return x.FromUserID +func (m *GetGroupApplicationListReq) GetFromUserID() string { + if m != nil { + return m.FromUserID } return "" } type GetGroupApplicationListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,3,rep,name=GroupRequestList,proto3" json:"GroupRequestList,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,3,rep,name=GroupRequestList" json:"GroupRequestList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupApplicationListResp) Reset() { - *x = GetGroupApplicationListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupApplicationListResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupApplicationListResp) ProtoMessage() {} - -func (x *GetGroupApplicationListResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[9] - 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 GetGroupApplicationListResp.ProtoReflect.Descriptor instead. +func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplicationListResp{} } +func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{9} + return fileDescriptor_group_3c77315b028a1402, []int{9} +} +func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) +} +func (m *GetGroupApplicationListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupApplicationListResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupApplicationListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupApplicationListResp.Merge(dst, src) +} +func (m *GetGroupApplicationListResp) XXX_Size() int { + return xxx_messageInfo_GetGroupApplicationListResp.Size(m) +} +func (m *GetGroupApplicationListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupApplicationListResp.DiscardUnknown(m) } -func (x *GetGroupApplicationListResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_GetGroupApplicationListResp proto.InternalMessageInfo + +func (m *GetGroupApplicationListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GetGroupApplicationListResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GetGroupApplicationListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *GetGroupApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { - if x != nil { - return x.GroupRequestList +func (m *GetGroupApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { + if m != nil { + return m.GroupRequestList } return nil } type GetUserReqApplicationListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetUserReqApplicationListReq) Reset() { - *x = GetUserReqApplicationListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserReqApplicationListReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserReqApplicationListReq) ProtoMessage() {} - -func (x *GetUserReqApplicationListReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[10] - 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 GetUserReqApplicationListReq.ProtoReflect.Descriptor instead. +func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicationListReq{} } +func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) } +func (*GetUserReqApplicationListReq) ProtoMessage() {} func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{10} + return fileDescriptor_group_3c77315b028a1402, []int{10} +} +func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) +} +func (m *GetUserReqApplicationListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserReqApplicationListReq.Marshal(b, m, deterministic) +} +func (dst *GetUserReqApplicationListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserReqApplicationListReq.Merge(dst, src) +} +func (m *GetUserReqApplicationListReq) XXX_Size() int { + return xxx_messageInfo_GetUserReqApplicationListReq.Size(m) +} +func (m *GetUserReqApplicationListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserReqApplicationListReq.DiscardUnknown(m) } -func (x *GetUserReqApplicationListReq) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_GetUserReqApplicationListReq proto.InternalMessageInfo + +func (m *GetUserReqApplicationListReq) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *GetUserReqApplicationListReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *GetUserReqApplicationListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *GetUserReqApplicationListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetUserReqApplicationListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetUserReqApplicationListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,2,rep,name=GroupRequestList,proto3" json:"GroupRequestList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,2,rep,name=GroupRequestList" json:"GroupRequestList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetUserReqApplicationListResp) Reset() { - *x = GetUserReqApplicationListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserReqApplicationListResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserReqApplicationListResp) ProtoMessage() {} - -func (x *GetUserReqApplicationListResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[11] - 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 GetUserReqApplicationListResp.ProtoReflect.Descriptor instead. +func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplicationListResp{} } +func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) } +func (*GetUserReqApplicationListResp) ProtoMessage() {} func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{11} + return fileDescriptor_group_3c77315b028a1402, []int{11} +} +func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) +} +func (m *GetUserReqApplicationListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserReqApplicationListResp.Marshal(b, m, deterministic) +} +func (dst *GetUserReqApplicationListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserReqApplicationListResp.Merge(dst, src) +} +func (m *GetUserReqApplicationListResp) XXX_Size() int { + return xxx_messageInfo_GetUserReqApplicationListResp.Size(m) +} +func (m *GetUserReqApplicationListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserReqApplicationListResp.DiscardUnknown(m) } -func (x *GetUserReqApplicationListResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_GetUserReqApplicationListResp proto.InternalMessageInfo + +func (m *GetUserReqApplicationListResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *GetUserReqApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { - if x != nil { - return x.GroupRequestList +func (m *GetUserReqApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { + if m != nil { + return m.GroupRequestList } return nil } type TransferGroupOwnerReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - OldOwnerUserID string `protobuf:"bytes,2,opt,name=OldOwnerUserID,proto3" json:"OldOwnerUserID,omitempty"` - NewOwnerUserID string `protobuf:"bytes,3,opt,name=NewOwnerUserID,proto3" json:"NewOwnerUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,5,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + OldOwnerUserID string `protobuf:"bytes,2,opt,name=OldOwnerUserID" json:"OldOwnerUserID,omitempty"` + NewOwnerUserID string `protobuf:"bytes,3,opt,name=NewOwnerUserID" json:"NewOwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TransferGroupOwnerReq) Reset() { - *x = TransferGroupOwnerReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TransferGroupOwnerReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TransferGroupOwnerReq) ProtoMessage() {} - -func (x *TransferGroupOwnerReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[12] - 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 TransferGroupOwnerReq.ProtoReflect.Descriptor instead. +func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } +func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } +func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{12} + return fileDescriptor_group_3c77315b028a1402, []int{12} +} +func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) +} +func (m *TransferGroupOwnerReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TransferGroupOwnerReq.Marshal(b, m, deterministic) +} +func (dst *TransferGroupOwnerReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransferGroupOwnerReq.Merge(dst, src) +} +func (m *TransferGroupOwnerReq) XXX_Size() int { + return xxx_messageInfo_TransferGroupOwnerReq.Size(m) +} +func (m *TransferGroupOwnerReq) XXX_DiscardUnknown() { + xxx_messageInfo_TransferGroupOwnerReq.DiscardUnknown(m) } -func (x *TransferGroupOwnerReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_TransferGroupOwnerReq proto.InternalMessageInfo + +func (m *TransferGroupOwnerReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *TransferGroupOwnerReq) GetOldOwnerUserID() string { - if x != nil { - return x.OldOwnerUserID +func (m *TransferGroupOwnerReq) GetOldOwnerUserID() string { + if m != nil { + return m.OldOwnerUserID } return "" } -func (x *TransferGroupOwnerReq) GetNewOwnerUserID() string { - if x != nil { - return x.NewOwnerUserID +func (m *TransferGroupOwnerReq) GetNewOwnerUserID() string { + if m != nil { + return m.NewOwnerUserID } return "" } -func (x *TransferGroupOwnerReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *TransferGroupOwnerReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *TransferGroupOwnerReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *TransferGroupOwnerReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } type TransferGroupOwnerResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TransferGroupOwnerResp) Reset() { - *x = TransferGroupOwnerResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *TransferGroupOwnerResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*TransferGroupOwnerResp) ProtoMessage() {} - -func (x *TransferGroupOwnerResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[13] - 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 TransferGroupOwnerResp.ProtoReflect.Descriptor instead. +func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} } +func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } +func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{13} + return fileDescriptor_group_3c77315b028a1402, []int{13} +} +func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) +} +func (m *TransferGroupOwnerResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TransferGroupOwnerResp.Marshal(b, m, deterministic) +} +func (dst *TransferGroupOwnerResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransferGroupOwnerResp.Merge(dst, src) +} +func (m *TransferGroupOwnerResp) XXX_Size() int { + return xxx_messageInfo_TransferGroupOwnerResp.Size(m) +} +func (m *TransferGroupOwnerResp) XXX_DiscardUnknown() { + xxx_messageInfo_TransferGroupOwnerResp.DiscardUnknown(m) } -func (x *TransferGroupOwnerResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_TransferGroupOwnerResp proto.InternalMessageInfo + +func (m *TransferGroupOwnerResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } type JoinGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage,proto3" json:"ReqMessage,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *JoinGroupReq) Reset() { - *x = JoinGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *JoinGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*JoinGroupReq) ProtoMessage() {} - -func (x *JoinGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[14] - 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 JoinGroupReq.ProtoReflect.Descriptor instead. +func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } +func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } +func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{14} + return fileDescriptor_group_3c77315b028a1402, []int{14} +} +func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) +} +func (m *JoinGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_JoinGroupReq.Marshal(b, m, deterministic) +} +func (dst *JoinGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_JoinGroupReq.Merge(dst, src) +} +func (m *JoinGroupReq) XXX_Size() int { + return xxx_messageInfo_JoinGroupReq.Size(m) +} +func (m *JoinGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_JoinGroupReq.DiscardUnknown(m) } -func (x *JoinGroupReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_JoinGroupReq proto.InternalMessageInfo + +func (m *JoinGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *JoinGroupReq) GetReqMessage() string { - if x != nil { - return x.ReqMessage +func (m *JoinGroupReq) GetReqMessage() string { + if m != nil { + return m.ReqMessage } return "" } -func (x *JoinGroupReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *JoinGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *JoinGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *JoinGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type JoinGroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *JoinGroupResp) Reset() { - *x = JoinGroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *JoinGroupResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*JoinGroupResp) ProtoMessage() {} - -func (x *JoinGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[15] - 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 JoinGroupResp.ProtoReflect.Descriptor instead. +func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } +func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } +func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{15} + return fileDescriptor_group_3c77315b028a1402, []int{15} +} +func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) +} +func (m *JoinGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_JoinGroupResp.Marshal(b, m, deterministic) +} +func (dst *JoinGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_JoinGroupResp.Merge(dst, src) +} +func (m *JoinGroupResp) XXX_Size() int { + return xxx_messageInfo_JoinGroupResp.Size(m) +} +func (m *JoinGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_JoinGroupResp.DiscardUnknown(m) } -func (x *JoinGroupResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_JoinGroupResp proto.InternalMessageInfo + +func (m *JoinGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } type GroupApplicationResponseReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,4,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` // - HandledMsg string `protobuf:"bytes,5,opt,name=HandledMsg,proto3" json:"HandledMsg,omitempty"` - HandleResult int32 `protobuf:"varint,6,opt,name=HandleResult,proto3" json:"HandleResult,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` + HandledMsg string `protobuf:"bytes,5,opt,name=HandledMsg" json:"HandledMsg,omitempty"` + HandleResult int32 `protobuf:"varint,6,opt,name=HandleResult" json:"HandleResult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupApplicationResponseReq) Reset() { - *x = GroupApplicationResponseReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupApplicationResponseReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupApplicationResponseReq) ProtoMessage() {} - -func (x *GroupApplicationResponseReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[16] - 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 GroupApplicationResponseReq.ProtoReflect.Descriptor instead. +func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationResponseReq{} } +func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{16} + return fileDescriptor_group_3c77315b028a1402, []int{16} +} +func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) +} +func (m *GroupApplicationResponseReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationResponseReq.Marshal(b, m, deterministic) +} +func (dst *GroupApplicationResponseReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationResponseReq.Merge(dst, src) +} +func (m *GroupApplicationResponseReq) XXX_Size() int { + return xxx_messageInfo_GroupApplicationResponseReq.Size(m) +} +func (m *GroupApplicationResponseReq) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationResponseReq.DiscardUnknown(m) } -func (x *GroupApplicationResponseReq) GetOperationID() string { - if x != nil { - return x.OperationID +var xxx_messageInfo_GroupApplicationResponseReq proto.InternalMessageInfo + +func (m *GroupApplicationResponseReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GroupApplicationResponseReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *GroupApplicationResponseReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *GroupApplicationResponseReq) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *GroupApplicationResponseReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GroupApplicationResponseReq) GetFromUserID() string { - if x != nil { - return x.FromUserID +func (m *GroupApplicationResponseReq) GetFromUserID() string { + if m != nil { + return m.FromUserID } return "" } -func (x *GroupApplicationResponseReq) GetHandledMsg() string { - if x != nil { - return x.HandledMsg +func (m *GroupApplicationResponseReq) GetHandledMsg() string { + if m != nil { + return m.HandledMsg } return "" } -func (x *GroupApplicationResponseReq) GetHandleResult() int32 { - if x != nil { - return x.HandleResult +func (m *GroupApplicationResponseReq) GetHandleResult() int32 { + if m != nil { + return m.HandleResult } return 0 } type GroupApplicationResponseResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupApplicationResponseResp) Reset() { - *x = GroupApplicationResponseResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupApplicationResponseResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupApplicationResponseResp) ProtoMessage() {} - -func (x *GroupApplicationResponseResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[17] - 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 GroupApplicationResponseResp.ProtoReflect.Descriptor instead. +func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationResponseResp{} } +func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{17} + return fileDescriptor_group_3c77315b028a1402, []int{17} +} +func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) +} +func (m *GroupApplicationResponseResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationResponseResp.Marshal(b, m, deterministic) +} +func (dst *GroupApplicationResponseResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationResponseResp.Merge(dst, src) +} +func (m *GroupApplicationResponseResp) XXX_Size() int { + return xxx_messageInfo_GroupApplicationResponseResp.Size(m) +} +func (m *GroupApplicationResponseResp) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationResponseResp.DiscardUnknown(m) } -func (x *GroupApplicationResponseResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_GroupApplicationResponseResp proto.InternalMessageInfo + +func (m *GroupApplicationResponseResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } type QuitGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *QuitGroupReq) Reset() { - *x = QuitGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QuitGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QuitGroupReq) ProtoMessage() {} - -func (x *QuitGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[18] - 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 QuitGroupReq.ProtoReflect.Descriptor instead. +func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } +func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } +func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{18} + return fileDescriptor_group_3c77315b028a1402, []int{18} +} +func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) +} +func (m *QuitGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QuitGroupReq.Marshal(b, m, deterministic) +} +func (dst *QuitGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuitGroupReq.Merge(dst, src) +} +func (m *QuitGroupReq) XXX_Size() int { + return xxx_messageInfo_QuitGroupReq.Size(m) +} +func (m *QuitGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_QuitGroupReq.DiscardUnknown(m) } -func (x *QuitGroupReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_QuitGroupReq proto.InternalMessageInfo + +func (m *QuitGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *QuitGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *QuitGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *QuitGroupReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *QuitGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } type QuitGroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *QuitGroupResp) Reset() { - *x = QuitGroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *QuitGroupResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*QuitGroupResp) ProtoMessage() {} - -func (x *QuitGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[19] - 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 QuitGroupResp.ProtoReflect.Descriptor instead. +func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } +func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } +func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{19} + return fileDescriptor_group_3c77315b028a1402, []int{19} +} +func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) +} +func (m *QuitGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QuitGroupResp.Marshal(b, m, deterministic) +} +func (dst *QuitGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuitGroupResp.Merge(dst, src) +} +func (m *QuitGroupResp) XXX_Size() int { + return xxx_messageInfo_QuitGroupResp.Size(m) +} +func (m *QuitGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_QuitGroupResp.DiscardUnknown(m) } -func (x *QuitGroupResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_QuitGroupResp proto.InternalMessageInfo + +func (m *QuitGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } type GetGroupMemberListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Filter int32 `protobuf:"varint,4,opt,name=Filter,proto3" json:"Filter,omitempty"` - NextSeq int32 `protobuf:"varint,5,opt,name=NextSeq,proto3" json:"NextSeq,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + Filter int32 `protobuf:"varint,4,opt,name=Filter" json:"Filter,omitempty"` + NextSeq int32 `protobuf:"varint,5,opt,name=NextSeq" json:"NextSeq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupMemberListReq) Reset() { - *x = GetGroupMemberListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupMemberListReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupMemberListReq) ProtoMessage() {} - -func (x *GetGroupMemberListReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[20] - 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 GetGroupMemberListReq.ProtoReflect.Descriptor instead. +func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } +func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{20} + return fileDescriptor_group_3c77315b028a1402, []int{20} +} +func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) +} +func (m *GetGroupMemberListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMemberListReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupMemberListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMemberListReq.Merge(dst, src) +} +func (m *GetGroupMemberListReq) XXX_Size() int { + return xxx_messageInfo_GetGroupMemberListReq.Size(m) +} +func (m *GetGroupMemberListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMemberListReq.DiscardUnknown(m) } -func (x *GetGroupMemberListReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GetGroupMemberListReq proto.InternalMessageInfo + +func (m *GetGroupMemberListReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GetGroupMemberListReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *GetGroupMemberListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *GetGroupMemberListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupMemberListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GetGroupMemberListReq) GetFilter() int32 { - if x != nil { - return x.Filter +func (m *GetGroupMemberListReq) GetFilter() int32 { + if m != nil { + return m.Filter } return 0 } -func (x *GetGroupMemberListReq) GetNextSeq() int32 { - if x != nil { - return x.NextSeq +func (m *GetGroupMemberListReq) GetNextSeq() int32 { + if m != nil { + return m.NextSeq } return 0 } type GetGroupMemberListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` - NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq,proto3" json:"nextSeq,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq" json:"nextSeq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupMemberListResp) Reset() { - *x = GetGroupMemberListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupMemberListResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupMemberListResp) ProtoMessage() {} - -func (x *GetGroupMemberListResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[21] - 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 GetGroupMemberListResp.ProtoReflect.Descriptor instead. +func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} } +func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{21} + return fileDescriptor_group_3c77315b028a1402, []int{21} +} +func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) +} +func (m *GetGroupMemberListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMemberListResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupMemberListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMemberListResp.Merge(dst, src) +} +func (m *GetGroupMemberListResp) XXX_Size() int { + return xxx_messageInfo_GetGroupMemberListResp.Size(m) +} +func (m *GetGroupMemberListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMemberListResp.DiscardUnknown(m) } -func (x *GetGroupMemberListResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_GetGroupMemberListResp proto.InternalMessageInfo + +func (m *GetGroupMemberListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GetGroupMemberListResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GetGroupMemberListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *GetGroupMemberListResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { - if x != nil { - return x.MemberList +func (m *GetGroupMemberListResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { + if m != nil { + return m.MemberList } return nil } -func (x *GetGroupMemberListResp) GetNextSeq() int32 { - if x != nil { - return x.NextSeq +func (m *GetGroupMemberListResp) GetNextSeq() int32 { + if m != nil { + return m.NextSeq } return 0 } type GetGroupMembersInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - MemberList []string `protobuf:"bytes,2,rep,name=memberList,proto3" json:"memberList,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupMembersInfoReq) Reset() { - *x = GetGroupMembersInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupMembersInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupMembersInfoReq) ProtoMessage() {} - -func (x *GetGroupMembersInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[22] - 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 GetGroupMembersInfoReq.ProtoReflect.Descriptor instead. +func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} } +func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{22} + return fileDescriptor_group_3c77315b028a1402, []int{22} +} +func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) +} +func (m *GetGroupMembersInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMembersInfoReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupMembersInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMembersInfoReq.Merge(dst, src) +} +func (m *GetGroupMembersInfoReq) XXX_Size() int { + return xxx_messageInfo_GetGroupMembersInfoReq.Size(m) +} +func (m *GetGroupMembersInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMembersInfoReq.DiscardUnknown(m) } -func (x *GetGroupMembersInfoReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GetGroupMembersInfoReq proto.InternalMessageInfo + +func (m *GetGroupMembersInfoReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GetGroupMembersInfoReq) GetMemberList() []string { - if x != nil { - return x.MemberList +func (m *GetGroupMembersInfoReq) GetMemberList() []string { + if m != nil { + return m.MemberList } return nil } -func (x *GetGroupMembersInfoReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *GetGroupMembersInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *GetGroupMembersInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupMembersInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupMembersInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupMembersInfoResp) Reset() { - *x = GetGroupMembersInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupMembersInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupMembersInfoResp) ProtoMessage() {} - -func (x *GetGroupMembersInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[23] - 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 GetGroupMembersInfoResp.ProtoReflect.Descriptor instead. +func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp{} } +func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{23} + return fileDescriptor_group_3c77315b028a1402, []int{23} +} +func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) +} +func (m *GetGroupMembersInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMembersInfoResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupMembersInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMembersInfoResp.Merge(dst, src) +} +func (m *GetGroupMembersInfoResp) XXX_Size() int { + return xxx_messageInfo_GetGroupMembersInfoResp.Size(m) +} +func (m *GetGroupMembersInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMembersInfoResp.DiscardUnknown(m) } -func (x *GetGroupMembersInfoResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_GetGroupMembersInfoResp proto.InternalMessageInfo + +func (m *GetGroupMembersInfoResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GetGroupMembersInfoResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GetGroupMembersInfoResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *GetGroupMembersInfoResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { - if x != nil { - return x.MemberList +func (m *GetGroupMembersInfoResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { + if m != nil { + return m.MemberList } return nil } type KickGroupMemberReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - KickedUserIDList []string `protobuf:"bytes,2,rep,name=KickedUserIDList,proto3" json:"KickedUserIDList,omitempty"` - Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,6,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manger or group manager + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + KickedUserIDList []string `protobuf:"bytes,2,rep,name=KickedUserIDList" json:"KickedUserIDList,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=Reason" json:"Reason,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *KickGroupMemberReq) Reset() { - *x = KickGroupMemberReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *KickGroupMemberReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*KickGroupMemberReq) ProtoMessage() {} - -func (x *KickGroupMemberReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[24] - 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 KickGroupMemberReq.ProtoReflect.Descriptor instead. +func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } +func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } +func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{24} + return fileDescriptor_group_3c77315b028a1402, []int{24} +} +func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) +} +func (m *KickGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KickGroupMemberReq.Marshal(b, m, deterministic) +} +func (dst *KickGroupMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_KickGroupMemberReq.Merge(dst, src) +} +func (m *KickGroupMemberReq) XXX_Size() int { + return xxx_messageInfo_KickGroupMemberReq.Size(m) +} +func (m *KickGroupMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_KickGroupMemberReq.DiscardUnknown(m) } -func (x *KickGroupMemberReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_KickGroupMemberReq proto.InternalMessageInfo + +func (m *KickGroupMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *KickGroupMemberReq) GetKickedUserIDList() []string { - if x != nil { - return x.KickedUserIDList +func (m *KickGroupMemberReq) GetKickedUserIDList() []string { + if m != nil { + return m.KickedUserIDList } return nil } -func (x *KickGroupMemberReq) GetReason() string { - if x != nil { - return x.Reason +func (m *KickGroupMemberReq) GetReason() string { + if m != nil { + return m.Reason } return "" } -func (x *KickGroupMemberReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *KickGroupMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *KickGroupMemberReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *KickGroupMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } type Id2Result struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` //0 ok; -1 error + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=Result" json:"Result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *Id2Result) Reset() { - *x = Id2Result{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Id2Result) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Id2Result) ProtoMessage() {} - -func (x *Id2Result) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[25] - 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 Id2Result.ProtoReflect.Descriptor instead. +func (m *Id2Result) Reset() { *m = Id2Result{} } +func (m *Id2Result) String() string { return proto.CompactTextString(m) } +func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{25} + return fileDescriptor_group_3c77315b028a1402, []int{25} +} +func (m *Id2Result) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Id2Result.Unmarshal(m, b) +} +func (m *Id2Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Id2Result.Marshal(b, m, deterministic) +} +func (dst *Id2Result) XXX_Merge(src proto.Message) { + xxx_messageInfo_Id2Result.Merge(dst, src) +} +func (m *Id2Result) XXX_Size() int { + return xxx_messageInfo_Id2Result.Size(m) +} +func (m *Id2Result) XXX_DiscardUnknown() { + xxx_messageInfo_Id2Result.DiscardUnknown(m) } -func (x *Id2Result) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_Id2Result proto.InternalMessageInfo + +func (m *Id2Result) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *Id2Result) GetResult() int32 { - if x != nil { - return x.Result +func (m *Id2Result) GetResult() int32 { + if m != nil { + return m.Result } return 0 } type KickGroupMemberResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList,proto3" json:"Id2ResultList,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList" json:"Id2ResultList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *KickGroupMemberResp) Reset() { - *x = KickGroupMemberResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *KickGroupMemberResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*KickGroupMemberResp) ProtoMessage() {} - -func (x *KickGroupMemberResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[26] - 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 KickGroupMemberResp.ProtoReflect.Descriptor instead. +func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } +func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } +func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{26} + return fileDescriptor_group_3c77315b028a1402, []int{26} +} +func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) +} +func (m *KickGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KickGroupMemberResp.Marshal(b, m, deterministic) +} +func (dst *KickGroupMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_KickGroupMemberResp.Merge(dst, src) +} +func (m *KickGroupMemberResp) XXX_Size() int { + return xxx_messageInfo_KickGroupMemberResp.Size(m) +} +func (m *KickGroupMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_KickGroupMemberResp.DiscardUnknown(m) } -func (x *KickGroupMemberResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_KickGroupMemberResp proto.InternalMessageInfo + +func (m *KickGroupMemberResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *KickGroupMemberResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *KickGroupMemberResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *KickGroupMemberResp) GetId2ResultList() []*Id2Result { - if x != nil { - return x.Id2ResultList +func (m *KickGroupMemberResp) GetId2ResultList() []*Id2Result { + if m != nil { + return m.Id2ResultList } return nil } type GetJoinedGroupListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or FromUserID + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetJoinedGroupListReq) Reset() { - *x = GetJoinedGroupListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetJoinedGroupListReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetJoinedGroupListReq) ProtoMessage() {} - -func (x *GetJoinedGroupListReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[27] - 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 GetJoinedGroupListReq.ProtoReflect.Descriptor instead. +func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } +func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } +func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{27} + return fileDescriptor_group_3c77315b028a1402, []int{27} +} +func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) +} +func (m *GetJoinedGroupListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetJoinedGroupListReq.Marshal(b, m, deterministic) +} +func (dst *GetJoinedGroupListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetJoinedGroupListReq.Merge(dst, src) +} +func (m *GetJoinedGroupListReq) XXX_Size() int { + return xxx_messageInfo_GetJoinedGroupListReq.Size(m) +} +func (m *GetJoinedGroupListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetJoinedGroupListReq.DiscardUnknown(m) } -func (x *GetJoinedGroupListReq) GetFromUserID() string { - if x != nil { - return x.FromUserID +var xxx_messageInfo_GetJoinedGroupListReq proto.InternalMessageInfo + +func (m *GetJoinedGroupListReq) GetFromUserID() string { + if m != nil { + return m.FromUserID } return "" } -func (x *GetJoinedGroupListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetJoinedGroupListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GetJoinedGroupListReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *GetJoinedGroupListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } type GetJoinedGroupListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - GroupList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupList,proto3" json:"GroupList,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + GroupList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetJoinedGroupListResp) Reset() { - *x = GetJoinedGroupListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetJoinedGroupListResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetJoinedGroupListResp) ProtoMessage() {} - -func (x *GetJoinedGroupListResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[28] - 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 GetJoinedGroupListResp.ProtoReflect.Descriptor instead. +func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} } +func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } +func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{28} + return fileDescriptor_group_3c77315b028a1402, []int{28} +} +func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) +} +func (m *GetJoinedGroupListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetJoinedGroupListResp.Marshal(b, m, deterministic) +} +func (dst *GetJoinedGroupListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetJoinedGroupListResp.Merge(dst, src) +} +func (m *GetJoinedGroupListResp) XXX_Size() int { + return xxx_messageInfo_GetJoinedGroupListResp.Size(m) +} +func (m *GetJoinedGroupListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetJoinedGroupListResp.DiscardUnknown(m) } -func (x *GetJoinedGroupListResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_GetJoinedGroupListResp proto.InternalMessageInfo + +func (m *GetJoinedGroupListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GetJoinedGroupListResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GetJoinedGroupListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *GetJoinedGroupListResp) GetGroupList() []*sdk_ws.GroupInfo { - if x != nil { - return x.GroupList +func (m *GetJoinedGroupListResp) GetGroupList() []*sdk_ws.GroupInfo { + if m != nil { + return m.GroupList } return nil } type InviteUserToGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - Reason string `protobuf:"bytes,4,opt,name=Reason,proto3" json:"Reason,omitempty"` - InvitedUserIDList []string `protobuf:"bytes,5,rep,name=InvitedUserIDList,proto3" json:"InvitedUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,6,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //group member or app manager + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=Reason" json:"Reason,omitempty"` + InvitedUserIDList []string `protobuf:"bytes,5,rep,name=InvitedUserIDList" json:"InvitedUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *InviteUserToGroupReq) Reset() { - *x = InviteUserToGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *InviteUserToGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InviteUserToGroupReq) ProtoMessage() {} - -func (x *InviteUserToGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[29] - 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 InviteUserToGroupReq.ProtoReflect.Descriptor instead. +func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } +func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } +func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{29} + return fileDescriptor_group_3c77315b028a1402, []int{29} +} +func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) +} +func (m *InviteUserToGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InviteUserToGroupReq.Marshal(b, m, deterministic) +} +func (dst *InviteUserToGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_InviteUserToGroupReq.Merge(dst, src) +} +func (m *InviteUserToGroupReq) XXX_Size() int { + return xxx_messageInfo_InviteUserToGroupReq.Size(m) +} +func (m *InviteUserToGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_InviteUserToGroupReq.DiscardUnknown(m) } -func (x *InviteUserToGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +var xxx_messageInfo_InviteUserToGroupReq proto.InternalMessageInfo + +func (m *InviteUserToGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *InviteUserToGroupReq) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *InviteUserToGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *InviteUserToGroupReq) GetReason() string { - if x != nil { - return x.Reason +func (m *InviteUserToGroupReq) GetReason() string { + if m != nil { + return m.Reason } return "" } -func (x *InviteUserToGroupReq) GetInvitedUserIDList() []string { - if x != nil { - return x.InvitedUserIDList +func (m *InviteUserToGroupReq) GetInvitedUserIDList() []string { + if m != nil { + return m.InvitedUserIDList } return nil } -func (x *InviteUserToGroupReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *InviteUserToGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } type InviteUserToGroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList,proto3" json:"Id2ResultList,omitempty"` // 0 ok, -1 error + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList" json:"Id2ResultList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *InviteUserToGroupResp) Reset() { - *x = InviteUserToGroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *InviteUserToGroupResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InviteUserToGroupResp) ProtoMessage() {} - -func (x *InviteUserToGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[30] - 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 InviteUserToGroupResp.ProtoReflect.Descriptor instead. +func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } +func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } +func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{30} + return fileDescriptor_group_3c77315b028a1402, []int{30} +} +func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) +} +func (m *InviteUserToGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InviteUserToGroupResp.Marshal(b, m, deterministic) +} +func (dst *InviteUserToGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_InviteUserToGroupResp.Merge(dst, src) +} +func (m *InviteUserToGroupResp) XXX_Size() int { + return xxx_messageInfo_InviteUserToGroupResp.Size(m) +} +func (m *InviteUserToGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_InviteUserToGroupResp.DiscardUnknown(m) } -func (x *InviteUserToGroupResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_InviteUserToGroupResp proto.InternalMessageInfo + +func (m *InviteUserToGroupResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *InviteUserToGroupResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *InviteUserToGroupResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *InviteUserToGroupResp) GetId2ResultList() []*Id2Result { - if x != nil { - return x.Id2ResultList +func (m *InviteUserToGroupResp) GetId2ResultList() []*Id2Result { + if m != nil { + return m.Id2ResultList } return nil } type GetGroupAllMemberReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupAllMemberReq) Reset() { - *x = GetGroupAllMemberReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupAllMemberReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupAllMemberReq) ProtoMessage() {} - -func (x *GetGroupAllMemberReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[31] - 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 GetGroupAllMemberReq.ProtoReflect.Descriptor instead. +func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } +func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{31} + return fileDescriptor_group_3c77315b028a1402, []int{31} +} +func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) +} +func (m *GetGroupAllMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupAllMemberReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupAllMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupAllMemberReq.Merge(dst, src) +} +func (m *GetGroupAllMemberReq) XXX_Size() int { + return xxx_messageInfo_GetGroupAllMemberReq.Size(m) +} +func (m *GetGroupAllMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupAllMemberReq.DiscardUnknown(m) } -func (x *GetGroupAllMemberReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GetGroupAllMemberReq proto.InternalMessageInfo + +func (m *GetGroupAllMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GetGroupAllMemberReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *GetGroupAllMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *GetGroupAllMemberReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupAllMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupAllMemberResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupAllMemberResp) Reset() { - *x = GetGroupAllMemberResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupAllMemberResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupAllMemberResp) ProtoMessage() {} - -func (x *GetGroupAllMemberResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[32] - 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 GetGroupAllMemberResp.ProtoReflect.Descriptor instead. +func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } +func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{32} + return fileDescriptor_group_3c77315b028a1402, []int{32} +} +func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) +} +func (m *GetGroupAllMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupAllMemberResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupAllMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupAllMemberResp.Merge(dst, src) +} +func (m *GetGroupAllMemberResp) XXX_Size() int { + return xxx_messageInfo_GetGroupAllMemberResp.Size(m) +} +func (m *GetGroupAllMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupAllMemberResp.DiscardUnknown(m) } -func (x *GetGroupAllMemberResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_GetGroupAllMemberResp proto.InternalMessageInfo + +func (m *GetGroupAllMemberResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GetGroupAllMemberResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GetGroupAllMemberResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *GetGroupAllMemberResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { - if x != nil { - return x.MemberList +func (m *GetGroupAllMemberResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { + if m != nil { + return m.MemberList } return nil } type CMSGroup struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` - GroupMasterName string `protobuf:"bytes,2,opt,name=GroupMasterName,proto3" json:"GroupMasterName,omitempty"` - GroupMasterId string `protobuf:"bytes,3,opt,name=GroupMasterId,proto3" json:"GroupMasterId,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo" json:"GroupInfo,omitempty"` + GroupMasterName string `protobuf:"bytes,2,opt,name=GroupMasterName" json:"GroupMasterName,omitempty"` + GroupMasterId string `protobuf:"bytes,3,opt,name=GroupMasterId" json:"GroupMasterId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *CMSGroup) Reset() { - *x = CMSGroup{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CMSGroup) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CMSGroup) ProtoMessage() {} - -func (x *CMSGroup) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[33] - 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 CMSGroup.ProtoReflect.Descriptor instead. +func (m *CMSGroup) Reset() { *m = CMSGroup{} } +func (m *CMSGroup) String() string { return proto.CompactTextString(m) } +func (*CMSGroup) ProtoMessage() {} func (*CMSGroup) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{33} + return fileDescriptor_group_3c77315b028a1402, []int{33} +} +func (m *CMSGroup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CMSGroup.Unmarshal(m, b) +} +func (m *CMSGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CMSGroup.Marshal(b, m, deterministic) +} +func (dst *CMSGroup) XXX_Merge(src proto.Message) { + xxx_messageInfo_CMSGroup.Merge(dst, src) +} +func (m *CMSGroup) XXX_Size() int { + return xxx_messageInfo_CMSGroup.Size(m) +} +func (m *CMSGroup) XXX_DiscardUnknown() { + xxx_messageInfo_CMSGroup.DiscardUnknown(m) } -func (x *CMSGroup) GetGroupInfo() *sdk_ws.GroupInfo { - if x != nil { - return x.GroupInfo +var xxx_messageInfo_CMSGroup proto.InternalMessageInfo + +func (m *CMSGroup) GetGroupInfo() *sdk_ws.GroupInfo { + if m != nil { + return m.GroupInfo } return nil } -func (x *CMSGroup) GetGroupMasterName() string { - if x != nil { - return x.GroupMasterName +func (m *CMSGroup) GetGroupMasterName() string { + if m != nil { + return m.GroupMasterName } return "" } -func (x *CMSGroup) GetGroupMasterId() string { - if x != nil { - return x.GroupMasterId +func (m *CMSGroup) GetGroupMasterId() string { + if m != nil { + return m.GroupMasterId } return "" } type GetGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - 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"` + GroupName string `protobuf:"bytes,1,opt,name=GroupName" json:"GroupName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupReq) Reset() { - *x = GetGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupReq) ProtoMessage() {} - -func (x *GetGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_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 GetGroupReq.ProtoReflect.Descriptor instead. +func (m *GetGroupReq) Reset() { *m = GetGroupReq{} } +func (m *GetGroupReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupReq) ProtoMessage() {} func (*GetGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{34} + return fileDescriptor_group_3c77315b028a1402, []int{34} +} +func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) +} +func (m *GetGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupReq.Merge(dst, src) +} +func (m *GetGroupReq) XXX_Size() int { + return xxx_messageInfo_GetGroupReq.Size(m) +} +func (m *GetGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupReq.DiscardUnknown(m) } -func (x *GetGroupReq) GetGroupName() string { - if x != nil { - return x.GroupName +var xxx_messageInfo_GetGroupReq proto.InternalMessageInfo + +func (m *GetGroupReq) GetGroupName() string { + if m != nil { + return m.GroupName } return "" } -func (x *GetGroupReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination +func (m *GetGroupReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination } return nil } -func (x *GetGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups,proto3" json:"CMSGroups,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - GroupNums int32 `protobuf:"varint,3,opt,name=GroupNums,proto3" json:"GroupNums,omitempty"` + CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups" json:"CMSGroups,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + GroupNums int32 `protobuf:"varint,3,opt,name=GroupNums" json:"GroupNums,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupResp) Reset() { - *x = GetGroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupResp) ProtoMessage() {} - -func (x *GetGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[35] - 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 GetGroupResp.ProtoReflect.Descriptor instead. +func (m *GetGroupResp) Reset() { *m = GetGroupResp{} } +func (m *GetGroupResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupResp) ProtoMessage() {} func (*GetGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{35} + return fileDescriptor_group_3c77315b028a1402, []int{35} +} +func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) +} +func (m *GetGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupResp.Merge(dst, src) +} +func (m *GetGroupResp) XXX_Size() int { + return xxx_messageInfo_GetGroupResp.Size(m) +} +func (m *GetGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupResp.DiscardUnknown(m) } -func (x *GetGroupResp) GetCMSGroups() []*CMSGroup { - if x != nil { - return x.CMSGroups +var xxx_messageInfo_GetGroupResp proto.InternalMessageInfo + +func (m *GetGroupResp) GetCMSGroups() []*CMSGroup { + if m != nil { + return m.CMSGroups } return nil } -func (x *GetGroupResp) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination +func (m *GetGroupResp) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination } return nil } -func (x *GetGroupResp) GetGroupNums() int32 { - if x != nil { - return x.GroupNums +func (m *GetGroupResp) GetGroupNums() int32 { + if m != nil { + return m.GroupNums } return 0 } type GetGroupsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupsReq) Reset() { - *x = GetGroupsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupsReq) ProtoMessage() {} - -func (x *GetGroupsReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_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 GetGroupsReq.ProtoReflect.Descriptor instead. +func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} } +func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupsReq) ProtoMessage() {} func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{36} + return fileDescriptor_group_3c77315b028a1402, []int{36} +} +func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) +} +func (m *GetGroupsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupsReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupsReq.Merge(dst, src) +} +func (m *GetGroupsReq) XXX_Size() int { + return xxx_messageInfo_GetGroupsReq.Size(m) +} +func (m *GetGroupsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupsReq.DiscardUnknown(m) } -func (x *GetGroupsReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination +var xxx_messageInfo_GetGroupsReq proto.InternalMessageInfo + +func (m *GetGroupsReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination } return nil } -func (x *GetGroupsReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupsReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups,proto3" json:"CMSGroups,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - GroupNum int32 `protobuf:"varint,3,opt,name=GroupNum,proto3" json:"GroupNum,omitempty"` + CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups" json:"CMSGroups,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + GroupNum int32 `protobuf:"varint,3,opt,name=GroupNum" json:"GroupNum,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupsResp) Reset() { - *x = GetGroupsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupsResp) ProtoMessage() {} - -func (x *GetGroupsResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_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 GetGroupsResp.ProtoReflect.Descriptor instead. +func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} } +func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupsResp) ProtoMessage() {} func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{37} + return fileDescriptor_group_3c77315b028a1402, []int{37} +} +func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) +} +func (m *GetGroupsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupsResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupsResp.Merge(dst, src) +} +func (m *GetGroupsResp) XXX_Size() int { + return xxx_messageInfo_GetGroupsResp.Size(m) +} +func (m *GetGroupsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupsResp.DiscardUnknown(m) } -func (x *GetGroupsResp) GetCMSGroups() []*CMSGroup { - if x != nil { - return x.CMSGroups +var xxx_messageInfo_GetGroupsResp proto.InternalMessageInfo + +func (m *GetGroupsResp) GetCMSGroups() []*CMSGroup { + if m != nil { + return m.CMSGroups } return nil } -func (x *GetGroupsResp) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination +func (m *GetGroupsResp) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination } return nil } -func (x *GetGroupsResp) GetGroupNum() int32 { - if x != nil { - return x.GroupNum +func (m *GetGroupsResp) GetGroupNum() int32 { + if m != nil { + return m.GroupNum } return 0 } type GetGroupMemberReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupMemberReq) Reset() { - *x = GetGroupMemberReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupMemberReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupMemberReq) ProtoMessage() {} - -func (x *GetGroupMemberReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[38] - 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 GetGroupMemberReq.ProtoReflect.Descriptor instead. +func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} } +func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupMemberReq) ProtoMessage() {} func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{38} + return fileDescriptor_group_3c77315b028a1402, []int{38} +} +func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) +} +func (m *GetGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMemberReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMemberReq.Merge(dst, src) +} +func (m *GetGroupMemberReq) XXX_Size() int { + return xxx_messageInfo_GetGroupMemberReq.Size(m) +} +func (m *GetGroupMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMemberReq.DiscardUnknown(m) } -func (x *GetGroupMemberReq) GetGroupId() string { - if x != nil { - return x.GroupId +var xxx_messageInfo_GetGroupMemberReq proto.InternalMessageInfo + +func (m *GetGroupMemberReq) GetGroupId() string { + if m != nil { + return m.GroupId } return "" } -func (x *GetGroupMemberReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type OperateGroupStatusReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=Status" json:"Status,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OperateGroupStatusReq) Reset() { - *x = OperateGroupStatusReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OperateGroupStatusReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OperateGroupStatusReq) ProtoMessage() {} - -func (x *OperateGroupStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[39] - 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 OperateGroupStatusReq.ProtoReflect.Descriptor instead. +func (m *OperateGroupStatusReq) Reset() { *m = OperateGroupStatusReq{} } +func (m *OperateGroupStatusReq) String() string { return proto.CompactTextString(m) } +func (*OperateGroupStatusReq) ProtoMessage() {} func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{39} + return fileDescriptor_group_3c77315b028a1402, []int{39} +} +func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b) +} +func (m *OperateGroupStatusReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OperateGroupStatusReq.Marshal(b, m, deterministic) +} +func (dst *OperateGroupStatusReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_OperateGroupStatusReq.Merge(dst, src) +} +func (m *OperateGroupStatusReq) XXX_Size() int { + return xxx_messageInfo_OperateGroupStatusReq.Size(m) +} +func (m *OperateGroupStatusReq) XXX_DiscardUnknown() { + xxx_messageInfo_OperateGroupStatusReq.DiscardUnknown(m) } -func (x *OperateGroupStatusReq) GetGroupId() string { - if x != nil { - return x.GroupId +var xxx_messageInfo_OperateGroupStatusReq proto.InternalMessageInfo + +func (m *OperateGroupStatusReq) GetGroupId() string { + if m != nil { + return m.GroupId } return "" } -func (x *OperateGroupStatusReq) GetStatus() int32 { - if x != nil { - return x.Status +func (m *OperateGroupStatusReq) GetStatus() int32 { + if m != nil { + return m.Status } return 0 } -func (x *OperateGroupStatusReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *OperateGroupStatusReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type OperateGroupStatusResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OperateGroupStatusResp) Reset() { - *x = OperateGroupStatusResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OperateGroupStatusResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OperateGroupStatusResp) ProtoMessage() {} - -func (x *OperateGroupStatusResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[40] - 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 OperateGroupStatusResp.ProtoReflect.Descriptor instead. +func (m *OperateGroupStatusResp) Reset() { *m = OperateGroupStatusResp{} } +func (m *OperateGroupStatusResp) String() string { return proto.CompactTextString(m) } +func (*OperateGroupStatusResp) ProtoMessage() {} func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{40} + return fileDescriptor_group_3c77315b028a1402, []int{40} } +func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b) +} +func (m *OperateGroupStatusResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OperateGroupStatusResp.Marshal(b, m, deterministic) +} +func (dst *OperateGroupStatusResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_OperateGroupStatusResp.Merge(dst, src) +} +func (m *OperateGroupStatusResp) XXX_Size() int { + return xxx_messageInfo_OperateGroupStatusResp.Size(m) +} +func (m *OperateGroupStatusResp) XXX_DiscardUnknown() { + xxx_messageInfo_OperateGroupStatusResp.DiscardUnknown(m) +} + +var xxx_messageInfo_OperateGroupStatusResp proto.InternalMessageInfo type OperateUserRoleReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` - RoleLevel int32 `protobuf:"varint,3,opt,name=RoleLevel,proto3" json:"RoleLevel,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=UserId" json:"UserId,omitempty"` + RoleLevel int32 `protobuf:"varint,3,opt,name=RoleLevel" json:"RoleLevel,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OperateUserRoleReq) Reset() { - *x = OperateUserRoleReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OperateUserRoleReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OperateUserRoleReq) ProtoMessage() {} - -func (x *OperateUserRoleReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[41] - 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 OperateUserRoleReq.ProtoReflect.Descriptor instead. +func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} } +func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) } +func (*OperateUserRoleReq) ProtoMessage() {} func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{41} + return fileDescriptor_group_3c77315b028a1402, []int{41} +} +func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) +} +func (m *OperateUserRoleReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OperateUserRoleReq.Marshal(b, m, deterministic) +} +func (dst *OperateUserRoleReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_OperateUserRoleReq.Merge(dst, src) +} +func (m *OperateUserRoleReq) XXX_Size() int { + return xxx_messageInfo_OperateUserRoleReq.Size(m) +} +func (m *OperateUserRoleReq) XXX_DiscardUnknown() { + xxx_messageInfo_OperateUserRoleReq.DiscardUnknown(m) } -func (x *OperateUserRoleReq) GetGroupId() string { - if x != nil { - return x.GroupId +var xxx_messageInfo_OperateUserRoleReq proto.InternalMessageInfo + +func (m *OperateUserRoleReq) GetGroupId() string { + if m != nil { + return m.GroupId } return "" } -func (x *OperateUserRoleReq) GetUserId() string { - if x != nil { - return x.UserId +func (m *OperateUserRoleReq) GetUserId() string { + if m != nil { + return m.UserId } return "" } -func (x *OperateUserRoleReq) GetRoleLevel() int32 { - if x != nil { - return x.RoleLevel +func (m *OperateUserRoleReq) GetRoleLevel() int32 { + if m != nil { + return m.RoleLevel } return 0 } -func (x *OperateUserRoleReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *OperateUserRoleReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type OperateUserRoleResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *OperateUserRoleResp) Reset() { - *x = OperateUserRoleResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *OperateUserRoleResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OperateUserRoleResp) ProtoMessage() {} - -func (x *OperateUserRoleResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[42] - 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 OperateUserRoleResp.ProtoReflect.Descriptor instead. +func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} } +func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) } +func (*OperateUserRoleResp) ProtoMessage() {} func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{42} + return fileDescriptor_group_3c77315b028a1402, []int{42} } +func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) +} +func (m *OperateUserRoleResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OperateUserRoleResp.Marshal(b, m, deterministic) +} +func (dst *OperateUserRoleResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_OperateUserRoleResp.Merge(dst, src) +} +func (m *OperateUserRoleResp) XXX_Size() int { + return xxx_messageInfo_OperateUserRoleResp.Size(m) +} +func (m *OperateUserRoleResp) XXX_DiscardUnknown() { + xxx_messageInfo_OperateUserRoleResp.DiscardUnknown(m) +} + +var xxx_messageInfo_OperateUserRoleResp proto.InternalMessageInfo type DeleteGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DeleteGroupReq) Reset() { - *x = DeleteGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteGroupReq) ProtoMessage() {} - -func (x *DeleteGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[43] - 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 DeleteGroupReq.ProtoReflect.Descriptor instead. +func (m *DeleteGroupReq) Reset() { *m = DeleteGroupReq{} } +func (m *DeleteGroupReq) String() string { return proto.CompactTextString(m) } +func (*DeleteGroupReq) ProtoMessage() {} func (*DeleteGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{43} + return fileDescriptor_group_3c77315b028a1402, []int{43} +} +func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b) +} +func (m *DeleteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteGroupReq.Marshal(b, m, deterministic) +} +func (dst *DeleteGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteGroupReq.Merge(dst, src) +} +func (m *DeleteGroupReq) XXX_Size() int { + return xxx_messageInfo_DeleteGroupReq.Size(m) +} +func (m *DeleteGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteGroupReq.DiscardUnknown(m) } -func (x *DeleteGroupReq) GetGroupId() string { - if x != nil { - return x.GroupId +var xxx_messageInfo_DeleteGroupReq proto.InternalMessageInfo + +func (m *DeleteGroupReq) GetGroupId() string { + if m != nil { + return m.GroupId } return "" } -func (x *DeleteGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *DeleteGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type DeleteGroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DeleteGroupResp) Reset() { - *x = DeleteGroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteGroupResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteGroupResp) ProtoMessage() {} - -func (x *DeleteGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[44] - 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 DeleteGroupResp.ProtoReflect.Descriptor instead. +func (m *DeleteGroupResp) Reset() { *m = DeleteGroupResp{} } +func (m *DeleteGroupResp) String() string { return proto.CompactTextString(m) } +func (*DeleteGroupResp) ProtoMessage() {} func (*DeleteGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{44} + return fileDescriptor_group_3c77315b028a1402, []int{44} } +func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b) +} +func (m *DeleteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteGroupResp.Marshal(b, m, deterministic) +} +func (dst *DeleteGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteGroupResp.Merge(dst, src) +} +func (m *DeleteGroupResp) XXX_Size() int { + return xxx_messageInfo_DeleteGroupResp.Size(m) +} +func (m *DeleteGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteGroupResp proto.InternalMessageInfo type GetGroupByIdReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupByIdReq) Reset() { - *x = GetGroupByIdReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupByIdReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupByIdReq) ProtoMessage() {} - -func (x *GetGroupByIdReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[45] - 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 GetGroupByIdReq.ProtoReflect.Descriptor instead. +func (m *GetGroupByIdReq) Reset() { *m = GetGroupByIdReq{} } +func (m *GetGroupByIdReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupByIdReq) ProtoMessage() {} func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{45} + return fileDescriptor_group_3c77315b028a1402, []int{45} +} +func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b) +} +func (m *GetGroupByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupByIdReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupByIdReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupByIdReq.Merge(dst, src) +} +func (m *GetGroupByIdReq) XXX_Size() int { + return xxx_messageInfo_GetGroupByIdReq.Size(m) +} +func (m *GetGroupByIdReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupByIdReq.DiscardUnknown(m) } -func (x *GetGroupByIdReq) GetGroupId() string { - if x != nil { - return x.GroupId +var xxx_messageInfo_GetGroupByIdReq proto.InternalMessageInfo + +func (m *GetGroupByIdReq) GetGroupId() string { + if m != nil { + return m.GroupId } return "" } -func (x *GetGroupByIdReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupByIdReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupByIdResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CMSGroup *CMSGroup `protobuf:"bytes,1,opt,name=CMSGroup,proto3" json:"CMSGroup,omitempty"` + CMSGroup *CMSGroup `protobuf:"bytes,1,opt,name=CMSGroup" json:"CMSGroup,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupByIdResp) Reset() { - *x = GetGroupByIdResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupByIdResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupByIdResp) ProtoMessage() {} - -func (x *GetGroupByIdResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[46] - 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 GetGroupByIdResp.ProtoReflect.Descriptor instead. +func (m *GetGroupByIdResp) Reset() { *m = GetGroupByIdResp{} } +func (m *GetGroupByIdResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupByIdResp) ProtoMessage() {} func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{46} + return fileDescriptor_group_3c77315b028a1402, []int{46} +} +func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b) +} +func (m *GetGroupByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupByIdResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupByIdResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupByIdResp.Merge(dst, src) +} +func (m *GetGroupByIdResp) XXX_Size() int { + return xxx_messageInfo_GetGroupByIdResp.Size(m) +} +func (m *GetGroupByIdResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupByIdResp.DiscardUnknown(m) } -func (x *GetGroupByIdResp) GetCMSGroup() *CMSGroup { - if x != nil { - return x.CMSGroup +var xxx_messageInfo_GetGroupByIdResp proto.InternalMessageInfo + +func (m *GetGroupByIdResp) GetCMSGroup() *CMSGroup { + if m != nil { + return m.CMSGroup } return nil } type GetGroupMembersCMSReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=UserName,proto3" json:"UserName,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=UserName" json:"UserName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupMembersCMSReq) Reset() { - *x = GetGroupMembersCMSReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupMembersCMSReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupMembersCMSReq) ProtoMessage() {} - -func (x *GetGroupMembersCMSReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[47] - 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 GetGroupMembersCMSReq.ProtoReflect.Descriptor instead. +func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} } +func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupMembersCMSReq) ProtoMessage() {} func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{47} + return fileDescriptor_group_3c77315b028a1402, []int{47} +} +func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) +} +func (m *GetGroupMembersCMSReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMembersCMSReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupMembersCMSReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMembersCMSReq.Merge(dst, src) +} +func (m *GetGroupMembersCMSReq) XXX_Size() int { + return xxx_messageInfo_GetGroupMembersCMSReq.Size(m) +} +func (m *GetGroupMembersCMSReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMembersCMSReq.DiscardUnknown(m) } -func (x *GetGroupMembersCMSReq) GetGroupId() string { - if x != nil { - return x.GroupId +var xxx_messageInfo_GetGroupMembersCMSReq proto.InternalMessageInfo + +func (m *GetGroupMembersCMSReq) GetGroupId() string { + if m != nil { + return m.GroupId } return "" } -func (x *GetGroupMembersCMSReq) GetUserName() string { - if x != nil { - return x.UserName +func (m *GetGroupMembersCMSReq) GetUserName() string { + if m != nil { + return m.UserName } return "" } -func (x *GetGroupMembersCMSReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination +func (m *GetGroupMembersCMSReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination } return nil } -func (x *GetGroupMembersCMSReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupMembersCMSReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupMembersCMSResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Members []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - MemberNums int32 `protobuf:"varint,3,opt,name=MemberNums,proto3" json:"MemberNums,omitempty"` + Members []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,1,rep,name=members" json:"members,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + MemberNums int32 `protobuf:"varint,3,opt,name=MemberNums" json:"MemberNums,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupMembersCMSResp) Reset() { - *x = GetGroupMembersCMSResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupMembersCMSResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupMembersCMSResp) ProtoMessage() {} - -func (x *GetGroupMembersCMSResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[48] - 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 GetGroupMembersCMSResp.ProtoReflect.Descriptor instead. +func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{} } +func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupMembersCMSResp) ProtoMessage() {} func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{48} + return fileDescriptor_group_3c77315b028a1402, []int{48} +} +func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) +} +func (m *GetGroupMembersCMSResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMembersCMSResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupMembersCMSResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMembersCMSResp.Merge(dst, src) +} +func (m *GetGroupMembersCMSResp) XXX_Size() int { + return xxx_messageInfo_GetGroupMembersCMSResp.Size(m) +} +func (m *GetGroupMembersCMSResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMembersCMSResp.DiscardUnknown(m) } -func (x *GetGroupMembersCMSResp) GetMembers() []*sdk_ws.GroupMemberFullInfo { - if x != nil { - return x.Members +var xxx_messageInfo_GetGroupMembersCMSResp proto.InternalMessageInfo + +func (m *GetGroupMembersCMSResp) GetMembers() []*sdk_ws.GroupMemberFullInfo { + if m != nil { + return m.Members } return nil } -func (x *GetGroupMembersCMSResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination +func (m *GetGroupMembersCMSResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination } return nil } -func (x *GetGroupMembersCMSResp) GetMemberNums() int32 { - if x != nil { - return x.MemberNums +func (m *GetGroupMembersCMSResp) GetMemberNums() int32 { + if m != nil { + return m.MemberNums } return 0 } type RemoveGroupMembersCMSReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - UserIds []string `protobuf:"bytes,2,rep,name=UserIds,proto3" json:"UserIds,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,4,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + UserIds []string `protobuf:"bytes,2,rep,name=UserIds" json:"UserIds,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,4,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *RemoveGroupMembersCMSReq) Reset() { - *x = RemoveGroupMembersCMSReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveGroupMembersCMSReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveGroupMembersCMSReq) ProtoMessage() {} - -func (x *RemoveGroupMembersCMSReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[49] - 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 RemoveGroupMembersCMSReq.ProtoReflect.Descriptor instead. +func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSReq{} } +func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } +func (*RemoveGroupMembersCMSReq) ProtoMessage() {} func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{49} + return fileDescriptor_group_3c77315b028a1402, []int{49} +} +func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) +} +func (m *RemoveGroupMembersCMSReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoveGroupMembersCMSReq.Marshal(b, m, deterministic) +} +func (dst *RemoveGroupMembersCMSReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoveGroupMembersCMSReq.Merge(dst, src) +} +func (m *RemoveGroupMembersCMSReq) XXX_Size() int { + return xxx_messageInfo_RemoveGroupMembersCMSReq.Size(m) +} +func (m *RemoveGroupMembersCMSReq) XXX_DiscardUnknown() { + xxx_messageInfo_RemoveGroupMembersCMSReq.DiscardUnknown(m) } -func (x *RemoveGroupMembersCMSReq) GetGroupId() string { - if x != nil { - return x.GroupId +var xxx_messageInfo_RemoveGroupMembersCMSReq proto.InternalMessageInfo + +func (m *RemoveGroupMembersCMSReq) GetGroupId() string { + if m != nil { + return m.GroupId } return "" } -func (x *RemoveGroupMembersCMSReq) GetUserIds() []string { - if x != nil { - return x.UserIds +func (m *RemoveGroupMembersCMSReq) GetUserIds() []string { + if m != nil { + return m.UserIds } return nil } -func (x *RemoveGroupMembersCMSReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *RemoveGroupMembersCMSReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *RemoveGroupMembersCMSReq) GetOpUserId() string { - if x != nil { - return x.OpUserId +func (m *RemoveGroupMembersCMSReq) GetOpUserId() string { + if m != nil { + return m.OpUserId } return "" } type RemoveGroupMembersCMSResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success []string `protobuf:"bytes,1,rep,name=success,proto3" json:"success,omitempty"` - Failed []string `protobuf:"bytes,2,rep,name=failed,proto3" json:"failed,omitempty"` + Success []string `protobuf:"bytes,1,rep,name=success" json:"success,omitempty"` + Failed []string `protobuf:"bytes,2,rep,name=failed" json:"failed,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *RemoveGroupMembersCMSResp) Reset() { - *x = RemoveGroupMembersCMSResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RemoveGroupMembersCMSResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RemoveGroupMembersCMSResp) ProtoMessage() {} - -func (x *RemoveGroupMembersCMSResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[50] - 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 RemoveGroupMembersCMSResp.ProtoReflect.Descriptor instead. +func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMSResp{} } +func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } +func (*RemoveGroupMembersCMSResp) ProtoMessage() {} func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{50} + return fileDescriptor_group_3c77315b028a1402, []int{50} +} +func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) +} +func (m *RemoveGroupMembersCMSResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoveGroupMembersCMSResp.Marshal(b, m, deterministic) +} +func (dst *RemoveGroupMembersCMSResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoveGroupMembersCMSResp.Merge(dst, src) +} +func (m *RemoveGroupMembersCMSResp) XXX_Size() int { + return xxx_messageInfo_RemoveGroupMembersCMSResp.Size(m) +} +func (m *RemoveGroupMembersCMSResp) XXX_DiscardUnknown() { + xxx_messageInfo_RemoveGroupMembersCMSResp.DiscardUnknown(m) } -func (x *RemoveGroupMembersCMSResp) GetSuccess() []string { - if x != nil { - return x.Success +var xxx_messageInfo_RemoveGroupMembersCMSResp proto.InternalMessageInfo + +func (m *RemoveGroupMembersCMSResp) GetSuccess() []string { + if m != nil { + return m.Success } return nil } -func (x *RemoveGroupMembersCMSResp) GetFailed() []string { - if x != nil { - return x.Failed +func (m *RemoveGroupMembersCMSResp) GetFailed() []string { + if m != nil { + return m.Failed } return nil } type AddGroupMembersCMSReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - UserIds []string `protobuf:"bytes,2,rep,name=UserIds,proto3" json:"UserIds,omitempty"` - OperationId string `protobuf:"bytes,3,opt,name=OperationId,proto3" json:"OperationId,omitempty"` - OpUserId string `protobuf:"bytes,4,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + UserIds []string `protobuf:"bytes,2,rep,name=UserIds" json:"UserIds,omitempty"` + OperationId string `protobuf:"bytes,3,opt,name=OperationId" json:"OperationId,omitempty"` + OpUserId string `protobuf:"bytes,4,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AddGroupMembersCMSReq) Reset() { - *x = AddGroupMembersCMSReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddGroupMembersCMSReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddGroupMembersCMSReq) ProtoMessage() {} - -func (x *AddGroupMembersCMSReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[51] - 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 AddGroupMembersCMSReq.ProtoReflect.Descriptor instead. +func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} } +func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } +func (*AddGroupMembersCMSReq) ProtoMessage() {} func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{51} + return fileDescriptor_group_3c77315b028a1402, []int{51} +} +func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) +} +func (m *AddGroupMembersCMSReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddGroupMembersCMSReq.Marshal(b, m, deterministic) +} +func (dst *AddGroupMembersCMSReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddGroupMembersCMSReq.Merge(dst, src) +} +func (m *AddGroupMembersCMSReq) XXX_Size() int { + return xxx_messageInfo_AddGroupMembersCMSReq.Size(m) +} +func (m *AddGroupMembersCMSReq) XXX_DiscardUnknown() { + xxx_messageInfo_AddGroupMembersCMSReq.DiscardUnknown(m) } -func (x *AddGroupMembersCMSReq) GetGroupId() string { - if x != nil { - return x.GroupId +var xxx_messageInfo_AddGroupMembersCMSReq proto.InternalMessageInfo + +func (m *AddGroupMembersCMSReq) GetGroupId() string { + if m != nil { + return m.GroupId } return "" } -func (x *AddGroupMembersCMSReq) GetUserIds() []string { - if x != nil { - return x.UserIds +func (m *AddGroupMembersCMSReq) GetUserIds() []string { + if m != nil { + return m.UserIds } return nil } -func (x *AddGroupMembersCMSReq) GetOperationId() string { - if x != nil { - return x.OperationId +func (m *AddGroupMembersCMSReq) GetOperationId() string { + if m != nil { + return m.OperationId } return "" } -func (x *AddGroupMembersCMSReq) GetOpUserId() string { - if x != nil { - return x.OpUserId +func (m *AddGroupMembersCMSReq) GetOpUserId() string { + if m != nil { + return m.OpUserId } return "" } type AddGroupMembersCMSResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success []string `protobuf:"bytes,1,rep,name=success,proto3" json:"success,omitempty"` - Failed []string `protobuf:"bytes,2,rep,name=failed,proto3" json:"failed,omitempty"` + Success []string `protobuf:"bytes,1,rep,name=success" json:"success,omitempty"` + Failed []string `protobuf:"bytes,2,rep,name=failed" json:"failed,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AddGroupMembersCMSResp) Reset() { - *x = AddGroupMembersCMSResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddGroupMembersCMSResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddGroupMembersCMSResp) ProtoMessage() {} - -func (x *AddGroupMembersCMSResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[52] - 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 AddGroupMembersCMSResp.ProtoReflect.Descriptor instead. +func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{} } +func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } +func (*AddGroupMembersCMSResp) ProtoMessage() {} func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{52} + return fileDescriptor_group_3c77315b028a1402, []int{52} +} +func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) +} +func (m *AddGroupMembersCMSResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddGroupMembersCMSResp.Marshal(b, m, deterministic) +} +func (dst *AddGroupMembersCMSResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddGroupMembersCMSResp.Merge(dst, src) +} +func (m *AddGroupMembersCMSResp) XXX_Size() int { + return xxx_messageInfo_AddGroupMembersCMSResp.Size(m) +} +func (m *AddGroupMembersCMSResp) XXX_DiscardUnknown() { + xxx_messageInfo_AddGroupMembersCMSResp.DiscardUnknown(m) } -func (x *AddGroupMembersCMSResp) GetSuccess() []string { - if x != nil { - return x.Success +var xxx_messageInfo_AddGroupMembersCMSResp proto.InternalMessageInfo + +func (m *AddGroupMembersCMSResp) GetSuccess() []string { + if m != nil { + return m.Success } return nil } -func (x *AddGroupMembersCMSResp) GetFailed() []string { - if x != nil { - return x.Failed +func (m *AddGroupMembersCMSResp) GetFailed() []string { + if m != nil { + return m.Failed } return nil } -var File_group_group_proto protoreflect.FileDescriptor - -var file_group_group_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, - 0x5f, 0x49, 0x4d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, - 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, - 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x4a, 0x0a, - 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x52, - 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xef, 0x01, 0x0a, 0x0e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x0e, - 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 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, 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, 0x12, 0x1a, 0x0a, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x7f, 0x0a, 0x0f, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, - 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 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, 0x72, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, - 0x73, 0x74, 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, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x22, 0x89, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 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, 0x0d, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x8b, 0x01, 0x0a, - 0x0f, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 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, 0x12, 0x1a, 0x0a, 0x08, - 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 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, 0x45, 0x0a, 0x10, 0x53, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, - 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x7a, 0x0a, 0x1a, 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, 0x12, - 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 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, 0x12, 0x1e, 0x0a, - 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x9c, 0x01, - 0x0a, 0x1b, 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, 0x18, 0x0a, - 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, - 0x4b, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x10, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x1c, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 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, 0x9f, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, - 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x6c, 0x64, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x4f, 0x6c, 0x64, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4e, 0x65, 0x77, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0d, - 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xd9, 0x01, 0x0a, 0x1b, 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, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, - 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x51, 0x0a, 0x1c, - 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, 0x31, 0x0a, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x66, 0x0a, 0x0c, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, - 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 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, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0d, 0x51, 0x75, 0x69, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa1, 0x01, 0x0a, 0x15, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, - 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 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, 0x12, 0x16, 0x0a, - 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x22, - 0xac, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x0a, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x73, 0x65, 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, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x22, 0x90, - 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x22, 0x93, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, - 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, - 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 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, 0xb0, 0x01, 0x0a, 0x12, 0x4b, 0x69, 0x63, 0x6b, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, - 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x4b, 0x69, 0x63, 0x6b, - 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x10, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, - 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x3b, 0x0a, 0x09, 0x49, 0x64, - 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x7f, 0x0a, 0x13, 0x4b, 0x69, 0x63, 0x6b, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, - 0x12, 0x36, 0x0a, 0x0d, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x49, 0x64, 0x32, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x75, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4a, - 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, - 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x09, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 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, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 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, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, - 0x81, 0x01, 0x0a, 0x15, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0d, 0x49, - 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x64, 0x32, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x22, 0x6e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 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, 0x91, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, - 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, - 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 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, 0x96, 0x01, 0x0a, 0x08, 0x43, 0x4d, 0x53, 0x47, - 0x72, 0x6f, 0x75, 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, - 0x12, 0x28, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x22, 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, 0xa1, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x43, 0x4d, 0x53, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 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, 0x1c, 0x0a, 0x09, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x73, 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, 0xa0, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 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, 0x1a, 0x0a, 0x08, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4e, 0x75, 0x6d, 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, 0x6b, 0x0a, 0x15, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 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, 0x18, 0x0a, 0x16, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, - 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, - 0x65, 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, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 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, 0x22, 0x4d, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 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, 0x3f, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x2b, 0x0a, 0x08, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x08, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xb5, - 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x43, 0x4d, 0x53, 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, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, - 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 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, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xc1, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 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, 0x07, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 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, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x43, 0x4d, 0x53, 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, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 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, 0x12, 0x1a, 0x0a, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x19, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, - 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x89, 0x01, 0x0a, 0x15, 0x41, 0x64, 0x64, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 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, 0x18, 0x0a, 0x07, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x32, 0xad, 0x0e, 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, 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, - 0x66, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x24, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 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, 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, 0x3f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, - 0x49, 0x64, 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, 0x51, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 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, 0x12, 0x51, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 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, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x5a, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, - 0x12, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, - 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 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, +type DismissGroupReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -var ( - file_group_group_proto_rawDescOnce sync.Once - file_group_group_proto_rawDescData = file_group_group_proto_rawDesc -) - -func file_group_group_proto_rawDescGZIP() []byte { - file_group_group_proto_rawDescOnce.Do(func() { - file_group_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_group_group_proto_rawDescData) - }) - return file_group_group_proto_rawDescData +func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} } +func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) } +func (*DismissGroupReq) ProtoMessage() {} +func (*DismissGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{53} +} +func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) +} +func (m *DismissGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DismissGroupReq.Marshal(b, m, deterministic) +} +func (dst *DismissGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DismissGroupReq.Merge(dst, src) +} +func (m *DismissGroupReq) XXX_Size() int { + return xxx_messageInfo_DismissGroupReq.Size(m) +} +func (m *DismissGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_DismissGroupReq.DiscardUnknown(m) } -var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 53) -var file_group_group_proto_goTypes = []interface{}{ - (*CommonResp)(nil), // 0: group.CommonResp - (*GroupAddMemberInfo)(nil), // 1: group.GroupAddMemberInfo - (*CreateGroupReq)(nil), // 2: group.CreateGroupReq - (*CreateGroupResp)(nil), // 3: group.CreateGroupResp - (*GetGroupsInfoReq)(nil), // 4: group.GetGroupsInfoReq - (*GetGroupsInfoResp)(nil), // 5: group.GetGroupsInfoResp - (*SetGroupInfoReq)(nil), // 6: group.SetGroupInfoReq - (*SetGroupInfoResp)(nil), // 7: group.SetGroupInfoResp - (*GetGroupApplicationListReq)(nil), // 8: group.GetGroupApplicationListReq - (*GetGroupApplicationListResp)(nil), // 9: group.GetGroupApplicationListResp - (*GetUserReqApplicationListReq)(nil), // 10: group.GetUserReqApplicationListReq - (*GetUserReqApplicationListResp)(nil), // 11: group.GetUserReqApplicationListResp - (*TransferGroupOwnerReq)(nil), // 12: group.TransferGroupOwnerReq - (*TransferGroupOwnerResp)(nil), // 13: group.TransferGroupOwnerResp - (*JoinGroupReq)(nil), // 14: group.JoinGroupReq - (*JoinGroupResp)(nil), // 15: group.JoinGroupResp - (*GroupApplicationResponseReq)(nil), // 16: group.GroupApplicationResponseReq - (*GroupApplicationResponseResp)(nil), // 17: group.GroupApplicationResponseResp - (*QuitGroupReq)(nil), // 18: group.QuitGroupReq - (*QuitGroupResp)(nil), // 19: group.QuitGroupResp - (*GetGroupMemberListReq)(nil), // 20: group.GetGroupMemberListReq - (*GetGroupMemberListResp)(nil), // 21: group.GetGroupMemberListResp - (*GetGroupMembersInfoReq)(nil), // 22: group.GetGroupMembersInfoReq - (*GetGroupMembersInfoResp)(nil), // 23: group.GetGroupMembersInfoResp - (*KickGroupMemberReq)(nil), // 24: group.KickGroupMemberReq - (*Id2Result)(nil), // 25: group.Id2Result - (*KickGroupMemberResp)(nil), // 26: group.KickGroupMemberResp - (*GetJoinedGroupListReq)(nil), // 27: group.GetJoinedGroupListReq - (*GetJoinedGroupListResp)(nil), // 28: group.GetJoinedGroupListResp - (*InviteUserToGroupReq)(nil), // 29: group.InviteUserToGroupReq - (*InviteUserToGroupResp)(nil), // 30: group.InviteUserToGroupResp - (*GetGroupAllMemberReq)(nil), // 31: group.GetGroupAllMemberReq - (*GetGroupAllMemberResp)(nil), // 32: group.GetGroupAllMemberResp - (*CMSGroup)(nil), // 33: group.CMSGroup - (*GetGroupReq)(nil), // 34: group.GetGroupReq - (*GetGroupResp)(nil), // 35: group.GetGroupResp - (*GetGroupsReq)(nil), // 36: group.GetGroupsReq - (*GetGroupsResp)(nil), // 37: group.GetGroupsResp - (*GetGroupMemberReq)(nil), // 38: group.GetGroupMemberReq - (*OperateGroupStatusReq)(nil), // 39: group.OperateGroupStatusReq - (*OperateGroupStatusResp)(nil), // 40: group.OperateGroupStatusResp - (*OperateUserRoleReq)(nil), // 41: group.OperateUserRoleReq - (*OperateUserRoleResp)(nil), // 42: group.OperateUserRoleResp - (*DeleteGroupReq)(nil), // 43: group.DeleteGroupReq - (*DeleteGroupResp)(nil), // 44: group.DeleteGroupResp - (*GetGroupByIdReq)(nil), // 45: group.GetGroupByIdReq - (*GetGroupByIdResp)(nil), // 46: group.GetGroupByIdResp - (*GetGroupMembersCMSReq)(nil), // 47: group.GetGroupMembersCMSReq - (*GetGroupMembersCMSResp)(nil), // 48: group.GetGroupMembersCMSResp - (*RemoveGroupMembersCMSReq)(nil), // 49: group.RemoveGroupMembersCMSReq - (*RemoveGroupMembersCMSResp)(nil), // 50: group.RemoveGroupMembersCMSResp - (*AddGroupMembersCMSReq)(nil), // 51: group.AddGroupMembersCMSReq - (*AddGroupMembersCMSResp)(nil), // 52: group.AddGroupMembersCMSResp - (*sdk_ws.GroupInfo)(nil), // 53: server_api_params.GroupInfo - (*sdk_ws.GroupRequest)(nil), // 54: server_api_params.GroupRequest - (*sdk_ws.GroupMemberFullInfo)(nil), // 55: server_api_params.GroupMemberFullInfo - (*sdk_ws.RequestPagination)(nil), // 56: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 57: server_api_params.ResponsePagination -} -var file_group_group_proto_depIdxs = []int32{ - 1, // 0: group.CreateGroupReq.InitMemberList:type_name -> group.GroupAddMemberInfo - 53, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo - 53, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 53, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo - 53, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo - 0, // 5: group.SetGroupInfoResp.CommonResp:type_name -> group.CommonResp - 54, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest - 0, // 7: group.GetUserReqApplicationListResp.CommonResp:type_name -> group.CommonResp - 54, // 8: group.GetUserReqApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest - 0, // 9: group.TransferGroupOwnerResp.CommonResp:type_name -> group.CommonResp - 0, // 10: group.JoinGroupResp.CommonResp:type_name -> group.CommonResp - 0, // 11: group.GroupApplicationResponseResp.CommonResp:type_name -> group.CommonResp - 0, // 12: group.QuitGroupResp.CommonResp:type_name -> group.CommonResp - 55, // 13: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 55, // 14: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 25, // 15: group.KickGroupMemberResp.Id2ResultList:type_name -> group.Id2Result - 53, // 16: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo - 25, // 17: group.InviteUserToGroupResp.Id2ResultList:type_name -> group.Id2Result - 55, // 18: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 53, // 19: group.CMSGroup.GroupInfo:type_name -> server_api_params.GroupInfo - 56, // 20: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination - 33, // 21: group.GetGroupResp.CMSGroups:type_name -> group.CMSGroup - 56, // 22: group.GetGroupResp.Pagination:type_name -> server_api_params.RequestPagination - 56, // 23: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination - 33, // 24: group.GetGroupsResp.CMSGroups:type_name -> group.CMSGroup - 56, // 25: group.GetGroupsResp.Pagination:type_name -> server_api_params.RequestPagination - 33, // 26: group.GetGroupByIdResp.CMSGroup:type_name -> group.CMSGroup - 56, // 27: group.GetGroupMembersCMSReq.Pagination:type_name -> server_api_params.RequestPagination - 55, // 28: group.GetGroupMembersCMSResp.members:type_name -> server_api_params.GroupMemberFullInfo - 57, // 29: group.GetGroupMembersCMSResp.Pagination:type_name -> server_api_params.ResponsePagination - 2, // 30: group.group.createGroup:input_type -> group.CreateGroupReq - 14, // 31: group.group.joinGroup:input_type -> group.JoinGroupReq - 18, // 32: group.group.quitGroup:input_type -> group.QuitGroupReq - 4, // 33: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq - 6, // 34: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq - 8, // 35: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq - 10, // 36: group.group.getUserReqApplicationList:input_type -> group.GetUserReqApplicationListReq - 12, // 37: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq - 16, // 38: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq - 20, // 39: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq - 22, // 40: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq - 24, // 41: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq - 27, // 42: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq - 29, // 43: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq - 31, // 44: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq - 45, // 45: group.group.GetGroupById:input_type -> group.GetGroupByIdReq - 34, // 46: group.group.GetGroup:input_type -> group.GetGroupReq - 36, // 47: group.group.GetGroups:input_type -> group.GetGroupsReq - 39, // 48: group.group.OperateGroupStatus:input_type -> group.OperateGroupStatusReq - 41, // 49: group.group.OperateUserRole:input_type -> group.OperateUserRoleReq - 43, // 50: group.group.DeleteGroup:input_type -> group.DeleteGroupReq - 47, // 51: group.group.GetGroupMembersCMS:input_type -> group.GetGroupMembersCMSReq - 49, // 52: group.group.RemoveGroupMembersCMS:input_type -> group.RemoveGroupMembersCMSReq - 51, // 53: group.group.AddGroupMembersCMS:input_type -> group.AddGroupMembersCMSReq - 3, // 54: group.group.createGroup:output_type -> group.CreateGroupResp - 15, // 55: group.group.joinGroup:output_type -> group.JoinGroupResp - 19, // 56: group.group.quitGroup:output_type -> group.QuitGroupResp - 5, // 57: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp - 7, // 58: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp - 9, // 59: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp - 11, // 60: group.group.getUserReqApplicationList:output_type -> group.GetUserReqApplicationListResp - 13, // 61: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp - 17, // 62: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp - 21, // 63: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp - 23, // 64: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp - 26, // 65: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp - 28, // 66: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp - 30, // 67: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp - 32, // 68: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp - 46, // 69: group.group.GetGroupById:output_type -> group.GetGroupByIdResp - 35, // 70: group.group.GetGroup:output_type -> group.GetGroupResp - 37, // 71: group.group.GetGroups:output_type -> group.GetGroupsResp - 40, // 72: group.group.OperateGroupStatus:output_type -> group.OperateGroupStatusResp - 42, // 73: group.group.OperateUserRole:output_type -> group.OperateUserRoleResp - 44, // 74: group.group.DeleteGroup:output_type -> group.DeleteGroupResp - 48, // 75: group.group.GetGroupMembersCMS:output_type -> group.GetGroupMembersCMSResp - 50, // 76: group.group.RemoveGroupMembersCMS:output_type -> group.RemoveGroupMembersCMSResp - 52, // 77: group.group.AddGroupMembersCMS:output_type -> group.AddGroupMembersCMSResp - 54, // [54:78] is the sub-list for method output_type - 30, // [30:54] is the sub-list for method input_type - 30, // [30:30] is the sub-list for extension type_name - 30, // [30:30] is the sub-list for extension extendee - 0, // [0:30] is the sub-list for field type_name -} +var xxx_messageInfo_DismissGroupReq proto.InternalMessageInfo -func init() { file_group_group_proto_init() } -func file_group_group_proto_init() { - if File_group_group_proto != nil { - return +func (m *DismissGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } - if !protoimpl.UnsafeEnabled { - file_group_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupAddMemberInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateGroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupsInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupsInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGroupInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGroupInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupApplicationListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupApplicationListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserReqApplicationListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserReqApplicationListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransferGroupOwnerReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransferGroupOwnerResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinGroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupApplicationResponseReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupApplicationResponseResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuitGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuitGroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMemberListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMemberListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMembersInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMembersInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickGroupMemberReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Id2Result); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickGroupMemberResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJoinedGroupListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJoinedGroupListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteUserToGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteUserToGroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupAllMemberReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupAllMemberResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CMSGroup); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMemberReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OperateGroupStatusReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OperateGroupStatusResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OperateUserRoleReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OperateUserRoleResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteGroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupByIdReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupByIdResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMembersCMSReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMembersCMSResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveGroupMembersCMSReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveGroupMembersCMSResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddGroupMembersCMSReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddGroupMembersCMSResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } + return "" +} + +func (m *DismissGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_group_group_proto_rawDesc, - NumEnums: 0, - NumMessages: 53, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_group_group_proto_goTypes, - DependencyIndexes: file_group_group_proto_depIdxs, - MessageInfos: file_group_group_proto_msgTypes, - }.Build() - File_group_group_proto = out.File - file_group_group_proto_rawDesc = nil - file_group_group_proto_goTypes = nil - file_group_group_proto_depIdxs = nil + return "" +} + +func (m *DismissGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type DismissGroupResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} } +func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) } +func (*DismissGroupResp) ProtoMessage() {} +func (*DismissGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{54} +} +func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) +} +func (m *DismissGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DismissGroupResp.Marshal(b, m, deterministic) +} +func (dst *DismissGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DismissGroupResp.Merge(dst, src) +} +func (m *DismissGroupResp) XXX_Size() int { + return xxx_messageInfo_DismissGroupResp.Size(m) +} +func (m *DismissGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_DismissGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DismissGroupResp proto.InternalMessageInfo + +func (m *DismissGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type MuteGroupMemberReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` + MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds" json:"mutedSeconds,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} } +func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) } +func (*MuteGroupMemberReq) ProtoMessage() {} +func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{55} +} +func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) +} +func (m *MuteGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupMemberReq.Marshal(b, m, deterministic) +} +func (dst *MuteGroupMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupMemberReq.Merge(dst, src) +} +func (m *MuteGroupMemberReq) XXX_Size() int { + return xxx_messageInfo_MuteGroupMemberReq.Size(m) +} +func (m *MuteGroupMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupMemberReq.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupMemberReq proto.InternalMessageInfo + +func (m *MuteGroupMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *MuteGroupMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *MuteGroupMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *MuteGroupMemberReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *MuteGroupMemberReq) GetMutedSeconds() uint32 { + if m != nil { + return m.MutedSeconds + } + return 0 +} + +type MuteGroupMemberResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} } +func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) } +func (*MuteGroupMemberResp) ProtoMessage() {} +func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{56} +} +func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) +} +func (m *MuteGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupMemberResp.Marshal(b, m, deterministic) +} +func (dst *MuteGroupMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupMemberResp.Merge(dst, src) +} +func (m *MuteGroupMemberResp) XXX_Size() int { + return xxx_messageInfo_MuteGroupMemberResp.Size(m) +} +func (m *MuteGroupMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupMemberResp.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupMemberResp proto.InternalMessageInfo + +func (m *MuteGroupMemberResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type CancelMuteGroupMemberReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberReq{} } +func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupMemberReq) ProtoMessage() {} +func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{57} +} +func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) +} +func (m *CancelMuteGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupMemberReq.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupMemberReq.Merge(dst, src) +} +func (m *CancelMuteGroupMemberReq) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupMemberReq.Size(m) +} +func (m *CancelMuteGroupMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupMemberReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupMemberReq proto.InternalMessageInfo + +func (m *CancelMuteGroupMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *CancelMuteGroupMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *CancelMuteGroupMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *CancelMuteGroupMemberReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +type CancelMuteGroupMemberResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMemberResp{} } +func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupMemberResp) ProtoMessage() {} +func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{58} +} +func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) +} +func (m *CancelMuteGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupMemberResp.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupMemberResp.Merge(dst, src) +} +func (m *CancelMuteGroupMemberResp) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupMemberResp.Size(m) +} +func (m *CancelMuteGroupMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupMemberResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupMemberResp proto.InternalMessageInfo + +func (m *CancelMuteGroupMemberResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type MuteGroupReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} } +func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) } +func (*MuteGroupReq) ProtoMessage() {} +func (*MuteGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{59} +} +func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) +} +func (m *MuteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupReq.Marshal(b, m, deterministic) +} +func (dst *MuteGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupReq.Merge(dst, src) +} +func (m *MuteGroupReq) XXX_Size() int { + return xxx_messageInfo_MuteGroupReq.Size(m) +} +func (m *MuteGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupReq proto.InternalMessageInfo + +func (m *MuteGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *MuteGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *MuteGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type MuteGroupResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} } +func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) } +func (*MuteGroupResp) ProtoMessage() {} +func (*MuteGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{60} +} +func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) +} +func (m *MuteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MuteGroupResp.Marshal(b, m, deterministic) +} +func (dst *MuteGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_MuteGroupResp.Merge(dst, src) +} +func (m *MuteGroupResp) XXX_Size() int { + return xxx_messageInfo_MuteGroupResp.Size(m) +} +func (m *MuteGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_MuteGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_MuteGroupResp proto.InternalMessageInfo + +func (m *MuteGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type CancelMuteGroupReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} } +func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupReq) ProtoMessage() {} +func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{61} +} +func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) +} +func (m *CancelMuteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupReq.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupReq.Merge(dst, src) +} +func (m *CancelMuteGroupReq) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupReq.Size(m) +} +func (m *CancelMuteGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupReq proto.InternalMessageInfo + +func (m *CancelMuteGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *CancelMuteGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *CancelMuteGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +type CancelMuteGroupResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} } +func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) } +func (*CancelMuteGroupResp) ProtoMessage() {} +func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_3c77315b028a1402, []int{62} +} +func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) +} +func (m *CancelMuteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CancelMuteGroupResp.Marshal(b, m, deterministic) +} +func (dst *CancelMuteGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CancelMuteGroupResp.Merge(dst, src) +} +func (m *CancelMuteGroupResp) XXX_Size() int { + return xxx_messageInfo_CancelMuteGroupResp.Size(m) +} +func (m *CancelMuteGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_CancelMuteGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CancelMuteGroupResp proto.InternalMessageInfo + +func (m *CancelMuteGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func init() { + proto.RegisterType((*CommonResp)(nil), "group.CommonResp") + proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo") + proto.RegisterType((*CreateGroupReq)(nil), "group.CreateGroupReq") + proto.RegisterType((*CreateGroupResp)(nil), "group.CreateGroupResp") + proto.RegisterType((*GetGroupsInfoReq)(nil), "group.GetGroupsInfoReq") + proto.RegisterType((*GetGroupsInfoResp)(nil), "group.GetGroupsInfoResp") + proto.RegisterType((*SetGroupInfoReq)(nil), "group.SetGroupInfoReq") + proto.RegisterType((*SetGroupInfoResp)(nil), "group.SetGroupInfoResp") + proto.RegisterType((*GetGroupApplicationListReq)(nil), "group.GetGroupApplicationListReq") + proto.RegisterType((*GetGroupApplicationListResp)(nil), "group.GetGroupApplicationListResp") + proto.RegisterType((*GetUserReqApplicationListReq)(nil), "group.GetUserReqApplicationListReq") + proto.RegisterType((*GetUserReqApplicationListResp)(nil), "group.GetUserReqApplicationListResp") + proto.RegisterType((*TransferGroupOwnerReq)(nil), "group.TransferGroupOwnerReq") + proto.RegisterType((*TransferGroupOwnerResp)(nil), "group.TransferGroupOwnerResp") + proto.RegisterType((*JoinGroupReq)(nil), "group.JoinGroupReq") + proto.RegisterType((*JoinGroupResp)(nil), "group.JoinGroupResp") + proto.RegisterType((*GroupApplicationResponseReq)(nil), "group.GroupApplicationResponseReq") + proto.RegisterType((*GroupApplicationResponseResp)(nil), "group.GroupApplicationResponseResp") + proto.RegisterType((*QuitGroupReq)(nil), "group.QuitGroupReq") + proto.RegisterType((*QuitGroupResp)(nil), "group.QuitGroupResp") + proto.RegisterType((*GetGroupMemberListReq)(nil), "group.GetGroupMemberListReq") + proto.RegisterType((*GetGroupMemberListResp)(nil), "group.GetGroupMemberListResp") + proto.RegisterType((*GetGroupMembersInfoReq)(nil), "group.GetGroupMembersInfoReq") + proto.RegisterType((*GetGroupMembersInfoResp)(nil), "group.GetGroupMembersInfoResp") + proto.RegisterType((*KickGroupMemberReq)(nil), "group.KickGroupMemberReq") + proto.RegisterType((*Id2Result)(nil), "group.Id2Result") + proto.RegisterType((*KickGroupMemberResp)(nil), "group.KickGroupMemberResp") + proto.RegisterType((*GetJoinedGroupListReq)(nil), "group.GetJoinedGroupListReq") + proto.RegisterType((*GetJoinedGroupListResp)(nil), "group.GetJoinedGroupListResp") + proto.RegisterType((*InviteUserToGroupReq)(nil), "group.InviteUserToGroupReq") + proto.RegisterType((*InviteUserToGroupResp)(nil), "group.InviteUserToGroupResp") + proto.RegisterType((*GetGroupAllMemberReq)(nil), "group.GetGroupAllMemberReq") + proto.RegisterType((*GetGroupAllMemberResp)(nil), "group.GetGroupAllMemberResp") + proto.RegisterType((*CMSGroup)(nil), "group.CMSGroup") + proto.RegisterType((*GetGroupReq)(nil), "group.GetGroupReq") + proto.RegisterType((*GetGroupResp)(nil), "group.GetGroupResp") + proto.RegisterType((*GetGroupsReq)(nil), "group.GetGroupsReq") + proto.RegisterType((*GetGroupsResp)(nil), "group.GetGroupsResp") + proto.RegisterType((*GetGroupMemberReq)(nil), "group.GetGroupMemberReq") + proto.RegisterType((*OperateGroupStatusReq)(nil), "group.OperateGroupStatusReq") + proto.RegisterType((*OperateGroupStatusResp)(nil), "group.OperateGroupStatusResp") + proto.RegisterType((*OperateUserRoleReq)(nil), "group.OperateUserRoleReq") + proto.RegisterType((*OperateUserRoleResp)(nil), "group.OperateUserRoleResp") + proto.RegisterType((*DeleteGroupReq)(nil), "group.DeleteGroupReq") + proto.RegisterType((*DeleteGroupResp)(nil), "group.DeleteGroupResp") + proto.RegisterType((*GetGroupByIdReq)(nil), "group.GetGroupByIdReq") + proto.RegisterType((*GetGroupByIdResp)(nil), "group.GetGroupByIdResp") + proto.RegisterType((*GetGroupMembersCMSReq)(nil), "group.GetGroupMembersCMSReq") + proto.RegisterType((*GetGroupMembersCMSResp)(nil), "group.GetGroupMembersCMSResp") + proto.RegisterType((*RemoveGroupMembersCMSReq)(nil), "group.RemoveGroupMembersCMSReq") + proto.RegisterType((*RemoveGroupMembersCMSResp)(nil), "group.RemoveGroupMembersCMSResp") + proto.RegisterType((*AddGroupMembersCMSReq)(nil), "group.AddGroupMembersCMSReq") + proto.RegisterType((*AddGroupMembersCMSResp)(nil), "group.AddGroupMembersCMSResp") + proto.RegisterType((*DismissGroupReq)(nil), "group.DismissGroupReq") + proto.RegisterType((*DismissGroupResp)(nil), "group.DismissGroupResp") + proto.RegisterType((*MuteGroupMemberReq)(nil), "group.MuteGroupMemberReq") + proto.RegisterType((*MuteGroupMemberResp)(nil), "group.MuteGroupMemberResp") + proto.RegisterType((*CancelMuteGroupMemberReq)(nil), "group.CancelMuteGroupMemberReq") + proto.RegisterType((*CancelMuteGroupMemberResp)(nil), "group.CancelMuteGroupMemberResp") + proto.RegisterType((*MuteGroupReq)(nil), "group.MuteGroupReq") + proto.RegisterType((*MuteGroupResp)(nil), "group.MuteGroupResp") + proto.RegisterType((*CancelMuteGroupReq)(nil), "group.CancelMuteGroupReq") + proto.RegisterType((*CancelMuteGroupResp)(nil), "group.CancelMuteGroupResp") } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConnInterface +var _ grpc.ClientConn // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 +const _ = grpc.SupportPackageIsVersion4 + +// Client API for Group service -// GroupClient is the client API for Group service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type GroupClient interface { CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*JoinGroupResp, error) @@ -4664,19 +3383,24 @@ type GroupClient interface { GetGroupMembersCMS(ctx context.Context, in *GetGroupMembersCMSReq, opts ...grpc.CallOption) (*GetGroupMembersCMSResp, error) RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) + DismissGroup(ctx context.Context, in *DismissGroupReq, opts ...grpc.CallOption) (*DismissGroupResp, error) + MuteGroupMember(ctx context.Context, in *MuteGroupMemberReq, opts ...grpc.CallOption) (*MuteGroupMemberResp, error) + CancelMuteGroupMember(ctx context.Context, in *CancelMuteGroupMemberReq, opts ...grpc.CallOption) (*CancelMuteGroupMemberResp, error) + MuteGroup(ctx context.Context, in *MuteGroupReq, opts ...grpc.CallOption) (*MuteGroupResp, error) + CancelMuteGroup(ctx context.Context, in *CancelMuteGroupReq, opts ...grpc.CallOption) (*CancelMuteGroupResp, error) } type groupClient struct { - cc grpc.ClientConnInterface + cc *grpc.ClientConn } -func NewGroupClient(cc grpc.ClientConnInterface) GroupClient { +func NewGroupClient(cc *grpc.ClientConn) GroupClient { return &groupClient{cc} } func (c *groupClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) { out := new(CreateGroupResp) - err := c.cc.Invoke(ctx, "/group.group/createGroup", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/createGroup", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4685,7 +3409,7 @@ func (c *groupClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*JoinGroupResp, error) { out := new(JoinGroupResp) - err := c.cc.Invoke(ctx, "/group.group/joinGroup", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/joinGroup", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4694,7 +3418,7 @@ func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...g func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*QuitGroupResp, error) { out := new(QuitGroupResp) - err := c.cc.Invoke(ctx, "/group.group/quitGroup", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/quitGroup", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4703,7 +3427,7 @@ func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...g func (c *groupClient) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) { out := new(GetGroupsInfoResp) - err := c.cc.Invoke(ctx, "/group.group/getGroupsInfo", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/getGroupsInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4712,7 +3436,7 @@ func (c *groupClient) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, o func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*SetGroupInfoResp, error) { out := new(SetGroupInfoResp) - err := c.cc.Invoke(ctx, "/group.group/setGroupInfo", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/setGroupInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4721,7 +3445,7 @@ func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opt func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) { out := new(GetGroupApplicationListResp) - err := c.cc.Invoke(ctx, "/group.group/getGroupApplicationList", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/getGroupApplicationList", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4730,7 +3454,7 @@ func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupA func (c *groupClient) GetUserReqApplicationList(ctx context.Context, in *GetUserReqApplicationListReq, opts ...grpc.CallOption) (*GetUserReqApplicationListResp, error) { out := new(GetUserReqApplicationListResp) - err := c.cc.Invoke(ctx, "/group.group/getUserReqApplicationList", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/getUserReqApplicationList", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4739,7 +3463,7 @@ func (c *groupClient) GetUserReqApplicationList(ctx context.Context, in *GetUser func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) { out := new(TransferGroupOwnerResp) - err := c.cc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4748,7 +3472,7 @@ func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupO func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) { out := new(GroupApplicationResponseResp) - err := c.cc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4757,7 +3481,7 @@ func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApp func (c *groupClient) GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) { out := new(GetGroupMemberListResp) - err := c.cc.Invoke(ctx, "/group.group/getGroupMemberList", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/getGroupMemberList", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4766,7 +3490,7 @@ func (c *groupClient) GetGroupMemberList(ctx context.Context, in *GetGroupMember func (c *groupClient) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembersInfoReq, opts ...grpc.CallOption) (*GetGroupMembersInfoResp, error) { out := new(GetGroupMembersInfoResp) - err := c.cc.Invoke(ctx, "/group.group/getGroupMembersInfo", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/getGroupMembersInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4775,7 +3499,7 @@ func (c *groupClient) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembe func (c *groupClient) KickGroupMember(ctx context.Context, in *KickGroupMemberReq, opts ...grpc.CallOption) (*KickGroupMemberResp, error) { out := new(KickGroupMemberResp) - err := c.cc.Invoke(ctx, "/group.group/kickGroupMember", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/kickGroupMember", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4784,7 +3508,7 @@ func (c *groupClient) KickGroupMember(ctx context.Context, in *KickGroupMemberRe func (c *groupClient) GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) { out := new(GetJoinedGroupListResp) - err := c.cc.Invoke(ctx, "/group.group/getJoinedGroupList", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/getJoinedGroupList", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4793,7 +3517,7 @@ func (c *groupClient) GetJoinedGroupList(ctx context.Context, in *GetJoinedGroup func (c *groupClient) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) { out := new(InviteUserToGroupResp) - err := c.cc.Invoke(ctx, "/group.group/inviteUserToGroup", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/inviteUserToGroup", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4802,7 +3526,7 @@ func (c *groupClient) InviteUserToGroup(ctx context.Context, in *InviteUserToGro func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) { out := new(GetGroupAllMemberResp) - err := c.cc.Invoke(ctx, "/group.group/getGroupAllMember", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/getGroupAllMember", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4811,7 +3535,7 @@ func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemb func (c *groupClient) GetGroupById(ctx context.Context, in *GetGroupByIdReq, opts ...grpc.CallOption) (*GetGroupByIdResp, error) { out := new(GetGroupByIdResp) - err := c.cc.Invoke(ctx, "/group.group/GetGroupById", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/GetGroupById", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4820,7 +3544,7 @@ func (c *groupClient) GetGroupById(ctx context.Context, in *GetGroupByIdReq, opt 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...) + err := grpc.Invoke(ctx, "/group.group/GetGroup", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4829,7 +3553,7 @@ func (c *groupClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grp func (c *groupClient) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) { out := new(GetGroupsResp) - err := c.cc.Invoke(ctx, "/group.group/GetGroups", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/GetGroups", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4838,7 +3562,7 @@ func (c *groupClient) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...g func (c *groupClient) OperateGroupStatus(ctx context.Context, in *OperateGroupStatusReq, opts ...grpc.CallOption) (*OperateGroupStatusResp, error) { out := new(OperateGroupStatusResp) - err := c.cc.Invoke(ctx, "/group.group/OperateGroupStatus", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/OperateGroupStatus", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4847,7 +3571,7 @@ func (c *groupClient) OperateGroupStatus(ctx context.Context, in *OperateGroupSt func (c *groupClient) OperateUserRole(ctx context.Context, in *OperateUserRoleReq, opts ...grpc.CallOption) (*OperateUserRoleResp, error) { out := new(OperateUserRoleResp) - err := c.cc.Invoke(ctx, "/group.group/OperateUserRole", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/OperateUserRole", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4856,7 +3580,7 @@ func (c *groupClient) OperateUserRole(ctx context.Context, in *OperateUserRoleRe func (c *groupClient) DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts ...grpc.CallOption) (*DeleteGroupResp, error) { out := new(DeleteGroupResp) - err := c.cc.Invoke(ctx, "/group.group/DeleteGroup", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/DeleteGroup", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4865,7 +3589,7 @@ func (c *groupClient) DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts func (c *groupClient) GetGroupMembersCMS(ctx context.Context, in *GetGroupMembersCMSReq, opts ...grpc.CallOption) (*GetGroupMembersCMSResp, error) { out := new(GetGroupMembersCMSResp) - err := c.cc.Invoke(ctx, "/group.group/GetGroupMembersCMS", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/GetGroupMembersCMS", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4874,7 +3598,7 @@ func (c *groupClient) GetGroupMembersCMS(ctx context.Context, in *GetGroupMember func (c *groupClient) RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) { out := new(RemoveGroupMembersCMSResp) - err := c.cc.Invoke(ctx, "/group.group/RemoveGroupMembersCMS", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/RemoveGroupMembersCMS", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4883,14 +3607,60 @@ func (c *groupClient) RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroup func (c *groupClient) AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) { out := new(AddGroupMembersCMSResp) - err := c.cc.Invoke(ctx, "/group.group/AddGroupMembersCMS", in, out, opts...) + err := grpc.Invoke(ctx, "/group.group/AddGroupMembersCMS", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -// GroupServer is the server API for Group service. +func (c *groupClient) DismissGroup(ctx context.Context, in *DismissGroupReq, opts ...grpc.CallOption) (*DismissGroupResp, error) { + out := new(DismissGroupResp) + err := grpc.Invoke(ctx, "/group.group/DismissGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) MuteGroupMember(ctx context.Context, in *MuteGroupMemberReq, opts ...grpc.CallOption) (*MuteGroupMemberResp, error) { + out := new(MuteGroupMemberResp) + err := grpc.Invoke(ctx, "/group.group/MuteGroupMember", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) CancelMuteGroupMember(ctx context.Context, in *CancelMuteGroupMemberReq, opts ...grpc.CallOption) (*CancelMuteGroupMemberResp, error) { + out := new(CancelMuteGroupMemberResp) + err := grpc.Invoke(ctx, "/group.group/CancelMuteGroupMember", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) MuteGroup(ctx context.Context, in *MuteGroupReq, opts ...grpc.CallOption) (*MuteGroupResp, error) { + out := new(MuteGroupResp) + err := grpc.Invoke(ctx, "/group.group/MuteGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) CancelMuteGroup(ctx context.Context, in *CancelMuteGroupReq, opts ...grpc.CallOption) (*CancelMuteGroupResp, error) { + out := new(CancelMuteGroupResp) + err := grpc.Invoke(ctx, "/group.group/CancelMuteGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Group service + type GroupServer interface { CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) JoinGroup(context.Context, *JoinGroupReq) (*JoinGroupResp, error) @@ -4916,83 +3686,11 @@ type GroupServer interface { GetGroupMembersCMS(context.Context, *GetGroupMembersCMSReq) (*GetGroupMembersCMSResp, error) RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) -} - -// UnimplementedGroupServer can be embedded to have forward compatible implementations. -type UnimplementedGroupServer struct { -} - -func (*UnimplementedGroupServer) CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateGroup not implemented") -} -func (*UnimplementedGroupServer) JoinGroup(context.Context, *JoinGroupReq) (*JoinGroupResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method JoinGroup not implemented") -} -func (*UnimplementedGroupServer) QuitGroup(context.Context, *QuitGroupReq) (*QuitGroupResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method QuitGroup not implemented") -} -func (*UnimplementedGroupServer) GetGroupsInfo(context.Context, *GetGroupsInfoReq) (*GetGroupsInfoResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroupsInfo not implemented") -} -func (*UnimplementedGroupServer) SetGroupInfo(context.Context, *SetGroupInfoReq) (*SetGroupInfoResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetGroupInfo not implemented") -} -func (*UnimplementedGroupServer) GetGroupApplicationList(context.Context, *GetGroupApplicationListReq) (*GetGroupApplicationListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroupApplicationList not implemented") -} -func (*UnimplementedGroupServer) GetUserReqApplicationList(context.Context, *GetUserReqApplicationListReq) (*GetUserReqApplicationListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUserReqApplicationList not implemented") -} -func (*UnimplementedGroupServer) TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*TransferGroupOwnerResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method TransferGroupOwner not implemented") -} -func (*UnimplementedGroupServer) GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*GroupApplicationResponseResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GroupApplicationResponse not implemented") -} -func (*UnimplementedGroupServer) GetGroupMemberList(context.Context, *GetGroupMemberListReq) (*GetGroupMemberListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroupMemberList not implemented") -} -func (*UnimplementedGroupServer) GetGroupMembersInfo(context.Context, *GetGroupMembersInfoReq) (*GetGroupMembersInfoResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroupMembersInfo not implemented") -} -func (*UnimplementedGroupServer) KickGroupMember(context.Context, *KickGroupMemberReq) (*KickGroupMemberResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method KickGroupMember not implemented") -} -func (*UnimplementedGroupServer) GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetJoinedGroupList not implemented") -} -func (*UnimplementedGroupServer) InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method InviteUserToGroup not implemented") -} -func (*UnimplementedGroupServer) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroupAllMember not implemented") -} -func (*UnimplementedGroupServer) GetGroupById(context.Context, *GetGroupByIdReq) (*GetGroupByIdResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroupById not implemented") -} -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) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroups not implemented") -} -func (*UnimplementedGroupServer) OperateGroupStatus(context.Context, *OperateGroupStatusReq) (*OperateGroupStatusResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method OperateGroupStatus not implemented") -} -func (*UnimplementedGroupServer) OperateUserRole(context.Context, *OperateUserRoleReq) (*OperateUserRoleResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method OperateUserRole not implemented") -} -func (*UnimplementedGroupServer) DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteGroup not implemented") -} -func (*UnimplementedGroupServer) GetGroupMembersCMS(context.Context, *GetGroupMembersCMSReq) (*GetGroupMembersCMSResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroupMembersCMS not implemented") -} -func (*UnimplementedGroupServer) RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method RemoveGroupMembersCMS not implemented") -} -func (*UnimplementedGroupServer) AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddGroupMembersCMS not implemented") + DismissGroup(context.Context, *DismissGroupReq) (*DismissGroupResp, error) + MuteGroupMember(context.Context, *MuteGroupMemberReq) (*MuteGroupMemberResp, error) + CancelMuteGroupMember(context.Context, *CancelMuteGroupMemberReq) (*CancelMuteGroupMemberResp, error) + MuteGroup(context.Context, *MuteGroupReq) (*MuteGroupResp, error) + CancelMuteGroup(context.Context, *CancelMuteGroupReq) (*CancelMuteGroupResp, error) } func RegisterGroupServer(s *grpc.Server, srv GroupServer) { @@ -5431,6 +4129,96 @@ func _Group_AddGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Group_DismissGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DismissGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).DismissGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/DismissGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).DismissGroup(ctx, req.(*DismissGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_MuteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MuteGroupMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).MuteGroupMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/MuteGroupMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).MuteGroupMember(ctx, req.(*MuteGroupMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_CancelMuteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CancelMuteGroupMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).CancelMuteGroupMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/CancelMuteGroupMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).CancelMuteGroupMember(ctx, req.(*CancelMuteGroupMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_MuteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MuteGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).MuteGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/MuteGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).MuteGroup(ctx, req.(*MuteGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_CancelMuteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CancelMuteGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).CancelMuteGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/CancelMuteGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).CancelMuteGroup(ctx, req.(*CancelMuteGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Group_serviceDesc = grpc.ServiceDesc{ ServiceName: "group.group", HandlerType: (*GroupServer)(nil), @@ -5531,7 +4319,163 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "AddGroupMembersCMS", Handler: _Group_AddGroupMembersCMS_Handler, }, + { + MethodName: "DismissGroup", + Handler: _Group_DismissGroup_Handler, + }, + { + MethodName: "MuteGroupMember", + Handler: _Group_MuteGroupMember_Handler, + }, + { + MethodName: "CancelMuteGroupMember", + Handler: _Group_CancelMuteGroupMember_Handler, + }, + { + MethodName: "MuteGroup", + Handler: _Group_MuteGroup_Handler, + }, + { + MethodName: "CancelMuteGroup", + Handler: _Group_CancelMuteGroup_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group/group.proto", } + +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_3c77315b028a1402) } + +var fileDescriptor_group_3c77315b028a1402 = []byte{ + // 2068 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0xdb, 0xc8, + 0x15, 0x07, 0xed, 0xc8, 0xb6, 0x9e, 0xad, 0xc8, 0x1e, 0x47, 0xb6, 0xc2, 0xf5, 0x66, 0xbd, 0xb3, + 0xe9, 0x22, 0xe8, 0x1f, 0x1b, 0xcd, 0x02, 0x39, 0x74, 0x8b, 0xa6, 0xf1, 0x9f, 0xc4, 0x4a, 0x22, + 0xbb, 0xa1, 0xd3, 0x4b, 0x2e, 0xa9, 0x56, 0x1c, 0x0b, 0xaa, 0x25, 0x92, 0xe6, 0x50, 0x4e, 0xdb, + 0xcb, 0xa2, 0x97, 0x05, 0xb6, 0xed, 0xa1, 0x45, 0x81, 0x3d, 0x15, 0x68, 0x73, 0xeb, 0xa1, 0x87, + 0x1e, 0xda, 0x73, 0xd1, 0x8f, 0xd1, 0x4f, 0xd1, 0xaf, 0x50, 0x70, 0x66, 0x38, 0x1c, 0x0e, 0x87, + 0xb4, 0x42, 0x25, 0xcd, 0x45, 0xc0, 0xbc, 0x79, 0xc3, 0xf7, 0x7b, 0x6f, 0xe6, 0xbd, 0x79, 0xef, + 0x8d, 0x60, 0x6d, 0x10, 0xfa, 0x93, 0x60, 0x97, 0xfd, 0xee, 0x04, 0xa1, 0x1f, 0xf9, 0xa8, 0xc6, + 0x06, 0xf6, 0xc7, 0x27, 0x01, 0xf1, 0x5e, 0x76, 0xba, 0xbb, 0xc1, 0xf9, 0x60, 0x97, 0xcd, 0xec, + 0x52, 0xf7, 0xfc, 0xe5, 0x2b, 0xba, 0xfb, 0x8a, 0x72, 0x4e, 0xfc, 0x23, 0x80, 0x7d, 0x7f, 0x3c, + 0xf6, 0x3d, 0x87, 0xd0, 0x00, 0xb5, 0x61, 0xf1, 0x30, 0x0c, 0xf7, 0x7d, 0x97, 0xb4, 0xad, 0x6d, + 0xeb, 0x4e, 0xcd, 0x49, 0x86, 0x68, 0x03, 0x16, 0x0e, 0xc3, 0xb0, 0x4b, 0x07, 0xed, 0xb9, 0x6d, + 0xeb, 0x4e, 0xdd, 0x11, 0x23, 0xfc, 0x18, 0xd0, 0xa3, 0x58, 0xd6, 0x03, 0xd7, 0xed, 0x92, 0xf1, + 0x17, 0x24, 0xec, 0x78, 0x67, 0x7e, 0xcc, 0xfd, 0x53, 0x4a, 0xc2, 0xce, 0x01, 0xfb, 0x4c, 0xdd, + 0x11, 0x23, 0xb4, 0x05, 0x75, 0xc7, 0x1f, 0x91, 0xa7, 0xe4, 0x92, 0x8c, 0xd8, 0x87, 0x6a, 0x4e, + 0x4a, 0xc0, 0xff, 0xb5, 0xe0, 0xfa, 0x7e, 0x48, 0x7a, 0x11, 0x61, 0x9f, 0x74, 0xc8, 0x05, 0x7a, + 0x00, 0xd7, 0x3b, 0xde, 0x30, 0xe2, 0x9f, 0x7e, 0x3a, 0xa4, 0x51, 0xdb, 0xda, 0x9e, 0xbf, 0xb3, + 0x7c, 0xf7, 0xe6, 0x0e, 0x57, 0x37, 0x2f, 0xdb, 0xd1, 0x16, 0xa0, 0x1f, 0x40, 0x9d, 0x71, 0xc5, + 0x93, 0x4c, 0xe6, 0xf2, 0xdd, 0xad, 0x1d, 0x4a, 0xc2, 0x4b, 0x12, 0xbe, 0xec, 0x05, 0xc3, 0x97, + 0x41, 0x2f, 0xec, 0x8d, 0xe9, 0x8e, 0xe4, 0x71, 0x52, 0x76, 0xb4, 0x0d, 0xcb, 0x27, 0x01, 0x09, + 0x7b, 0xd1, 0xd0, 0xf7, 0x3a, 0x07, 0xed, 0x79, 0xa6, 0x8c, 0x4a, 0x42, 0x36, 0x2c, 0x9d, 0x04, + 0x42, 0xd7, 0x6b, 0x6c, 0x5a, 0x8e, 0xd9, 0xea, 0x57, 0x1e, 0x09, 0xc5, 0x74, 0x4d, 0xac, 0x4e, + 0x49, 0xf8, 0x4b, 0x68, 0x66, 0x14, 0xae, 0xb2, 0x05, 0x59, 0x05, 0xe7, 0xdf, 0x48, 0x41, 0x1c, + 0xc2, 0xea, 0x23, 0x12, 0xb1, 0x31, 0x65, 0x73, 0xe4, 0x22, 0x86, 0xcd, 0x19, 0x0e, 0xa4, 0xc1, + 0xeb, 0x8e, 0x4a, 0xd2, 0xcd, 0x32, 0x57, 0x6e, 0x96, 0xf9, 0xac, 0x59, 0xf0, 0xd7, 0x16, 0xac, + 0x69, 0x42, 0x2b, 0xe9, 0xbd, 0x07, 0x0d, 0xa9, 0x08, 0x43, 0x3a, 0xcf, 0x8e, 0x46, 0xb9, 0xee, + 0xd9, 0x25, 0xf8, 0xb7, 0x16, 0x34, 0x4f, 0x05, 0x96, 0x44, 0xff, 0x8c, 0x3d, 0xad, 0x37, 0x3b, + 0x30, 0xaa, 0xde, 0x73, 0x86, 0xe3, 0x50, 0x7a, 0x98, 0xf0, 0x21, 0xac, 0x66, 0xc1, 0xd0, 0x00, + 0x7d, 0x5f, 0x75, 0x50, 0x01, 0x67, 0x4d, 0x9c, 0xfe, 0x74, 0xc2, 0x51, 0x98, 0xf0, 0xaf, 0xc0, + 0x4e, 0xec, 0xfb, 0x20, 0x08, 0x46, 0xc3, 0x3e, 0xfb, 0x7e, 0xac, 0x6f, 0xac, 0x9e, 0x0a, 0xd1, + 0x2a, 0x87, 0x68, 0xd8, 0xd8, 0x5b, 0x00, 0x0f, 0x43, 0x7f, 0x9c, 0xd9, 0x5a, 0x85, 0x82, 0xff, + 0x64, 0xc1, 0x07, 0x85, 0xc2, 0x2b, 0x6d, 0xf3, 0x13, 0x58, 0x4d, 0xc2, 0xc1, 0x84, 0xd0, 0x48, + 0xd9, 0xe9, 0x8f, 0x8a, 0x76, 0x45, 0xb0, 0x3a, 0xb9, 0x85, 0x38, 0x82, 0xad, 0x47, 0x24, 0x8a, + 0xb1, 0x3a, 0xe4, 0xc2, 0x60, 0x9c, 0xa2, 0xc0, 0x35, 0xdb, 0xbe, 0xfe, 0xd9, 0x82, 0x0f, 0x4b, + 0xc4, 0x56, 0xda, 0x65, 0xa3, 0x5d, 0xe6, 0xaa, 0xda, 0xe5, 0x5f, 0x16, 0xb4, 0x9e, 0x87, 0x3d, + 0x8f, 0x9e, 0x91, 0x90, 0x4d, 0xb2, 0x28, 0x15, 0x5b, 0xa4, 0x0d, 0x8b, 0xc2, 0xf5, 0x85, 0x49, + 0x92, 0x21, 0xfa, 0x14, 0xae, 0x9f, 0x8c, 0x5c, 0x35, 0xc2, 0x71, 0xcb, 0x68, 0xd4, 0x98, 0xef, + 0x98, 0xbc, 0x52, 0xf9, 0xb8, 0x89, 0x34, 0xaa, 0x6e, 0xc7, 0x6b, 0xe5, 0x51, 0xa5, 0xa6, 0x45, + 0x95, 0x27, 0xb0, 0x61, 0x52, 0xa0, 0x9a, 0x07, 0x7d, 0x65, 0xc1, 0xca, 0x63, 0x7f, 0xe8, 0xc9, + 0x7b, 0xa8, 0xd8, 0x0a, 0xb7, 0x00, 0x1c, 0x72, 0xd1, 0x25, 0x94, 0xf6, 0x06, 0x44, 0x58, 0x40, + 0xa1, 0x94, 0x45, 0xc2, 0xab, 0x35, 0xc6, 0x7b, 0xd0, 0x50, 0x70, 0x54, 0x53, 0xe6, 0x3f, 0xb1, + 0x4b, 0x6a, 0xfe, 0x18, 0x4f, 0xf8, 0x1e, 0x25, 0x22, 0xde, 0xab, 0x28, 0xac, 0x72, 0xbb, 0xeb, + 0xa7, 0x5f, 0xb1, 0xcc, 0x7c, 0xce, 0x32, 0x4a, 0xa8, 0xb8, 0xa6, 0x87, 0x8a, 0x78, 0xfe, 0xa8, + 0xe7, 0xb9, 0x23, 0xe2, 0xc6, 0x4e, 0xcf, 0xf7, 0x53, 0xa1, 0x20, 0x0c, 0x2b, 0x7c, 0xe4, 0x10, + 0x3a, 0x19, 0x45, 0xed, 0x05, 0x16, 0x2f, 0x32, 0x34, 0xfc, 0x0c, 0xb6, 0x8a, 0x55, 0xab, 0x66, + 0xae, 0x33, 0x58, 0x79, 0x36, 0x19, 0x46, 0x53, 0x6c, 0xfd, 0x6c, 0xd7, 0xe0, 0x1e, 0x34, 0x14, + 0x39, 0xd5, 0xb0, 0xbe, 0xb6, 0xa0, 0x95, 0x44, 0xdb, 0x34, 0xe5, 0x29, 0x47, 0x3d, 0x53, 0x28, + 0x8b, 0x03, 0xe4, 0xc3, 0xe1, 0x28, 0x22, 0x21, 0xdb, 0xd0, 0x9a, 0x23, 0x46, 0xb1, 0xbc, 0x63, + 0xf2, 0x8b, 0xe8, 0x94, 0x5c, 0xb0, 0x9d, 0xac, 0x39, 0xc9, 0x10, 0xff, 0xcd, 0x82, 0x0d, 0x13, + 0xc6, 0x4a, 0x97, 0xc1, 0x43, 0x80, 0x71, 0x9a, 0x0b, 0xf2, 0x6b, 0xe0, 0xd3, 0xa2, 0x70, 0xc7, + 0xa5, 0x3d, 0x9c, 0x8c, 0x46, 0xec, 0x36, 0x55, 0x56, 0xc6, 0x92, 0x3d, 0x01, 0x97, 0xeb, 0x91, + 0x0c, 0xf1, 0xef, 0x73, 0x70, 0x65, 0x62, 0x54, 0x1a, 0x04, 0x14, 0x58, 0x73, 0x2c, 0x63, 0x52, + 0xc5, 0xcd, 0x16, 0x04, 0xfe, 0x68, 0xc1, 0xa6, 0x11, 0xd2, 0xfb, 0x34, 0x21, 0xfe, 0xbb, 0x05, + 0xe8, 0xc9, 0xb0, 0x7f, 0xae, 0xf0, 0x95, 0x1b, 0xe9, 0xdb, 0xb0, 0x1a, 0xf3, 0x13, 0x97, 0x2b, + 0xae, 0x98, 0x2a, 0x47, 0x8f, 0xc1, 0x3b, 0xa4, 0x47, 0x7d, 0x4f, 0x98, 0x4b, 0x8c, 0x74, 0x63, + 0xd5, 0xca, 0x5d, 0x6e, 0x41, 0x73, 0xb9, 0xcf, 0xa1, 0xde, 0x71, 0xef, 0xf2, 0xd0, 0x51, 0x78, + 0xd5, 0x33, 0xd1, 0x2c, 0xe0, 0xf0, 0x02, 0x45, 0x8c, 0xf0, 0x97, 0xb0, 0x9e, 0x53, 0xb7, 0xd2, + 0x06, 0xdc, 0x83, 0x86, 0x44, 0xa1, 0xec, 0xc1, 0xaa, 0x70, 0x75, 0x39, 0xe7, 0x64, 0xd9, 0xf0, + 0x84, 0xf9, 0x7a, 0x7c, 0x1d, 0x10, 0x97, 0xa1, 0x48, 0x7c, 0x3d, 0x1b, 0x68, 0xad, 0x5c, 0xa0, + 0xdd, 0x86, 0x65, 0x3f, 0x1f, 0xa7, 0xfc, 0x29, 0xe3, 0xd4, 0x57, 0xdc, 0x21, 0x72, 0x72, 0x67, + 0xaa, 0x55, 0xa6, 0xce, 0xd7, 0x53, 0x76, 0xfc, 0x0f, 0x0b, 0x6e, 0x74, 0xbc, 0xcb, 0x61, 0x44, + 0x62, 0x64, 0xcf, 0x7d, 0x19, 0xa1, 0xaf, 0x8e, 0xc3, 0xc5, 0x97, 0x54, 0x7a, 0xd0, 0xae, 0x65, + 0x0e, 0xda, 0x77, 0x61, 0x8d, 0xcb, 0x52, 0x4f, 0x6b, 0x8d, 0x9d, 0xd6, 0xfc, 0x44, 0xe9, 0xa1, + 0xfb, 0xb5, 0x05, 0x2d, 0x03, 0xec, 0xff, 0xeb, 0xd1, 0xf1, 0xe0, 0x86, 0x4c, 0xca, 0x47, 0xa3, + 0x69, 0x9c, 0x75, 0xb6, 0x84, 0xf7, 0x0f, 0xca, 0xbd, 0xa4, 0x08, 0x7c, 0xaf, 0xf1, 0xea, 0x1b, + 0x0b, 0x96, 0xf6, 0xbb, 0xa7, 0x8c, 0x6d, 0xa6, 0x1a, 0xef, 0x0e, 0x34, 0xb9, 0xac, 0x1e, 0x8d, + 0x48, 0x78, 0xdc, 0x1b, 0x27, 0x69, 0x9f, 0x4e, 0x46, 0xb7, 0x45, 0x85, 0xca, 0x49, 0x1d, 0x57, + 0x98, 0x2a, 0x4b, 0x8c, 0xc3, 0xfb, 0x72, 0x62, 0xac, 0x78, 0x53, 0xb6, 0x04, 0x36, 0xf6, 0x65, + 0xbe, 0x2d, 0x29, 0x01, 0x1d, 0x00, 0xfc, 0xa4, 0x37, 0x18, 0x7a, 0xcc, 0xd4, 0xa2, 0x9f, 0x71, + 0xdb, 0x00, 0x5d, 0x64, 0xf7, 0x29, 0xaf, 0xa3, 0xac, 0x9b, 0x62, 0x0b, 0x5f, 0x5b, 0xb0, 0x92, + 0xa2, 0xa2, 0x01, 0xfa, 0x1e, 0xd4, 0x13, 0xf3, 0x51, 0xd1, 0x85, 0x69, 0x26, 0xd9, 0x89, 0xa0, + 0x3b, 0x29, 0xc7, 0x5b, 0xc2, 0x29, 0x6d, 0x31, 0x19, 0x53, 0x86, 0xb2, 0xe6, 0xa4, 0x04, 0x7c, + 0x99, 0x42, 0xa4, 0xb1, 0xe5, 0xb2, 0x32, 0xad, 0xb7, 0x63, 0x9b, 0x7c, 0x38, 0xc1, 0x7f, 0xb1, + 0xa0, 0xa1, 0x08, 0x7e, 0x5f, 0xc6, 0xb1, 0x61, 0x29, 0xb1, 0x85, 0xb0, 0x8d, 0x1c, 0xe3, 0x93, + 0xb4, 0xc7, 0x62, 0x70, 0x77, 0x37, 0xeb, 0xee, 0xee, 0x14, 0x3a, 0x9f, 0x43, 0x8b, 0x0f, 0x79, + 0xaf, 0xea, 0x34, 0xea, 0x45, 0x13, 0x5a, 0xfe, 0xd1, 0x0d, 0x58, 0xe0, 0x6c, 0xc9, 0x4d, 0xca, + 0x47, 0x53, 0x1c, 0xbe, 0x36, 0x6c, 0x98, 0x84, 0xf1, 0xca, 0x0c, 0x89, 0x29, 0x56, 0x4e, 0xfb, + 0x23, 0x72, 0x25, 0x08, 0x16, 0xb6, 0xdc, 0x24, 0xac, 0xf0, 0x51, 0xb6, 0x15, 0x39, 0xaf, 0xb5, + 0x22, 0xa7, 0x48, 0xca, 0x5a, 0xb0, 0x9e, 0xc3, 0x41, 0x03, 0xfc, 0x14, 0xae, 0x1f, 0x90, 0x11, + 0x51, 0x5a, 0x98, 0xb3, 0x18, 0x7d, 0x0d, 0x9a, 0x99, 0xaf, 0xd1, 0x00, 0x77, 0xa1, 0x99, 0x6c, + 0xec, 0xde, 0x2f, 0x3b, 0xee, 0xac, 0x12, 0xee, 0xa7, 0x0d, 0x40, 0xfe, 0x39, 0x1a, 0xa0, 0xef, + 0xa4, 0x81, 0x52, 0x38, 0x51, 0xee, 0x2c, 0x4b, 0x06, 0xfc, 0xcf, 0x5c, 0x09, 0x42, 0xf7, 0xbb, + 0xa7, 0xe5, 0xb0, 0x6c, 0x58, 0x8a, 0x8d, 0xa6, 0x84, 0x4e, 0x39, 0xd6, 0x5c, 0x63, 0xfe, 0xed, + 0xf8, 0xb0, 0x61, 0xff, 0xfe, 0x9d, 0xcf, 0xf3, 0x19, 0x6e, 0x1a, 0xa0, 0x1f, 0xc3, 0x22, 0xbf, + 0x37, 0x12, 0x57, 0x9e, 0xf6, 0xba, 0x49, 0x96, 0xa1, 0x43, 0x83, 0x7f, 0x7f, 0xcb, 0xa8, 0x04, + 0xaf, 0x55, 0x0b, 0xb4, 0xb8, 0x05, 0xc0, 0x25, 0x28, 0xe1, 0x4f, 0xa1, 0xe0, 0xdf, 0x59, 0xd0, + 0x76, 0xc8, 0xd8, 0xbf, 0x24, 0x6f, 0x64, 0xfe, 0x36, 0x2c, 0x72, 0x27, 0xa0, 0x22, 0xff, 0x4e, + 0x86, 0x6f, 0xd4, 0xef, 0x76, 0xb5, 0x7e, 0xb7, 0x8b, 0xbb, 0x70, 0xb3, 0x00, 0x0d, 0xbf, 0xf8, + 0xe9, 0xa4, 0xdf, 0x27, 0x94, 0x8a, 0x8e, 0x72, 0x32, 0x8c, 0x3d, 0xf4, 0xac, 0x37, 0x1c, 0x11, + 0x57, 0xa0, 0x11, 0x23, 0xfc, 0xb5, 0x05, 0xad, 0x07, 0xae, 0xfb, 0x2e, 0x54, 0x73, 0xf3, 0xaa, + 0xb9, 0xa5, 0xaa, 0x3d, 0x86, 0x0d, 0x13, 0x94, 0x4a, 0x7a, 0x0d, 0xa1, 0x79, 0x30, 0xa4, 0xe3, + 0x21, 0xa5, 0x32, 0x46, 0xd8, 0xb0, 0xe4, 0x6b, 0x3d, 0x59, 0x3f, 0x98, 0x3a, 0x7b, 0x6f, 0xc3, + 0xe2, 0x20, 0x9b, 0xdd, 0x8a, 0x21, 0x3e, 0x84, 0xd5, 0xac, 0x28, 0xde, 0x66, 0xe8, 0x4f, 0xd3, + 0x66, 0x48, 0x99, 0xf0, 0x5f, 0x2d, 0x40, 0xdd, 0x49, 0x44, 0xb4, 0xeb, 0xe4, 0x1d, 0xa1, 0x8e, + 0x0d, 0x37, 0x51, 0x9b, 0x46, 0x62, 0x84, 0x30, 0xac, 0x8c, 0x27, 0x11, 0x71, 0x4f, 0x49, 0xdf, + 0xf7, 0x5c, 0xca, 0xaa, 0xbf, 0x86, 0x93, 0xa1, 0xe1, 0x23, 0x58, 0xcf, 0x21, 0xad, 0xa6, 0xf4, + 0x6f, 0x2c, 0x68, 0xef, 0xf7, 0xbc, 0x3e, 0x19, 0xbd, 0x7f, 0xd5, 0xf1, 0x31, 0xdc, 0x2c, 0xc0, + 0x52, 0x4d, 0xb9, 0x33, 0x58, 0x91, 0x5f, 0x7a, 0x97, 0x07, 0x70, 0x0f, 0x1a, 0x8a, 0x9c, 0x6a, + 0x58, 0x47, 0x80, 0x34, 0xdd, 0xdf, 0x25, 0xe2, 0x23, 0x58, 0xcf, 0x49, 0xab, 0x84, 0xfb, 0xee, + 0x37, 0x6b, 0xc0, 0xdf, 0x61, 0xd1, 0x0f, 0x61, 0xb9, 0x9f, 0x3e, 0xf3, 0xa1, 0x56, 0xb2, 0x2e, + 0xf3, 0xd6, 0x69, 0x6f, 0x98, 0xc8, 0x34, 0x40, 0xf7, 0xa0, 0xfe, 0xf3, 0xa4, 0x07, 0x8c, 0xd6, + 0x05, 0x93, 0xda, 0x9d, 0xb6, 0x6f, 0xe4, 0x89, 0x7c, 0xdd, 0x45, 0xd2, 0x60, 0x94, 0xeb, 0xd4, + 0xd6, 0xa6, 0x5c, 0x97, 0xed, 0x43, 0xee, 0x41, 0x63, 0xa0, 0x3e, 0xcf, 0xa1, 0xcd, 0xe4, 0xb1, + 0x55, 0x7b, 0x29, 0xb4, 0xdb, 0xe6, 0x09, 0x1a, 0xa0, 0xfb, 0xb0, 0x42, 0x95, 0x97, 0x2c, 0x94, + 0xe8, 0xa6, 0xbd, 0xb5, 0xd9, 0x9b, 0x46, 0x3a, 0x0d, 0xd0, 0xcf, 0x60, 0x73, 0x60, 0x7e, 0x46, + 0x42, 0x1f, 0x6b, 0x52, 0xf3, 0xcf, 0x38, 0x36, 0xbe, 0x8a, 0x85, 0x06, 0xe8, 0x0c, 0x6e, 0x0e, + 0x8a, 0xde, 0x64, 0xd0, 0x27, 0xe9, 0x07, 0x0a, 0x1f, 0x8b, 0xec, 0xdb, 0x57, 0x33, 0xd1, 0x00, + 0x3d, 0x03, 0x14, 0xe5, 0x1e, 0x26, 0xd0, 0x96, 0x58, 0x6b, 0x7c, 0x74, 0xb1, 0x3f, 0x2c, 0x99, + 0xa5, 0x01, 0xea, 0x43, 0x7b, 0x50, 0xd0, 0xf5, 0x46, 0x38, 0xf3, 0x32, 0x6e, 0xec, 0xf8, 0xdb, + 0x9f, 0x5c, 0xc9, 0xc3, 0x71, 0x0f, 0x72, 0x6d, 0x5b, 0x89, 0xdb, 0xd8, 0x75, 0x96, 0xb8, 0x0b, + 0xfa, 0xbd, 0xcf, 0x61, 0x7d, 0x90, 0xef, 0x63, 0x22, 0xf3, 0x2a, 0x79, 0xca, 0x6e, 0x95, 0x4d, + 0xd3, 0x00, 0x1d, 0x41, 0xf3, 0x3c, 0xdb, 0x98, 0x43, 0xc9, 0xdf, 0x03, 0xf2, 0xfd, 0x49, 0xdb, + 0x2e, 0x9a, 0x92, 0x2a, 0x6b, 0x9d, 0x2e, 0x55, 0xe5, 0x7c, 0xf3, 0x4d, 0x55, 0xd9, 0xd4, 0x22, + 0x3b, 0x86, 0xb5, 0xa1, 0xde, 0xfc, 0x41, 0x1f, 0x24, 0xfd, 0x1a, 0x43, 0x37, 0xcb, 0xde, 0x2a, + 0x9e, 0xe4, 0xdf, 0x1b, 0xe8, 0x8d, 0x15, 0xf9, 0x3d, 0x53, 0x8f, 0xc7, 0xde, 0x2a, 0x9e, 0xe4, + 0x8e, 0xaa, 0xe6, 0xff, 0xd2, 0x51, 0xb5, 0x1a, 0xc3, 0xde, 0x34, 0xd2, 0x69, 0x80, 0x3e, 0x83, + 0xa5, 0x84, 0x86, 0x90, 0xc6, 0x14, 0x2f, 0x5c, 0xcf, 0xd1, 0x78, 0x68, 0x92, 0x31, 0x03, 0xe9, + 0x1c, 0x54, 0x0d, 0x4d, 0xd9, 0x32, 0xfb, 0x99, 0x2c, 0xfe, 0x94, 0xba, 0x50, 0x6e, 0x90, 0xb1, + 0x3e, 0x95, 0x1b, 0x64, 0x2e, 0x28, 0xe3, 0xd3, 0xa3, 0xd5, 0x71, 0xf2, 0xf4, 0xe4, 0xeb, 0x4c, + 0x79, 0x7a, 0x0c, 0xa5, 0x5f, 0x1c, 0xe5, 0x95, 0x62, 0x4d, 0x46, 0xf9, 0x6c, 0x39, 0x28, 0xa3, + 0xbc, 0x56, 0xd7, 0xc5, 0xaa, 0xe5, 0xcb, 0x91, 0x02, 0x77, 0x13, 0x79, 0x70, 0x81, 0xbb, 0xc9, + 0xd4, 0xf4, 0x05, 0xb4, 0x8c, 0xf9, 0x38, 0xfa, 0x48, 0xac, 0x2b, 0xaa, 0x1d, 0xec, 0xed, 0x72, + 0x06, 0x0e, 0x37, 0x9f, 0x10, 0x4b, 0xb8, 0xc6, 0xb4, 0x5d, 0xc2, 0x2d, 0xc8, 0xa4, 0xef, 0xc3, + 0x8a, 0x9a, 0xac, 0xca, 0xa3, 0xa8, 0x25, 0xcb, 0xf2, 0x28, 0xe6, 0x32, 0xdb, 0x23, 0x68, 0x6a, + 0xe9, 0x91, 0xdc, 0xca, 0x7c, 0x0a, 0x27, 0xb7, 0xd2, 0x94, 0x51, 0xbd, 0x80, 0x96, 0x31, 0xdd, + 0x92, 0x96, 0x2b, 0x4a, 0x0c, 0xa5, 0xe5, 0x8a, 0xb3, 0xb5, 0x7b, 0x50, 0x97, 0x64, 0x79, 0xf6, + 0xd5, 0xd4, 0x46, 0x9e, 0xfd, 0x6c, 0x06, 0x72, 0x04, 0x4d, 0xed, 0xa3, 0x52, 0xbb, 0x7c, 0x7a, + 0x24, 0xb5, 0x33, 0xe4, 0x32, 0x7b, 0xcd, 0x17, 0x8d, 0x1d, 0xfe, 0x77, 0xb1, 0xcf, 0xd9, 0xef, + 0x17, 0x0b, 0xec, 0xbf, 0x60, 0x9f, 0xfd, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x2b, 0x24, 0xa7, + 0x4a, 0x26, 0x00, 0x00, +} diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 082c19209..201bf6ef5 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -318,6 +318,68 @@ message AddGroupMembersCMSResp { repeated string failed = 2; } +message DismissGroupReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; +} + +message DismissGroupResp{ + CommonResp commonResp = 1; +} + + +message MuteGroupMemberReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; + string userID = 4; + uint32 mutedSeconds = 5; +} + +message MuteGroupMemberResp{ + CommonResp commonResp = 1; +} + + + +message CancelMuteGroupMemberReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; + string userID = 4; +} + +message CancelMuteGroupMemberResp{ + CommonResp commonResp = 1; +} + + +message MuteGroupReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; +} + +message MuteGroupResp{ + CommonResp commonResp = 1; +} + + + +message CancelMuteGroupReq{ + string opUserID = 1; //group or app manager + string operationID = 2; + string groupID = 3; +} + +message CancelMuteGroupResp{ + CommonResp commonResp = 1; +} + + + + service group{ rpc createGroup(CreateGroupReq) returns(CreateGroupResp); @@ -345,6 +407,12 @@ service group{ rpc GetGroupMembersCMS(GetGroupMembersCMSReq) returns(GetGroupMembersCMSResp); rpc RemoveGroupMembersCMS(RemoveGroupMembersCMSReq) returns(RemoveGroupMembersCMSResp); rpc AddGroupMembersCMS(AddGroupMembersCMSReq) returns(AddGroupMembersCMSResp); + + rpc DismissGroup(DismissGroupReq) returns(DismissGroupResp); + rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp); + rpc CancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp); + rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp); + rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp); } diff --git a/pkg/proto/office/office.pb.go b/pkg/proto/office/office.pb.go new file mode 100644 index 000000000..b7ee98a38 --- /dev/null +++ b/pkg/proto/office/office.pb.go @@ -0,0 +1,1174 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: office/office.proto + +package office // import "./office" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import sdk_ws "Open_IM/pkg/proto/sdk_ws" + +import ( + context "golang.org/x/net/context" + grpc "google.golang.org/grpc" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package + +type CommonResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommonResp) Reset() { *m = CommonResp{} } +func (m *CommonResp) String() string { return proto.CompactTextString(m) } +func (*CommonResp) ProtoMessage() {} +func (*CommonResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{0} +} +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) +} +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) +} +func (dst *CommonResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonResp.Merge(dst, src) +} +func (m *CommonResp) XXX_Size() int { + return xxx_messageInfo_CommonResp.Size(m) +} +func (m *CommonResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommonResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *CommonResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +type TagUser struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TagUser) Reset() { *m = TagUser{} } +func (m *TagUser) String() string { return proto.CompactTextString(m) } +func (*TagUser) ProtoMessage() {} +func (*TagUser) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{1} +} +func (m *TagUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TagUser.Unmarshal(m, b) +} +func (m *TagUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TagUser.Marshal(b, m, deterministic) +} +func (dst *TagUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_TagUser.Merge(dst, src) +} +func (m *TagUser) XXX_Size() int { + return xxx_messageInfo_TagUser.Size(m) +} +func (m *TagUser) XXX_DiscardUnknown() { + xxx_messageInfo_TagUser.DiscardUnknown(m) +} + +var xxx_messageInfo_TagUser proto.InternalMessageInfo + +func (m *TagUser) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *TagUser) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +type Tag struct { + TagID string `protobuf:"bytes,1,opt,name=tagID" json:"tagID,omitempty"` + TagName string `protobuf:"bytes,2,opt,name=tagName" json:"tagName,omitempty"` + UserList []*TagUser `protobuf:"bytes,3,rep,name=userList" json:"userList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Tag) Reset() { *m = Tag{} } +func (m *Tag) String() string { return proto.CompactTextString(m) } +func (*Tag) ProtoMessage() {} +func (*Tag) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{2} +} +func (m *Tag) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Tag.Unmarshal(m, b) +} +func (m *Tag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Tag.Marshal(b, m, deterministic) +} +func (dst *Tag) XXX_Merge(src proto.Message) { + xxx_messageInfo_Tag.Merge(dst, src) +} +func (m *Tag) XXX_Size() int { + return xxx_messageInfo_Tag.Size(m) +} +func (m *Tag) XXX_DiscardUnknown() { + xxx_messageInfo_Tag.DiscardUnknown(m) +} + +var xxx_messageInfo_Tag proto.InternalMessageInfo + +func (m *Tag) GetTagID() string { + if m != nil { + return m.TagID + } + return "" +} + +func (m *Tag) GetTagName() string { + if m != nil { + return m.TagName + } + return "" +} + +func (m *Tag) GetUserList() []*TagUser { + if m != nil { + return m.UserList + } + return nil +} + +type GetUserTagsReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserTagsReq) Reset() { *m = GetUserTagsReq{} } +func (m *GetUserTagsReq) String() string { return proto.CompactTextString(m) } +func (*GetUserTagsReq) ProtoMessage() {} +func (*GetUserTagsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{3} +} +func (m *GetUserTagsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserTagsReq.Unmarshal(m, b) +} +func (m *GetUserTagsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserTagsReq.Marshal(b, m, deterministic) +} +func (dst *GetUserTagsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserTagsReq.Merge(dst, src) +} +func (m *GetUserTagsReq) XXX_Size() int { + return xxx_messageInfo_GetUserTagsReq.Size(m) +} +func (m *GetUserTagsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserTagsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserTagsReq proto.InternalMessageInfo + +func (m *GetUserTagsReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUserTagsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUserTagsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Tags []*Tag `protobuf:"bytes,2,rep,name=tags" json:"tags,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserTagsResp) Reset() { *m = GetUserTagsResp{} } +func (m *GetUserTagsResp) String() string { return proto.CompactTextString(m) } +func (*GetUserTagsResp) ProtoMessage() {} +func (*GetUserTagsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{4} +} +func (m *GetUserTagsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserTagsResp.Unmarshal(m, b) +} +func (m *GetUserTagsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserTagsResp.Marshal(b, m, deterministic) +} +func (dst *GetUserTagsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserTagsResp.Merge(dst, src) +} +func (m *GetUserTagsResp) XXX_Size() int { + return xxx_messageInfo_GetUserTagsResp.Size(m) +} +func (m *GetUserTagsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserTagsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserTagsResp proto.InternalMessageInfo + +func (m *GetUserTagsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserTagsResp) GetTags() []*Tag { + if m != nil { + return m.Tags + } + return nil +} + +type CreateTagReq struct { + TagName string `protobuf:"bytes,1,opt,name=tagName" json:"tagName,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + UserIDList []string `protobuf:"bytes,3,rep,name=userIDList" json:"userIDList,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateTagReq) Reset() { *m = CreateTagReq{} } +func (m *CreateTagReq) String() string { return proto.CompactTextString(m) } +func (*CreateTagReq) ProtoMessage() {} +func (*CreateTagReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{5} +} +func (m *CreateTagReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateTagReq.Unmarshal(m, b) +} +func (m *CreateTagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateTagReq.Marshal(b, m, deterministic) +} +func (dst *CreateTagReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateTagReq.Merge(dst, src) +} +func (m *CreateTagReq) XXX_Size() int { + return xxx_messageInfo_CreateTagReq.Size(m) +} +func (m *CreateTagReq) XXX_DiscardUnknown() { + xxx_messageInfo_CreateTagReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateTagReq proto.InternalMessageInfo + +func (m *CreateTagReq) GetTagName() string { + if m != nil { + return m.TagName + } + return "" +} + +func (m *CreateTagReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *CreateTagReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList + } + return nil +} + +func (m *CreateTagReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type CreateTagResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateTagResp) Reset() { *m = CreateTagResp{} } +func (m *CreateTagResp) String() string { return proto.CompactTextString(m) } +func (*CreateTagResp) ProtoMessage() {} +func (*CreateTagResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{6} +} +func (m *CreateTagResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateTagResp.Unmarshal(m, b) +} +func (m *CreateTagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateTagResp.Marshal(b, m, deterministic) +} +func (dst *CreateTagResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateTagResp.Merge(dst, src) +} +func (m *CreateTagResp) XXX_Size() int { + return xxx_messageInfo_CreateTagResp.Size(m) +} +func (m *CreateTagResp) XXX_DiscardUnknown() { + xxx_messageInfo_CreateTagResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateTagResp proto.InternalMessageInfo + +func (m *CreateTagResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type DeleteTagReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + TagID string `protobuf:"bytes,2,opt,name=tagID" json:"tagID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteTagReq) Reset() { *m = DeleteTagReq{} } +func (m *DeleteTagReq) String() string { return proto.CompactTextString(m) } +func (*DeleteTagReq) ProtoMessage() {} +func (*DeleteTagReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{7} +} +func (m *DeleteTagReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteTagReq.Unmarshal(m, b) +} +func (m *DeleteTagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteTagReq.Marshal(b, m, deterministic) +} +func (dst *DeleteTagReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteTagReq.Merge(dst, src) +} +func (m *DeleteTagReq) XXX_Size() int { + return xxx_messageInfo_DeleteTagReq.Size(m) +} +func (m *DeleteTagReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteTagReq.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteTagReq proto.InternalMessageInfo + +func (m *DeleteTagReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *DeleteTagReq) GetTagID() string { + if m != nil { + return m.TagID + } + return "" +} + +func (m *DeleteTagReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type DeleteTagResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteTagResp) Reset() { *m = DeleteTagResp{} } +func (m *DeleteTagResp) String() string { return proto.CompactTextString(m) } +func (*DeleteTagResp) ProtoMessage() {} +func (*DeleteTagResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{8} +} +func (m *DeleteTagResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteTagResp.Unmarshal(m, b) +} +func (m *DeleteTagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteTagResp.Marshal(b, m, deterministic) +} +func (dst *DeleteTagResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteTagResp.Merge(dst, src) +} +func (m *DeleteTagResp) XXX_Size() int { + return xxx_messageInfo_DeleteTagResp.Size(m) +} +func (m *DeleteTagResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteTagResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteTagResp proto.InternalMessageInfo + +func (m *DeleteTagResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SetTagReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + TagID string `protobuf:"bytes,2,opt,name=tagID" json:"tagID,omitempty"` + NewName string `protobuf:"bytes,3,opt,name=newName" json:"newName,omitempty"` + IncreaseUserIDList []string `protobuf:"bytes,4,rep,name=increaseUserIDList" json:"increaseUserIDList,omitempty"` + ReduceUserIDList []string `protobuf:"bytes,5,rep,name=reduceUserIDList" json:"reduceUserIDList,omitempty"` + OperationID string `protobuf:"bytes,6,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetTagReq) Reset() { *m = SetTagReq{} } +func (m *SetTagReq) String() string { return proto.CompactTextString(m) } +func (*SetTagReq) ProtoMessage() {} +func (*SetTagReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{9} +} +func (m *SetTagReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetTagReq.Unmarshal(m, b) +} +func (m *SetTagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetTagReq.Marshal(b, m, deterministic) +} +func (dst *SetTagReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetTagReq.Merge(dst, src) +} +func (m *SetTagReq) XXX_Size() int { + return xxx_messageInfo_SetTagReq.Size(m) +} +func (m *SetTagReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetTagReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetTagReq proto.InternalMessageInfo + +func (m *SetTagReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *SetTagReq) GetTagID() string { + if m != nil { + return m.TagID + } + return "" +} + +func (m *SetTagReq) GetNewName() string { + if m != nil { + return m.NewName + } + return "" +} + +func (m *SetTagReq) GetIncreaseUserIDList() []string { + if m != nil { + return m.IncreaseUserIDList + } + return nil +} + +func (m *SetTagReq) GetReduceUserIDList() []string { + if m != nil { + return m.ReduceUserIDList + } + return nil +} + +func (m *SetTagReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SetTagResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetTagResp) Reset() { *m = SetTagResp{} } +func (m *SetTagResp) String() string { return proto.CompactTextString(m) } +func (*SetTagResp) ProtoMessage() {} +func (*SetTagResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{10} +} +func (m *SetTagResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetTagResp.Unmarshal(m, b) +} +func (m *SetTagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetTagResp.Marshal(b, m, deterministic) +} +func (dst *SetTagResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetTagResp.Merge(dst, src) +} +func (m *SetTagResp) XXX_Size() int { + return xxx_messageInfo_SetTagResp.Size(m) +} +func (m *SetTagResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetTagResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetTagResp proto.InternalMessageInfo + +func (m *SetTagResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SendMsg2TagReq struct { + TagID string `protobuf:"bytes,1,opt,name=tagID" json:"tagID,omitempty"` + SendID string `protobuf:"bytes,2,opt,name=sendID" json:"sendID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,3,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content" json:"content,omitempty"` + ContentType int32 `protobuf:"varint,5,opt,name=contentType" json:"contentType,omitempty"` + OperationID string `protobuf:"bytes,6,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SendMsg2TagReq) Reset() { *m = SendMsg2TagReq{} } +func (m *SendMsg2TagReq) String() string { return proto.CompactTextString(m) } +func (*SendMsg2TagReq) ProtoMessage() {} +func (*SendMsg2TagReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{11} +} +func (m *SendMsg2TagReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendMsg2TagReq.Unmarshal(m, b) +} +func (m *SendMsg2TagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendMsg2TagReq.Marshal(b, m, deterministic) +} +func (dst *SendMsg2TagReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendMsg2TagReq.Merge(dst, src) +} +func (m *SendMsg2TagReq) XXX_Size() int { + return xxx_messageInfo_SendMsg2TagReq.Size(m) +} +func (m *SendMsg2TagReq) XXX_DiscardUnknown() { + xxx_messageInfo_SendMsg2TagReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SendMsg2TagReq proto.InternalMessageInfo + +func (m *SendMsg2TagReq) GetTagID() string { + if m != nil { + return m.TagID + } + return "" +} + +func (m *SendMsg2TagReq) GetSendID() string { + if m != nil { + return m.SendID + } + return "" +} + +func (m *SendMsg2TagReq) GetSenderPlatformID() int32 { + if m != nil { + return m.SenderPlatformID + } + return 0 +} + +func (m *SendMsg2TagReq) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *SendMsg2TagReq) GetContentType() int32 { + if m != nil { + return m.ContentType + } + return 0 +} + +func (m *SendMsg2TagReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SendMsg2TagResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SendMsg2TagResp) Reset() { *m = SendMsg2TagResp{} } +func (m *SendMsg2TagResp) String() string { return proto.CompactTextString(m) } +func (*SendMsg2TagResp) ProtoMessage() {} +func (*SendMsg2TagResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{12} +} +func (m *SendMsg2TagResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendMsg2TagResp.Unmarshal(m, b) +} +func (m *SendMsg2TagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendMsg2TagResp.Marshal(b, m, deterministic) +} +func (dst *SendMsg2TagResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendMsg2TagResp.Merge(dst, src) +} +func (m *SendMsg2TagResp) XXX_Size() int { + return xxx_messageInfo_SendMsg2TagResp.Size(m) +} +func (m *SendMsg2TagResp) XXX_DiscardUnknown() { + xxx_messageInfo_SendMsg2TagResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SendMsg2TagResp proto.InternalMessageInfo + +func (m *SendMsg2TagResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetTagSendLogsReq struct { + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination" json:"Pagination,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetTagSendLogsReq) Reset() { *m = GetTagSendLogsReq{} } +func (m *GetTagSendLogsReq) String() string { return proto.CompactTextString(m) } +func (*GetTagSendLogsReq) ProtoMessage() {} +func (*GetTagSendLogsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{13} +} +func (m *GetTagSendLogsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetTagSendLogsReq.Unmarshal(m, b) +} +func (m *GetTagSendLogsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetTagSendLogsReq.Marshal(b, m, deterministic) +} +func (dst *GetTagSendLogsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetTagSendLogsReq.Merge(dst, src) +} +func (m *GetTagSendLogsReq) XXX_Size() int { + return xxx_messageInfo_GetTagSendLogsReq.Size(m) +} +func (m *GetTagSendLogsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetTagSendLogsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetTagSendLogsReq proto.InternalMessageInfo + +func (m *GetTagSendLogsReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetTagSendLogsReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetTagSendLogsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type TagSendLog struct { + TagID string `protobuf:"bytes,1,opt,name=tagID" json:"tagID,omitempty"` + TagName string `protobuf:"bytes,2,opt,name=tagName" json:"tagName,omitempty"` + ContentType int32 `protobuf:"varint,3,opt,name=contentType" json:"contentType,omitempty"` + Content string `protobuf:"bytes,4,opt,name=content" json:"content,omitempty"` + SendTime int64 `protobuf:"varint,5,opt,name=sendTime" json:"sendTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TagSendLog) Reset() { *m = TagSendLog{} } +func (m *TagSendLog) String() string { return proto.CompactTextString(m) } +func (*TagSendLog) ProtoMessage() {} +func (*TagSendLog) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{14} +} +func (m *TagSendLog) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TagSendLog.Unmarshal(m, b) +} +func (m *TagSendLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TagSendLog.Marshal(b, m, deterministic) +} +func (dst *TagSendLog) XXX_Merge(src proto.Message) { + xxx_messageInfo_TagSendLog.Merge(dst, src) +} +func (m *TagSendLog) XXX_Size() int { + return xxx_messageInfo_TagSendLog.Size(m) +} +func (m *TagSendLog) XXX_DiscardUnknown() { + xxx_messageInfo_TagSendLog.DiscardUnknown(m) +} + +var xxx_messageInfo_TagSendLog proto.InternalMessageInfo + +func (m *TagSendLog) GetTagID() string { + if m != nil { + return m.TagID + } + return "" +} + +func (m *TagSendLog) GetTagName() string { + if m != nil { + return m.TagName + } + return "" +} + +func (m *TagSendLog) GetContentType() int32 { + if m != nil { + return m.ContentType + } + return 0 +} + +func (m *TagSendLog) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *TagSendLog) GetSendTime() int64 { + if m != nil { + return m.SendTime + } + return 0 +} + +type GetTagSendLogsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + TagSendLogs []*TagSendLog `protobuf:"bytes,3,rep,name=tagSendLogs" json:"tagSendLogs,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetTagSendLogsResp) Reset() { *m = GetTagSendLogsResp{} } +func (m *GetTagSendLogsResp) String() string { return proto.CompactTextString(m) } +func (*GetTagSendLogsResp) ProtoMessage() {} +func (*GetTagSendLogsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_office_8580c3f7b2871da9, []int{15} +} +func (m *GetTagSendLogsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetTagSendLogsResp.Unmarshal(m, b) +} +func (m *GetTagSendLogsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetTagSendLogsResp.Marshal(b, m, deterministic) +} +func (dst *GetTagSendLogsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetTagSendLogsResp.Merge(dst, src) +} +func (m *GetTagSendLogsResp) XXX_Size() int { + return xxx_messageInfo_GetTagSendLogsResp.Size(m) +} +func (m *GetTagSendLogsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetTagSendLogsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetTagSendLogsResp proto.InternalMessageInfo + +func (m *GetTagSendLogsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetTagSendLogsResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetTagSendLogsResp) GetTagSendLogs() []*TagSendLog { + if m != nil { + return m.TagSendLogs + } + return nil +} + +func init() { + proto.RegisterType((*CommonResp)(nil), "office.CommonResp") + proto.RegisterType((*TagUser)(nil), "office.TagUser") + proto.RegisterType((*Tag)(nil), "office.Tag") + proto.RegisterType((*GetUserTagsReq)(nil), "office.GetUserTagsReq") + proto.RegisterType((*GetUserTagsResp)(nil), "office.GetUserTagsResp") + proto.RegisterType((*CreateTagReq)(nil), "office.CreateTagReq") + proto.RegisterType((*CreateTagResp)(nil), "office.CreateTagResp") + proto.RegisterType((*DeleteTagReq)(nil), "office.DeleteTagReq") + proto.RegisterType((*DeleteTagResp)(nil), "office.DeleteTagResp") + proto.RegisterType((*SetTagReq)(nil), "office.SetTagReq") + proto.RegisterType((*SetTagResp)(nil), "office.SetTagResp") + proto.RegisterType((*SendMsg2TagReq)(nil), "office.SendMsg2TagReq") + proto.RegisterType((*SendMsg2TagResp)(nil), "office.SendMsg2TagResp") + proto.RegisterType((*GetTagSendLogsReq)(nil), "office.GetTagSendLogsReq") + proto.RegisterType((*TagSendLog)(nil), "office.TagSendLog") + proto.RegisterType((*GetTagSendLogsResp)(nil), "office.GetTagSendLogsResp") +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// Client API for OfficeService service + +type OfficeServiceClient interface { + GetUserTags(ctx context.Context, in *GetUserTagsReq, opts ...grpc.CallOption) (*GetUserTagsResp, error) + CreateTag(ctx context.Context, in *CreateTagReq, opts ...grpc.CallOption) (*CreateTagResp, error) + DeleteTag(ctx context.Context, in *DeleteTagReq, opts ...grpc.CallOption) (*DeleteTagResp, error) + SetTag(ctx context.Context, in *SetTagReq, opts ...grpc.CallOption) (*SetTagResp, error) + SendMsg2Tag(ctx context.Context, in *SendMsg2TagReq, opts ...grpc.CallOption) (*SendMsg2TagResp, error) + GetTagSendLogs(ctx context.Context, in *GetTagSendLogsReq, opts ...grpc.CallOption) (*GetTagSendLogsResp, error) +} + +type officeServiceClient struct { + cc *grpc.ClientConn +} + +func NewOfficeServiceClient(cc *grpc.ClientConn) OfficeServiceClient { + return &officeServiceClient{cc} +} + +func (c *officeServiceClient) GetUserTags(ctx context.Context, in *GetUserTagsReq, opts ...grpc.CallOption) (*GetUserTagsResp, error) { + out := new(GetUserTagsResp) + err := grpc.Invoke(ctx, "/office.OfficeService/GetUserTags", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) CreateTag(ctx context.Context, in *CreateTagReq, opts ...grpc.CallOption) (*CreateTagResp, error) { + out := new(CreateTagResp) + err := grpc.Invoke(ctx, "/office.OfficeService/CreateTag", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) DeleteTag(ctx context.Context, in *DeleteTagReq, opts ...grpc.CallOption) (*DeleteTagResp, error) { + out := new(DeleteTagResp) + err := grpc.Invoke(ctx, "/office.OfficeService/DeleteTag", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) SetTag(ctx context.Context, in *SetTagReq, opts ...grpc.CallOption) (*SetTagResp, error) { + out := new(SetTagResp) + err := grpc.Invoke(ctx, "/office.OfficeService/SetTag", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) SendMsg2Tag(ctx context.Context, in *SendMsg2TagReq, opts ...grpc.CallOption) (*SendMsg2TagResp, error) { + out := new(SendMsg2TagResp) + err := grpc.Invoke(ctx, "/office.OfficeService/SendMsg2Tag", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *officeServiceClient) GetTagSendLogs(ctx context.Context, in *GetTagSendLogsReq, opts ...grpc.CallOption) (*GetTagSendLogsResp, error) { + out := new(GetTagSendLogsResp) + err := grpc.Invoke(ctx, "/office.OfficeService/GetTagSendLogs", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for OfficeService service + +type OfficeServiceServer interface { + GetUserTags(context.Context, *GetUserTagsReq) (*GetUserTagsResp, error) + CreateTag(context.Context, *CreateTagReq) (*CreateTagResp, error) + DeleteTag(context.Context, *DeleteTagReq) (*DeleteTagResp, error) + SetTag(context.Context, *SetTagReq) (*SetTagResp, error) + SendMsg2Tag(context.Context, *SendMsg2TagReq) (*SendMsg2TagResp, error) + GetTagSendLogs(context.Context, *GetTagSendLogsReq) (*GetTagSendLogsResp, error) +} + +func RegisterOfficeServiceServer(s *grpc.Server, srv OfficeServiceServer) { + s.RegisterService(&_OfficeService_serviceDesc, srv) +} + +func _OfficeService_GetUserTags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserTagsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).GetUserTags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/GetUserTags", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).GetUserTags(ctx, req.(*GetUserTagsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_CreateTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateTagReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).CreateTag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/CreateTag", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).CreateTag(ctx, req.(*CreateTagReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_DeleteTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteTagReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).DeleteTag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/DeleteTag", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).DeleteTag(ctx, req.(*DeleteTagReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_SetTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetTagReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).SetTag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/SetTag", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).SetTag(ctx, req.(*SetTagReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_SendMsg2Tag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMsg2TagReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).SendMsg2Tag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/SendMsg2Tag", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).SendMsg2Tag(ctx, req.(*SendMsg2TagReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _OfficeService_GetTagSendLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTagSendLogsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OfficeServiceServer).GetTagSendLogs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/office.OfficeService/GetTagSendLogs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OfficeServiceServer).GetTagSendLogs(ctx, req.(*GetTagSendLogsReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _OfficeService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "office.OfficeService", + HandlerType: (*OfficeServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetUserTags", + Handler: _OfficeService_GetUserTags_Handler, + }, + { + MethodName: "CreateTag", + Handler: _OfficeService_CreateTag_Handler, + }, + { + MethodName: "DeleteTag", + Handler: _OfficeService_DeleteTag_Handler, + }, + { + MethodName: "SetTag", + Handler: _OfficeService_SetTag_Handler, + }, + { + MethodName: "SendMsg2Tag", + Handler: _OfficeService_SendMsg2Tag_Handler, + }, + { + MethodName: "GetTagSendLogs", + Handler: _OfficeService_GetTagSendLogs_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "office/office.proto", +} + +func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_8580c3f7b2871da9) } + +var fileDescriptor_office_8580c3f7b2871da9 = []byte{ + // 751 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xc1, 0x6e, 0xd3, 0x4c, + 0x10, 0x96, 0x93, 0x26, 0x6d, 0x26, 0x6d, 0xf3, 0x77, 0xff, 0x52, 0x82, 0x0f, 0x10, 0x2c, 0x90, + 0x2a, 0x90, 0x12, 0x29, 0x70, 0x40, 0x42, 0x54, 0x88, 0xa4, 0xaa, 0x8a, 0x5a, 0x5a, 0x6d, 0xd3, + 0x0b, 0x07, 0xa2, 0x6d, 0x32, 0xb1, 0xac, 0x36, 0xb6, 0xbb, 0xbb, 0x6d, 0xc5, 0x95, 0x57, 0x80, + 0x57, 0x42, 0xe2, 0xca, 0x03, 0x21, 0x21, 0xaf, 0xd7, 0xf6, 0xda, 0x49, 0x04, 0xe4, 0x94, 0x9d, + 0xd9, 0x99, 0xc9, 0xf7, 0x7d, 0xb3, 0x3b, 0x6b, 0xf8, 0x3f, 0x98, 0x4c, 0xbc, 0x11, 0x76, 0xe2, + 0x9f, 0x76, 0xc8, 0x03, 0x19, 0x90, 0x6a, 0x6c, 0xd9, 0x8f, 0x4f, 0x42, 0xf4, 0x87, 0x87, 0xc7, + 0x9d, 0xf0, 0xd2, 0xed, 0xa8, 0xad, 0x8e, 0x18, 0x5f, 0x0e, 0xef, 0x44, 0xe7, 0x4e, 0xc4, 0xa1, + 0xce, 0x1e, 0x40, 0x2f, 0x98, 0x4e, 0x03, 0x9f, 0xa2, 0x08, 0x49, 0x13, 0x56, 0x91, 0xf3, 0x5e, + 0x30, 0xc6, 0xa6, 0xd5, 0xb2, 0x76, 0x2b, 0x34, 0x31, 0xc9, 0x0e, 0x54, 0x91, 0xf3, 0x63, 0xe1, + 0x36, 0x4b, 0x2d, 0x6b, 0xb7, 0x46, 0xb5, 0xe5, 0xbc, 0x81, 0xd5, 0x01, 0x73, 0xcf, 0x05, 0xf2, + 0x28, 0xe4, 0x46, 0x20, 0x3f, 0xec, 0xab, 0xdc, 0x1a, 0xd5, 0x16, 0xb1, 0x61, 0x2d, 0x5a, 0x7d, + 0x60, 0x53, 0xd4, 0xc9, 0xa9, 0xed, 0x5c, 0x40, 0x79, 0xc0, 0x5c, 0xb2, 0x0d, 0x15, 0xc9, 0xdc, + 0x34, 0x33, 0x36, 0x22, 0x34, 0x92, 0xb9, 0x46, 0x5e, 0x62, 0x92, 0xe7, 0x71, 0xc9, 0x23, 0x4f, + 0xc8, 0x66, 0xb9, 0x55, 0xde, 0xad, 0x77, 0x1b, 0x6d, 0xad, 0x80, 0x46, 0x43, 0xd3, 0x00, 0xe7, + 0x3d, 0x6c, 0x1e, 0xa0, 0x8c, 0x9c, 0x03, 0xe6, 0x0a, 0x8a, 0xd7, 0x0b, 0x91, 0xb6, 0xa0, 0x1e, + 0x84, 0xc8, 0x99, 0xf4, 0x02, 0xff, 0xb0, 0xaf, 0xff, 0xd4, 0x74, 0x39, 0x13, 0x68, 0xe4, 0x6a, + 0x89, 0x90, 0x74, 0x01, 0x46, 0xa9, 0x82, 0xaa, 0x60, 0xbd, 0x4b, 0x12, 0x34, 0x99, 0xb6, 0xd4, + 0x88, 0x22, 0x8f, 0x60, 0x45, 0x32, 0x57, 0x34, 0x4b, 0x0a, 0x7b, 0xdd, 0xc0, 0x4e, 0xd5, 0x86, + 0xf3, 0xc5, 0x82, 0xf5, 0x1e, 0x47, 0x26, 0x31, 0xf2, 0xe1, 0xb5, 0xa9, 0x85, 0x95, 0xd7, 0x22, + 0x23, 0x53, 0xca, 0x91, 0x79, 0x08, 0x10, 0xaf, 0x52, 0x95, 0x6a, 0xd4, 0xf0, 0x14, 0xc9, 0xae, + 0xcc, 0x92, 0xed, 0xc1, 0x86, 0x81, 0x61, 0x39, 0xaa, 0xce, 0x27, 0x58, 0xef, 0xe3, 0x15, 0xa6, + 0x44, 0x16, 0x69, 0x9f, 0x1e, 0x81, 0x92, 0x79, 0x04, 0x0a, 0x20, 0xcb, 0x73, 0x41, 0x1a, 0xf5, + 0x97, 0x04, 0xf9, 0xd3, 0x82, 0xda, 0x19, 0xca, 0xa5, 0x20, 0x36, 0x61, 0xd5, 0xc7, 0x3b, 0xd5, + 0x99, 0x18, 0x5e, 0x62, 0x92, 0x36, 0x10, 0xcf, 0x1f, 0x71, 0x64, 0x02, 0xcf, 0xb3, 0x4e, 0xac, + 0xa8, 0x4e, 0xcc, 0xd9, 0x21, 0xcf, 0xe0, 0x3f, 0x8e, 0xe3, 0x9b, 0x91, 0x19, 0x5d, 0x51, 0xd1, + 0x33, 0xfe, 0xa2, 0x30, 0xd5, 0x59, 0x61, 0xde, 0x02, 0x24, 0x94, 0x96, 0x54, 0xe5, 0x87, 0x05, + 0x9b, 0x67, 0xe8, 0x8f, 0x8f, 0x85, 0xdb, 0xd5, 0xd2, 0xcc, 0xbf, 0xa8, 0x3b, 0x50, 0x15, 0xe8, + 0x8f, 0xb3, 0x23, 0x18, 0x5b, 0x11, 0xa1, 0x68, 0x85, 0xfc, 0xf4, 0x8a, 0xc9, 0x49, 0xc0, 0xa7, + 0xba, 0x85, 0x15, 0x3a, 0xe3, 0x8f, 0x64, 0x1c, 0x05, 0xbe, 0x44, 0x5f, 0xea, 0xa3, 0x98, 0x98, + 0x11, 0x55, 0xbd, 0x1c, 0x7c, 0x0e, 0xb1, 0x59, 0x51, 0x05, 0x4c, 0xd7, 0x5f, 0x88, 0xb1, 0x0f, + 0x8d, 0x1c, 0x93, 0x25, 0x15, 0xf9, 0x6a, 0xc1, 0xd6, 0x81, 0x12, 0x35, 0xaa, 0x76, 0x14, 0xc4, + 0xe3, 0xa4, 0x0f, 0x70, 0xca, 0x5c, 0xcf, 0x57, 0x7f, 0xa6, 0x2b, 0x3d, 0x69, 0x0b, 0xe4, 0xb7, + 0xc8, 0x87, 0x2c, 0xf4, 0x86, 0x21, 0xe3, 0x6c, 0x2a, 0xda, 0x14, 0xaf, 0x6f, 0x50, 0xc8, 0x2c, + 0x96, 0x1a, 0x79, 0x0b, 0xef, 0xf1, 0x9f, 0xaf, 0xc0, 0x37, 0x0b, 0x20, 0x83, 0xf4, 0xcf, 0xc3, + 0xb4, 0xa0, 0x6f, 0x79, 0x56, 0xdf, 0xc5, 0xbd, 0xb1, 0x61, 0x2d, 0xea, 0xe4, 0xc0, 0x9b, 0xc6, + 0x8d, 0x29, 0xd3, 0xd4, 0x76, 0xbe, 0x5b, 0x40, 0x8a, 0x62, 0x2d, 0x39, 0x2f, 0xf7, 0x73, 0x0a, + 0x97, 0x54, 0xce, 0xd3, 0xb9, 0x0a, 0x8b, 0x30, 0xf0, 0x05, 0x2e, 0x90, 0xf8, 0x25, 0xd4, 0x65, + 0x86, 0x46, 0xbf, 0x1c, 0xc4, 0x98, 0xbe, 0x7a, 0x8b, 0x9a, 0x61, 0xdd, 0x5f, 0x25, 0xd8, 0x38, + 0x51, 0x21, 0x67, 0xc8, 0x6f, 0xbd, 0x11, 0x92, 0x3d, 0xa8, 0x1b, 0xaf, 0x00, 0xd9, 0x49, 0x2a, + 0xe4, 0x9f, 0x19, 0xfb, 0xfe, 0x5c, 0xbf, 0x08, 0xc9, 0x2b, 0xa8, 0xa5, 0x83, 0x95, 0x6c, 0xa7, + 0xdc, 0x8d, 0x79, 0x6f, 0xdf, 0x9b, 0xe3, 0x8d, 0x33, 0xd3, 0x69, 0x97, 0x65, 0x9a, 0x03, 0x36, + 0xcb, 0xcc, 0x8f, 0xc5, 0x0e, 0x54, 0xe3, 0x71, 0x40, 0xb6, 0x92, 0x80, 0x74, 0xe2, 0xd9, 0xa4, + 0xe8, 0x12, 0x61, 0x44, 0xd2, 0xb8, 0x32, 0x19, 0xc9, 0xfc, 0x44, 0xc8, 0x48, 0x16, 0xef, 0xd7, + 0x81, 0x7a, 0x76, 0x8d, 0xee, 0x93, 0x07, 0x86, 0x1e, 0xf9, 0x2b, 0x64, 0xdb, 0x8b, 0xb6, 0x44, + 0xf8, 0x6e, 0xeb, 0x63, 0xa3, 0xad, 0xbf, 0x6f, 0x5e, 0xc7, 0x3f, 0x17, 0x55, 0xf5, 0xf1, 0xf2, + 0xe2, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x72, 0xfc, 0x2a, 0x94, 0xfe, 0x08, 0x00, 0x00, +} diff --git a/pkg/proto/office/office.proto b/pkg/proto/office/office.proto new file mode 100644 index 000000000..bb0a59b0a --- /dev/null +++ b/pkg/proto/office/office.proto @@ -0,0 +1,107 @@ +syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; +option go_package = "./office;office"; +package office; + +message CommonResp{ + int32 errCode = 1; + string errMsg = 2; +} + +message TagUser { + string userID = 1; + string userName = 2; +} + +message Tag { + string tagID = 1; + string tagName = 2; + repeated TagUser userList = 3; +} + +message GetUserTagsReq{ + string userID = 1; + string operationID = 2; +} + +message GetUserTagsResp{ + CommonResp commonResp = 1; + repeated Tag tags = 2; +} + +message CreateTagReq { + string tagName = 1; + string userID = 2; + repeated string userIDList = 3; + string operationID = 4; +} + +message CreateTagResp { + CommonResp commonResp = 1; +} + +message DeleteTagReq { + string userID = 1; + string tagID = 2; + string operationID = 3; +} + +message DeleteTagResp { + CommonResp commonResp = 1; +} + +message SetTagReq { + string userID = 1; + string tagID = 2; + string newName = 3; + repeated string increaseUserIDList = 4; + repeated string reduceUserIDList = 5; + string operationID = 6; +} + +message SetTagResp { + CommonResp commonResp = 1; +} + +message SendMsg2TagReq { + string tagID = 1; + string sendID = 2; + int32 senderPlatformID = 3; + string content = 4; + int32 contentType = 5; + string operationID = 6; +} + +message SendMsg2TagResp { + CommonResp commonResp = 1; +} + +message GetTagSendLogsReq { + server_api_params.RequestPagination Pagination = 1; + string userID = 2; + string operationID = 3; +} + +message TagSendLog { + string tagID = 1; + string tagName = 2; + int32 contentType = 3; + string content = 4; + int64 sendTime = 5; +} + +message GetTagSendLogsResp { + CommonResp commonResp = 1; + server_api_params.ResponsePagination Pagination = 2; + repeated TagSendLog tagSendLogs = 3; +} + +service OfficeService { + rpc GetUserTags(GetUserTagsReq) returns(GetUserTagsResp); + rpc CreateTag(CreateTagReq) returns(CreateTagResp); + rpc DeleteTag(DeleteTagReq) returns(DeleteTagResp); + rpc SetTag(SetTagReq) returns(SetTagResp); + rpc SendMsg2Tag(SendMsg2TagReq) returns(SendMsg2TagResp); + rpc GetTagSendLogs(GetTagSendLogsReq) returns(GetTagSendLogsResp); +} + diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index 4a9853fbd..bc7945472 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -7,9 +7,9 @@ all_proto=( friend/friend.proto group/group.proto user/user.proto + rtc/rtc.proto chat/chat.proto push/push.proto relay/relay.proto sdk_ws/ws.proto - ) diff --git a/pkg/proto/rtc/rtc.pb.go b/pkg/proto/rtc/rtc.pb.go new file mode 100644 index 000000000..314ec9705 --- /dev/null +++ b/pkg/proto/rtc/rtc.pb.go @@ -0,0 +1,935 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.15.5 +// source: rtc.proto + +package proto + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CommonResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` +} + +func (x *CommonResp) Reset() { + *x = CommonResp{} + if protoimpl.UnsafeEnabled { + mi := &file_rtc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommonResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommonResp) ProtoMessage() {} + +func (x *CommonResp) ProtoReflect() protoreflect.Message { + mi := &file_rtc_proto_msgTypes[0] + 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 CommonResp.ProtoReflect.Descriptor instead. +func (*CommonResp) Descriptor() ([]byte, []int) { + return file_rtc_proto_rawDescGZIP(), []int{0} +} + +func (x *CommonResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode + } + return 0 +} + +func (x *CommonResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg + } + return "" +} + +type GroupInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` + CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID,proto3" json:"creatorUserID,omitempty"` + GroupType int32 `protobuf:"varint,12,opt,name=groupType,proto3" json:"groupType,omitempty"` +} + +func (x *GroupInfo) Reset() { + *x = GroupInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_rtc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupInfo) ProtoMessage() {} + +func (x *GroupInfo) ProtoReflect() protoreflect.Message { + mi := &file_rtc_proto_msgTypes[1] + 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 GroupInfo.ProtoReflect.Descriptor instead. +func (*GroupInfo) Descriptor() ([]byte, []int) { + return file_rtc_proto_rawDescGZIP(), []int{1} +} + +func (x *GroupInfo) GetGroupID() string { + if x != nil { + return x.GroupID + } + return "" +} + +func (x *GroupInfo) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" +} + +func (x *GroupInfo) GetNotification() string { + if x != nil { + return x.Notification + } + return "" +} + +func (x *GroupInfo) GetIntroduction() string { + if x != nil { + return x.Introduction + } + return "" +} + +func (x *GroupInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL + } + return "" +} + +func (x *GroupInfo) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID + } + return "" +} + +func (x *GroupInfo) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime + } + return 0 +} + +func (x *GroupInfo) GetMemberCount() uint32 { + if x != nil { + return x.MemberCount + } + return 0 +} + +func (x *GroupInfo) GetEx() string { + if x != nil { + return x.Ex + } + return "" +} + +func (x *GroupInfo) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GroupInfo) GetCreatorUserID() string { + if x != nil { + return x.CreatorUserID + } + return "" +} + +func (x *GroupInfo) GetGroupType() int32 { + if x != nil { + return x.GroupType + } + return 0 +} + +type GroupMemberFullInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` + RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel,proto3" json:"roleLevel,omitempty"` + JoinTime int32 `protobuf:"varint,4,opt,name=joinTime,proto3" json:"joinTime,omitempty"` + Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,6,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` //if >0 + JoinSource int32 `protobuf:"varint,8,opt,name=joinSource,proto3" json:"joinSource,omitempty"` + OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"` +} + +func (x *GroupMemberFullInfo) Reset() { + *x = GroupMemberFullInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_rtc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupMemberFullInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupMemberFullInfo) ProtoMessage() {} + +func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message { + mi := &file_rtc_proto_msgTypes[2] + 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 GroupMemberFullInfo.ProtoReflect.Descriptor instead. +func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { + return file_rtc_proto_rawDescGZIP(), []int{2} +} + +func (x *GroupMemberFullInfo) GetGroupID() string { + if x != nil { + return x.GroupID + } + return "" +} + +func (x *GroupMemberFullInfo) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *GroupMemberFullInfo) GetRoleLevel() int32 { + if x != nil { + return x.RoleLevel + } + return 0 +} + +func (x *GroupMemberFullInfo) GetJoinTime() int32 { + if x != nil { + return x.JoinTime + } + return 0 +} + +func (x *GroupMemberFullInfo) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *GroupMemberFullInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL + } + return "" +} + +func (x *GroupMemberFullInfo) GetAppMangerLevel() int32 { + if x != nil { + return x.AppMangerLevel + } + return 0 +} + +func (x *GroupMemberFullInfo) GetJoinSource() int32 { + if x != nil { + return x.JoinSource + } + return 0 +} + +func (x *GroupMemberFullInfo) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID + } + return "" +} + +func (x *GroupMemberFullInfo) GetEx() string { + if x != nil { + return x.Ex + } + return "" +} + +type ParticipantMetaData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupInfo *GroupInfo `protobuf:"bytes,1,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"` + GroupMemberInfo *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=groupMemberInfo,proto3" json:"groupMemberInfo,omitempty"` + UserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=userInfo,proto3" json:"userInfo,omitempty"` +} + +func (x *ParticipantMetaData) Reset() { + *x = ParticipantMetaData{} + if protoimpl.UnsafeEnabled { + mi := &file_rtc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParticipantMetaData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParticipantMetaData) ProtoMessage() {} + +func (x *ParticipantMetaData) ProtoReflect() protoreflect.Message { + mi := &file_rtc_proto_msgTypes[3] + 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 ParticipantMetaData.ProtoReflect.Descriptor instead. +func (*ParticipantMetaData) Descriptor() ([]byte, []int) { + return file_rtc_proto_rawDescGZIP(), []int{3} +} + +func (x *ParticipantMetaData) GetGroupInfo() *GroupInfo { + if x != nil { + return x.GroupInfo + } + return nil +} + +func (x *ParticipantMetaData) GetGroupMemberInfo() *GroupMemberFullInfo { + if x != nil { + return x.GroupMemberInfo + } + return nil +} + +func (x *ParticipantMetaData) GetUserInfo() *PublicUserInfo { + if x != nil { + return x.UserInfo + } + return nil +} + +type PublicUserInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + Ex string `protobuf:"bytes,5,opt,name=ex,proto3" json:"ex,omitempty"` +} + +func (x *PublicUserInfo) Reset() { + *x = PublicUserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_rtc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PublicUserInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PublicUserInfo) ProtoMessage() {} + +func (x *PublicUserInfo) ProtoReflect() protoreflect.Message { + mi := &file_rtc_proto_msgTypes[4] + 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 PublicUserInfo.ProtoReflect.Descriptor instead. +func (*PublicUserInfo) Descriptor() ([]byte, []int) { + return file_rtc_proto_rawDescGZIP(), []int{4} +} + +func (x *PublicUserInfo) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *PublicUserInfo) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *PublicUserInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL + } + return "" +} + +func (x *PublicUserInfo) GetGender() int32 { + if x != nil { + return x.Gender + } + return 0 +} + +func (x *PublicUserInfo) GetEx() string { + if x != nil { + return x.Ex + } + return "" +} + +type GetJoinTokenReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Room string `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"` + Identity string `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"` + MetaData *ParticipantMetaData `protobuf:"bytes,3,opt,name=metaData,proto3" json:"metaData,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID,proto3" json:"operationID,omitempty"` +} + +func (x *GetJoinTokenReq) Reset() { + *x = GetJoinTokenReq{} + if protoimpl.UnsafeEnabled { + mi := &file_rtc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetJoinTokenReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetJoinTokenReq) ProtoMessage() {} + +func (x *GetJoinTokenReq) ProtoReflect() protoreflect.Message { + mi := &file_rtc_proto_msgTypes[5] + 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 GetJoinTokenReq.ProtoReflect.Descriptor instead. +func (*GetJoinTokenReq) Descriptor() ([]byte, []int) { + return file_rtc_proto_rawDescGZIP(), []int{5} +} + +func (x *GetJoinTokenReq) GetRoom() string { + if x != nil { + return x.Room + } + return "" +} + +func (x *GetJoinTokenReq) GetIdentity() string { + if x != nil { + return x.Identity + } + return "" +} + +func (x *GetJoinTokenReq) GetMetaData() *ParticipantMetaData { + if x != nil { + return x.MetaData + } + return nil +} + +func (x *GetJoinTokenReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetJoinTokenResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + Jwt string `protobuf:"bytes,2,opt,name=jwt,proto3" json:"jwt,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"` +} + +func (x *GetJoinTokenResp) Reset() { + *x = GetJoinTokenResp{} + if protoimpl.UnsafeEnabled { + mi := &file_rtc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetJoinTokenResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetJoinTokenResp) ProtoMessage() {} + +func (x *GetJoinTokenResp) ProtoReflect() protoreflect.Message { + mi := &file_rtc_proto_msgTypes[6] + 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 GetJoinTokenResp.ProtoReflect.Descriptor instead. +func (*GetJoinTokenResp) Descriptor() ([]byte, []int) { + return file_rtc_proto_rawDescGZIP(), []int{6} +} + +func (x *GetJoinTokenResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + +func (x *GetJoinTokenResp) GetJwt() string { + if x != nil { + return x.Jwt + } + return "" +} + +func (x *GetJoinTokenResp) GetLiveURL() string { + if x != nil { + return x.LiveURL + } + return "" +} + +var File_rtc_proto protoreflect.FileDescriptor + +var file_rtc_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x72, 0x74, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x72, 0x74, 0x63, + 0x22, 0x3e, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x22, 0xf5, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, + 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, + 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb7, 0x02, 0x0a, 0x13, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, + 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, + 0x52, 0x4c, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, + 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, + 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x65, 0x78, 0x22, 0xb8, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x72, 0x74, 0x63, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x86, 0x01, + 0x0a, 0x0e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, + 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, + 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, + 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, + 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x74, 0x63, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6a, 0x77, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6a, 0x77, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, + 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, + 0x55, 0x52, 0x4c, 0x32, 0x49, 0x0a, 0x0a, 0x52, 0x74, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0b, + 0x5a, 0x09, 0x2e, 0x2f, 0x72, 0x74, 0x63, 0x3b, 0x72, 0x74, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_rtc_proto_rawDescOnce sync.Once + file_rtc_proto_rawDescData = file_rtc_proto_rawDesc +) + +func file_rtc_proto_rawDescGZIP() []byte { + file_rtc_proto_rawDescOnce.Do(func() { + file_rtc_proto_rawDescData = protoimpl.X.CompressGZIP(file_rtc_proto_rawDescData) + }) + return file_rtc_proto_rawDescData +} + +var file_rtc_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_rtc_proto_goTypes = []interface{}{ + (*CommonResp)(nil), // 0: rtc.CommonResp + (*GroupInfo)(nil), // 1: rtc.GroupInfo + (*GroupMemberFullInfo)(nil), // 2: rtc.GroupMemberFullInfo + (*ParticipantMetaData)(nil), // 3: rtc.ParticipantMetaData + (*PublicUserInfo)(nil), // 4: rtc.PublicUserInfo + (*GetJoinTokenReq)(nil), // 5: rtc.GetJoinTokenReq + (*GetJoinTokenResp)(nil), // 6: rtc.GetJoinTokenResp +} +var file_rtc_proto_depIdxs = []int32{ + 1, // 0: rtc.ParticipantMetaData.groupInfo:type_name -> rtc.GroupInfo + 2, // 1: rtc.ParticipantMetaData.groupMemberInfo:type_name -> rtc.GroupMemberFullInfo + 4, // 2: rtc.ParticipantMetaData.userInfo:type_name -> rtc.PublicUserInfo + 3, // 3: rtc.GetJoinTokenReq.metaData:type_name -> rtc.ParticipantMetaData + 0, // 4: rtc.GetJoinTokenResp.CommonResp:type_name -> rtc.CommonResp + 5, // 5: rtc.RtcService.GetJoinToken:input_type -> rtc.GetJoinTokenReq + 6, // 6: rtc.RtcService.GetJoinToken:output_type -> rtc.GetJoinTokenResp + 6, // [6:7] is the sub-list for method output_type + 5, // [5:6] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_rtc_proto_init() } +func file_rtc_proto_init() { + if File_rtc_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_rtc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rtc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rtc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMemberFullInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rtc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParticipantMetaData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rtc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PublicUserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rtc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJoinTokenReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rtc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJoinTokenResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_rtc_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_rtc_proto_goTypes, + DependencyIndexes: file_rtc_proto_depIdxs, + MessageInfos: file_rtc_proto_msgTypes, + }.Build() + File_rtc_proto = out.File + file_rtc_proto_rawDesc = nil + file_rtc_proto_goTypes = nil + file_rtc_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// RtcServiceClient is the client API for RtcService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type RtcServiceClient interface { + GetJoinToken(ctx context.Context, in *GetJoinTokenReq, opts ...grpc.CallOption) (*GetJoinTokenResp, error) +} + +type rtcServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewRtcServiceClient(cc grpc.ClientConnInterface) RtcServiceClient { + return &rtcServiceClient{cc} +} + +func (c *rtcServiceClient) GetJoinToken(ctx context.Context, in *GetJoinTokenReq, opts ...grpc.CallOption) (*GetJoinTokenResp, error) { + out := new(GetJoinTokenResp) + err := c.cc.Invoke(ctx, "/rtc.RtcService/GetJoinToken", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RtcServiceServer is the server API for RtcService service. +type RtcServiceServer interface { + GetJoinToken(context.Context, *GetJoinTokenReq) (*GetJoinTokenResp, error) +} + +// UnimplementedRtcServiceServer can be embedded to have forward compatible implementations. +type UnimplementedRtcServiceServer struct { +} + +func (*UnimplementedRtcServiceServer) GetJoinToken(context.Context, *GetJoinTokenReq) (*GetJoinTokenResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetJoinToken not implemented") +} + +func RegisterRtcServiceServer(s *grpc.Server, srv RtcServiceServer) { + s.RegisterService(&_RtcService_serviceDesc, srv) +} + +func _RtcService_GetJoinToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetJoinTokenReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RtcServiceServer).GetJoinToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rtc.RtcService/GetJoinToken", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RtcServiceServer).GetJoinToken(ctx, req.(*GetJoinTokenReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _RtcService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "rtc.RtcService", + HandlerType: (*RtcServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetJoinToken", + Handler: _RtcService_GetJoinToken_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "rtc.proto", +} diff --git a/pkg/proto/rtc/rtc.proto b/pkg/proto/rtc/rtc.proto new file mode 100644 index 000000000..02fc4358e --- /dev/null +++ b/pkg/proto/rtc/rtc.proto @@ -0,0 +1,69 @@ +syntax = "proto3"; +option go_package = "./rtc;rtc"; +package rtc; + +message CommonResp{ + int32 errCode = 1; + string errMsg = 2; +} + +message GroupInfo{ + string groupID = 1; + string groupName = 2; + string notification = 3; + string introduction = 4; + string faceURL = 5; + string ownerUserID = 6; + uint32 createTime = 7; + uint32 memberCount = 8; + string ex = 9; + int32 status = 10; + string creatorUserID = 11; + int32 groupType = 12; +} + +message GroupMemberFullInfo { + string groupID = 1 ; + string userID = 2 ; + int32 roleLevel = 3; + int32 joinTime = 4; + string nickname = 5; + string faceURL = 6; + int32 appMangerLevel = 7; //if >0 + int32 joinSource = 8; + string operatorUserID = 9; + string ex = 10; +} + +message ParticipantMetaData{ + GroupInfo groupInfo = 1; + GroupMemberFullInfo groupMemberInfo = 2; + PublicUserInfo userInfo = 3; +} + +message PublicUserInfo{ + string userID = 1; + string nickname = 2; + string faceURL = 3; + int32 gender = 4; + string ex = 5; +} + +message GetJoinTokenReq{ + string room = 1; + string identity = 2; + ParticipantMetaData metaData = 3; + string operationID = 4; +} + +message GetJoinTokenResp{ + CommonResp CommonResp = 1; + string jwt = 2; + string liveURL = 3; +} + +service RtcService { + rpc GetJoinToken(GetJoinTokenReq) returns(GetJoinTokenResp); +} + + diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index accf94ecf..b738d4218 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: sdk_ws/ws.proto -package server_api_params +package server_api_params // import "Open_IM/pkg/proto/sdk_ws" import proto "github.com/golang/protobuf/proto" import fmt "fmt" @@ -40,7 +40,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{0} + return fileDescriptor_ws_a63d7f660800bc8e, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -155,6 +155,7 @@ type GroupMemberFullInfo struct { JoinSource int32 `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"` OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"` Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` + MuteEndTime uint32 `protobuf:"varint,11,opt,name=muteEndTime" json:"muteEndTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -164,7 +165,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{1} + return fileDescriptor_ws_a63d7f660800bc8e, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -254,6 +255,13 @@ func (m *GroupMemberFullInfo) GetEx() string { return "" } +func (m *GroupMemberFullInfo) GetMuteEndTime() uint32 { + if m != nil { + return m.MuteEndTime + } + return 0 +} + type PublicUserInfo struct { UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` @@ -269,7 +277,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{2} + return fileDescriptor_ws_a63d7f660800bc8e, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +352,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{3} + return fileDescriptor_ws_a63d7f660800bc8e, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +459,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{4} + return fileDescriptor_ws_a63d7f660800bc8e, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +544,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{5} + return fileDescriptor_ws_a63d7f660800bc8e, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +625,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{6} + return fileDescriptor_ws_a63d7f660800bc8e, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -725,7 +733,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{7} + return fileDescriptor_ws_a63d7f660800bc8e, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -863,7 +871,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{8} + return fileDescriptor_ws_a63d7f660800bc8e, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -917,7 +925,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{9} + return fileDescriptor_ws_a63d7f660800bc8e, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -968,7 +976,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{10} + return fileDescriptor_ws_a63d7f660800bc8e, []int{10} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1000,7 +1008,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{11} + return fileDescriptor_ws_a63d7f660800bc8e, []int{11} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1047,7 +1055,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{12} + return fileDescriptor_ws_a63d7f660800bc8e, []int{12} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1116,7 +1124,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{13} + return fileDescriptor_ws_a63d7f660800bc8e, []int{13} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1277,7 +1285,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{14} + return fileDescriptor_ws_a63d7f660800bc8e, []int{14} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1345,7 +1353,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{15} + return fileDescriptor_ws_a63d7f660800bc8e, []int{15} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1402,7 +1410,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{16} + return fileDescriptor_ws_a63d7f660800bc8e, []int{16} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1471,7 +1479,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{17} + return fileDescriptor_ws_a63d7f660800bc8e, []int{17} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1526,7 +1534,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{18} + return fileDescriptor_ws_a63d7f660800bc8e, []int{18} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1582,7 +1590,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{19} + return fileDescriptor_ws_a63d7f660800bc8e, []int{19} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1637,7 +1645,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{20} + return fileDescriptor_ws_a63d7f660800bc8e, []int{20} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1692,7 +1700,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{21} + return fileDescriptor_ws_a63d7f660800bc8e, []int{21} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1748,7 +1756,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{22} + return fileDescriptor_ws_a63d7f660800bc8e, []int{22} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -1811,7 +1819,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{23} + return fileDescriptor_ws_a63d7f660800bc8e, []int{23} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1874,7 +1882,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{24} + return fileDescriptor_ws_a63d7f660800bc8e, []int{24} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1936,7 +1944,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{25} + return fileDescriptor_ws_a63d7f660800bc8e, []int{25} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1977,6 +1985,60 @@ func (m *MemberEnterTips) GetOperationTime() int64 { return 0 } +type GroupDismissedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } +func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } +func (*GroupDismissedTips) ProtoMessage() {} +func (*GroupDismissedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{26} +} +func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) +} +func (m *GroupDismissedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupDismissedTips.Marshal(b, m, deterministic) +} +func (dst *GroupDismissedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupDismissedTips.Merge(dst, src) +} +func (m *GroupDismissedTips) XXX_Size() int { + return xxx_messageInfo_GroupDismissedTips.Size(m) +} +func (m *GroupDismissedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupDismissedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupDismissedTips proto.InternalMessageInfo + +func (m *GroupDismissedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupDismissedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupDismissedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 +} + type FriendApplication struct { AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` @@ -1990,7 +2052,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{26} + return fileDescriptor_ws_a63d7f660800bc8e, []int{27} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2043,7 +2105,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{27} + return fileDescriptor_ws_a63d7f660800bc8e, []int{28} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2089,7 +2151,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{28} + return fileDescriptor_ws_a63d7f660800bc8e, []int{29} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2129,7 +2191,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{29} + return fileDescriptor_ws_a63d7f660800bc8e, []int{30} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2176,7 +2238,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{30} + return fileDescriptor_ws_a63d7f660800bc8e, []int{31} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2224,7 +2286,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{31} + return fileDescriptor_ws_a63d7f660800bc8e, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2277,7 +2339,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{32} + return fileDescriptor_ws_a63d7f660800bc8e, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2315,7 +2377,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{33} + return fileDescriptor_ws_a63d7f660800bc8e, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2353,7 +2415,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{34} + return fileDescriptor_ws_a63d7f660800bc8e, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2391,7 +2453,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{35} + return fileDescriptor_ws_a63d7f660800bc8e, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2430,7 +2492,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{36} + return fileDescriptor_ws_a63d7f660800bc8e, []int{37} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2469,7 +2531,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{37} + return fileDescriptor_ws_a63d7f660800bc8e, []int{38} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -2509,7 +2571,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{38} + return fileDescriptor_ws_a63d7f660800bc8e, []int{39} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -2555,7 +2617,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c2d3d5fccaf1040a, []int{39} + return fileDescriptor_ws_a63d7f660800bc8e, []int{40} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -2589,6 +2651,1437 @@ func (m *ResponsePagination) GetShowNumber() int32 { return 0 } +// /////////////////signal////////////// +type SignalReq struct { + // Types that are valid to be assigned to Payload: + // *SignalReq_Invite + // *SignalReq_InviteInGroup + // *SignalReq_Cancel + // *SignalReq_Accept + // *SignalReq_HungUp + // *SignalReq_Reject + Payload isSignalReq_Payload `protobuf_oneof:"payload"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalReq) Reset() { *m = SignalReq{} } +func (m *SignalReq) String() string { return proto.CompactTextString(m) } +func (*SignalReq) ProtoMessage() {} +func (*SignalReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{41} +} +func (m *SignalReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalReq.Unmarshal(m, b) +} +func (m *SignalReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalReq.Marshal(b, m, deterministic) +} +func (dst *SignalReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalReq.Merge(dst, src) +} +func (m *SignalReq) XXX_Size() int { + return xxx_messageInfo_SignalReq.Size(m) +} +func (m *SignalReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalReq proto.InternalMessageInfo + +type isSignalReq_Payload interface { + isSignalReq_Payload() +} + +type SignalReq_Invite struct { + Invite *SignalInviteReq `protobuf:"bytes,1,opt,name=invite,oneof"` +} +type SignalReq_InviteInGroup struct { + InviteInGroup *SignalInviteInGroupReq `protobuf:"bytes,2,opt,name=inviteInGroup,oneof"` +} +type SignalReq_Cancel struct { + Cancel *SignalCancelReq `protobuf:"bytes,3,opt,name=cancel,oneof"` +} +type SignalReq_Accept struct { + Accept *SignalAcceptReq `protobuf:"bytes,4,opt,name=accept,oneof"` +} +type SignalReq_HungUp struct { + HungUp *SignalHungUpReq `protobuf:"bytes,5,opt,name=hungUp,oneof"` +} +type SignalReq_Reject struct { + Reject *SignalRejectReq `protobuf:"bytes,6,opt,name=reject,oneof"` +} + +func (*SignalReq_Invite) isSignalReq_Payload() {} +func (*SignalReq_InviteInGroup) isSignalReq_Payload() {} +func (*SignalReq_Cancel) isSignalReq_Payload() {} +func (*SignalReq_Accept) isSignalReq_Payload() {} +func (*SignalReq_HungUp) isSignalReq_Payload() {} +func (*SignalReq_Reject) isSignalReq_Payload() {} + +func (m *SignalReq) GetPayload() isSignalReq_Payload { + if m != nil { + return m.Payload + } + return nil +} + +func (m *SignalReq) GetInvite() *SignalInviteReq { + if x, ok := m.GetPayload().(*SignalReq_Invite); ok { + return x.Invite + } + return nil +} + +func (m *SignalReq) GetInviteInGroup() *SignalInviteInGroupReq { + if x, ok := m.GetPayload().(*SignalReq_InviteInGroup); ok { + return x.InviteInGroup + } + return nil +} + +func (m *SignalReq) GetCancel() *SignalCancelReq { + if x, ok := m.GetPayload().(*SignalReq_Cancel); ok { + return x.Cancel + } + return nil +} + +func (m *SignalReq) GetAccept() *SignalAcceptReq { + if x, ok := m.GetPayload().(*SignalReq_Accept); ok { + return x.Accept + } + return nil +} + +func (m *SignalReq) GetHungUp() *SignalHungUpReq { + if x, ok := m.GetPayload().(*SignalReq_HungUp); ok { + return x.HungUp + } + return nil +} + +func (m *SignalReq) GetReject() *SignalRejectReq { + if x, ok := m.GetPayload().(*SignalReq_Reject); ok { + return x.Reject + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SignalReq) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SignalReq_OneofMarshaler, _SignalReq_OneofUnmarshaler, _SignalReq_OneofSizer, []interface{}{ + (*SignalReq_Invite)(nil), + (*SignalReq_InviteInGroup)(nil), + (*SignalReq_Cancel)(nil), + (*SignalReq_Accept)(nil), + (*SignalReq_HungUp)(nil), + (*SignalReq_Reject)(nil), + } +} + +func _SignalReq_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SignalReq) + // payload + switch x := m.Payload.(type) { + case *SignalReq_Invite: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Invite); err != nil { + return err + } + case *SignalReq_InviteInGroup: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.InviteInGroup); err != nil { + return err + } + case *SignalReq_Cancel: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Cancel); err != nil { + return err + } + case *SignalReq_Accept: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Accept); err != nil { + return err + } + case *SignalReq_HungUp: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HungUp); err != nil { + return err + } + case *SignalReq_Reject: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Reject); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("SignalReq.Payload has unexpected type %T", x) + } + return nil +} + +func _SignalReq_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SignalReq) + switch tag { + case 1: // payload.invite + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalInviteReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_Invite{msg} + return true, err + case 2: // payload.inviteInGroup + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalInviteInGroupReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_InviteInGroup{msg} + return true, err + case 3: // payload.cancel + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalCancelReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_Cancel{msg} + return true, err + case 4: // payload.accept + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalAcceptReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_Accept{msg} + return true, err + case 5: // payload.hungUp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalHungUpReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_HungUp{msg} + return true, err + case 6: // payload.reject + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalRejectReq) + err := b.DecodeMessage(msg) + m.Payload = &SignalReq_Reject{msg} + return true, err + default: + return false, nil + } +} + +func _SignalReq_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SignalReq) + // payload + switch x := m.Payload.(type) { + case *SignalReq_Invite: + s := proto.Size(x.Invite) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_InviteInGroup: + s := proto.Size(x.InviteInGroup) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_Cancel: + s := proto.Size(x.Cancel) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_Accept: + s := proto.Size(x.Accept) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_HungUp: + s := proto.Size(x.HungUp) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalReq_Reject: + s := proto.Size(x.Reject) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type SignalResp struct { + // Types that are valid to be assigned to Payload: + // *SignalResp_Invite + // *SignalResp_InviteInGroup + // *SignalResp_Cancel + // *SignalResp_Accept + // *SignalResp_HungUp + // *SignalResp_Reject + Payload isSignalResp_Payload `protobuf_oneof:"payload"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalResp) Reset() { *m = SignalResp{} } +func (m *SignalResp) String() string { return proto.CompactTextString(m) } +func (*SignalResp) ProtoMessage() {} +func (*SignalResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{42} +} +func (m *SignalResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalResp.Unmarshal(m, b) +} +func (m *SignalResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalResp.Marshal(b, m, deterministic) +} +func (dst *SignalResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalResp.Merge(dst, src) +} +func (m *SignalResp) XXX_Size() int { + return xxx_messageInfo_SignalResp.Size(m) +} +func (m *SignalResp) XXX_DiscardUnknown() { + xxx_messageInfo_SignalResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalResp proto.InternalMessageInfo + +type isSignalResp_Payload interface { + isSignalResp_Payload() +} + +type SignalResp_Invite struct { + Invite *SignalInviteReply `protobuf:"bytes,1,opt,name=invite,oneof"` +} +type SignalResp_InviteInGroup struct { + InviteInGroup *SignalInviteInGroupReply `protobuf:"bytes,2,opt,name=inviteInGroup,oneof"` +} +type SignalResp_Cancel struct { + Cancel *SignalCancelReply `protobuf:"bytes,3,opt,name=cancel,oneof"` +} +type SignalResp_Accept struct { + Accept *SignalAcceptReply `protobuf:"bytes,4,opt,name=accept,oneof"` +} +type SignalResp_HungUp struct { + HungUp *SignalHungUpReply `protobuf:"bytes,5,opt,name=hungUp,oneof"` +} +type SignalResp_Reject struct { + Reject *SignalRejectReply `protobuf:"bytes,6,opt,name=reject,oneof"` +} + +func (*SignalResp_Invite) isSignalResp_Payload() {} +func (*SignalResp_InviteInGroup) isSignalResp_Payload() {} +func (*SignalResp_Cancel) isSignalResp_Payload() {} +func (*SignalResp_Accept) isSignalResp_Payload() {} +func (*SignalResp_HungUp) isSignalResp_Payload() {} +func (*SignalResp_Reject) isSignalResp_Payload() {} + +func (m *SignalResp) GetPayload() isSignalResp_Payload { + if m != nil { + return m.Payload + } + return nil +} + +func (m *SignalResp) GetInvite() *SignalInviteReply { + if x, ok := m.GetPayload().(*SignalResp_Invite); ok { + return x.Invite + } + return nil +} + +func (m *SignalResp) GetInviteInGroup() *SignalInviteInGroupReply { + if x, ok := m.GetPayload().(*SignalResp_InviteInGroup); ok { + return x.InviteInGroup + } + return nil +} + +func (m *SignalResp) GetCancel() *SignalCancelReply { + if x, ok := m.GetPayload().(*SignalResp_Cancel); ok { + return x.Cancel + } + return nil +} + +func (m *SignalResp) GetAccept() *SignalAcceptReply { + if x, ok := m.GetPayload().(*SignalResp_Accept); ok { + return x.Accept + } + return nil +} + +func (m *SignalResp) GetHungUp() *SignalHungUpReply { + if x, ok := m.GetPayload().(*SignalResp_HungUp); ok { + return x.HungUp + } + return nil +} + +func (m *SignalResp) GetReject() *SignalRejectReply { + if x, ok := m.GetPayload().(*SignalResp_Reject); ok { + return x.Reject + } + return nil +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*SignalResp) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _SignalResp_OneofMarshaler, _SignalResp_OneofUnmarshaler, _SignalResp_OneofSizer, []interface{}{ + (*SignalResp_Invite)(nil), + (*SignalResp_InviteInGroup)(nil), + (*SignalResp_Cancel)(nil), + (*SignalResp_Accept)(nil), + (*SignalResp_HungUp)(nil), + (*SignalResp_Reject)(nil), + } +} + +func _SignalResp_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*SignalResp) + // payload + switch x := m.Payload.(type) { + case *SignalResp_Invite: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Invite); err != nil { + return err + } + case *SignalResp_InviteInGroup: + b.EncodeVarint(2<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.InviteInGroup); err != nil { + return err + } + case *SignalResp_Cancel: + b.EncodeVarint(3<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Cancel); err != nil { + return err + } + case *SignalResp_Accept: + b.EncodeVarint(4<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Accept); err != nil { + return err + } + case *SignalResp_HungUp: + b.EncodeVarint(5<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.HungUp); err != nil { + return err + } + case *SignalResp_Reject: + b.EncodeVarint(6<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Reject); err != nil { + return err + } + case nil: + default: + return fmt.Errorf("SignalResp.Payload has unexpected type %T", x) + } + return nil +} + +func _SignalResp_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*SignalResp) + switch tag { + case 1: // payload.invite + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalInviteReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_Invite{msg} + return true, err + case 2: // payload.inviteInGroup + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalInviteInGroupReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_InviteInGroup{msg} + return true, err + case 3: // payload.cancel + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalCancelReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_Cancel{msg} + return true, err + case 4: // payload.accept + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalAcceptReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_Accept{msg} + return true, err + case 5: // payload.hungUp + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalHungUpReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_HungUp{msg} + return true, err + case 6: // payload.reject + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(SignalRejectReply) + err := b.DecodeMessage(msg) + m.Payload = &SignalResp_Reject{msg} + return true, err + default: + return false, nil + } +} + +func _SignalResp_OneofSizer(msg proto.Message) (n int) { + m := msg.(*SignalResp) + // payload + switch x := m.Payload.(type) { + case *SignalResp_Invite: + s := proto.Size(x.Invite) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_InviteInGroup: + s := proto.Size(x.InviteInGroup) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_Cancel: + s := proto.Size(x.Cancel) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_Accept: + s := proto.Size(x.Accept) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_HungUp: + s := proto.Size(x.HungUp) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *SignalResp_Reject: + s := proto.Size(x.Reject) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type InvitationInfo struct { + InviterUserID string `protobuf:"bytes,1,opt,name=inviterUserID" json:"inviterUserID,omitempty"` + InviteeUserIDList []string `protobuf:"bytes,2,rep,name=inviteeUserIDList" json:"inviteeUserIDList,omitempty"` + CustomData string `protobuf:"bytes,3,opt,name=customData" json:"customData,omitempty"` + GroupID string `protobuf:"bytes,4,opt,name=groupID" json:"groupID,omitempty"` + RoomID string `protobuf:"bytes,5,opt,name=roomID" json:"roomID,omitempty"` + Timeout int32 `protobuf:"varint,6,opt,name=timeout" json:"timeout,omitempty"` + MediaType string `protobuf:"bytes,7,opt,name=mediaType" json:"mediaType,omitempty"` + PlatformID int32 `protobuf:"varint,8,opt,name=platformID" json:"platformID,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } +func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } +func (*InvitationInfo) ProtoMessage() {} +func (*InvitationInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{43} +} +func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) +} +func (m *InvitationInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InvitationInfo.Marshal(b, m, deterministic) +} +func (dst *InvitationInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_InvitationInfo.Merge(dst, src) +} +func (m *InvitationInfo) XXX_Size() int { + return xxx_messageInfo_InvitationInfo.Size(m) +} +func (m *InvitationInfo) XXX_DiscardUnknown() { + xxx_messageInfo_InvitationInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_InvitationInfo proto.InternalMessageInfo + +func (m *InvitationInfo) GetInviterUserID() string { + if m != nil { + return m.InviterUserID + } + return "" +} + +func (m *InvitationInfo) GetInviteeUserIDList() []string { + if m != nil { + return m.InviteeUserIDList + } + return nil +} + +func (m *InvitationInfo) GetCustomData() string { + if m != nil { + return m.CustomData + } + return "" +} + +func (m *InvitationInfo) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *InvitationInfo) GetRoomID() string { + if m != nil { + return m.RoomID + } + return "" +} + +func (m *InvitationInfo) GetTimeout() int32 { + if m != nil { + return m.Timeout + } + return 0 +} + +func (m *InvitationInfo) GetMediaType() string { + if m != nil { + return m.MediaType + } + return "" +} + +func (m *InvitationInfo) GetPlatformID() int32 { + if m != nil { + return m.PlatformID + } + return 0 +} + +func (m *InvitationInfo) GetSessionType() int32 { + if m != nil { + return m.SessionType + } + return 0 +} + +type ParticipantMetaData struct { + GroupInfo *GroupInfo `protobuf:"bytes,1,opt,name=groupInfo" json:"groupInfo,omitempty"` + GroupMemberInfo *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=groupMemberInfo" json:"groupMemberInfo,omitempty"` + UserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=userInfo" json:"userInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } +func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } +func (*ParticipantMetaData) ProtoMessage() {} +func (*ParticipantMetaData) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{44} +} +func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) +} +func (m *ParticipantMetaData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ParticipantMetaData.Marshal(b, m, deterministic) +} +func (dst *ParticipantMetaData) XXX_Merge(src proto.Message) { + xxx_messageInfo_ParticipantMetaData.Merge(dst, src) +} +func (m *ParticipantMetaData) XXX_Size() int { + return xxx_messageInfo_ParticipantMetaData.Size(m) +} +func (m *ParticipantMetaData) XXX_DiscardUnknown() { + xxx_messageInfo_ParticipantMetaData.DiscardUnknown(m) +} + +var xxx_messageInfo_ParticipantMetaData proto.InternalMessageInfo + +func (m *ParticipantMetaData) GetGroupInfo() *GroupInfo { + if m != nil { + return m.GroupInfo + } + return nil +} + +func (m *ParticipantMetaData) GetGroupMemberInfo() *GroupMemberFullInfo { + if m != nil { + return m.GroupMemberInfo + } + return nil +} + +func (m *ParticipantMetaData) GetUserInfo() *PublicUserInfo { + if m != nil { + return m.UserInfo + } + return nil +} + +type SignalInviteReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } +func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } +func (*SignalInviteReq) ProtoMessage() {} +func (*SignalInviteReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{45} +} +func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) +} +func (m *SignalInviteReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalInviteReq.Marshal(b, m, deterministic) +} +func (dst *SignalInviteReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalInviteReq.Merge(dst, src) +} +func (m *SignalInviteReq) XXX_Size() int { + return xxx_messageInfo_SignalInviteReq.Size(m) +} +func (m *SignalInviteReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalInviteReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalInviteReq proto.InternalMessageInfo + +func (m *SignalInviteReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalInviteReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalInviteReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalInviteReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +type SignalInviteReply struct { + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + RoomID string `protobuf:"bytes,2,opt,name=roomID" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL" json:"liveURL,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } +func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } +func (*SignalInviteReply) ProtoMessage() {} +func (*SignalInviteReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{46} +} +func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) +} +func (m *SignalInviteReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalInviteReply.Marshal(b, m, deterministic) +} +func (dst *SignalInviteReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalInviteReply.Merge(dst, src) +} +func (m *SignalInviteReply) XXX_Size() int { + return xxx_messageInfo_SignalInviteReply.Size(m) +} +func (m *SignalInviteReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalInviteReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalInviteReply proto.InternalMessageInfo + +func (m *SignalInviteReply) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *SignalInviteReply) GetRoomID() string { + if m != nil { + return m.RoomID + } + return "" +} + +func (m *SignalInviteReply) GetLiveURL() string { + if m != nil { + return m.LiveURL + } + return "" +} + +type SignalInviteInGroupReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} } +func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } +func (*SignalInviteInGroupReq) ProtoMessage() {} +func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{47} +} +func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) +} +func (m *SignalInviteInGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalInviteInGroupReq.Marshal(b, m, deterministic) +} +func (dst *SignalInviteInGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalInviteInGroupReq.Merge(dst, src) +} +func (m *SignalInviteInGroupReq) XXX_Size() int { + return xxx_messageInfo_SignalInviteInGroupReq.Size(m) +} +func (m *SignalInviteInGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalInviteInGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalInviteInGroupReq proto.InternalMessageInfo + +func (m *SignalInviteInGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalInviteInGroupReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalInviteInGroupReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalInviteInGroupReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +type SignalInviteInGroupReply struct { + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + RoomID string `protobuf:"bytes,2,opt,name=roomID" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL" json:"liveURL,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupReply{} } +func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } +func (*SignalInviteInGroupReply) ProtoMessage() {} +func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{48} +} +func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) +} +func (m *SignalInviteInGroupReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalInviteInGroupReply.Marshal(b, m, deterministic) +} +func (dst *SignalInviteInGroupReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalInviteInGroupReply.Merge(dst, src) +} +func (m *SignalInviteInGroupReply) XXX_Size() int { + return xxx_messageInfo_SignalInviteInGroupReply.Size(m) +} +func (m *SignalInviteInGroupReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalInviteInGroupReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalInviteInGroupReply proto.InternalMessageInfo + +func (m *SignalInviteInGroupReply) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *SignalInviteInGroupReply) GetRoomID() string { + if m != nil { + return m.RoomID + } + return "" +} + +func (m *SignalInviteInGroupReply) GetLiveURL() string { + if m != nil { + return m.LiveURL + } + return "" +} + +type SignalCancelReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } +func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } +func (*SignalCancelReq) ProtoMessage() {} +func (*SignalCancelReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{49} +} +func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) +} +func (m *SignalCancelReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalCancelReq.Marshal(b, m, deterministic) +} +func (dst *SignalCancelReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalCancelReq.Merge(dst, src) +} +func (m *SignalCancelReq) XXX_Size() int { + return xxx_messageInfo_SignalCancelReq.Size(m) +} +func (m *SignalCancelReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalCancelReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalCancelReq proto.InternalMessageInfo + +func (m *SignalCancelReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalCancelReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalCancelReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalCancelReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +type SignalCancelReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } +func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } +func (*SignalCancelReply) ProtoMessage() {} +func (*SignalCancelReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{50} +} +func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) +} +func (m *SignalCancelReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalCancelReply.Marshal(b, m, deterministic) +} +func (dst *SignalCancelReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalCancelReply.Merge(dst, src) +} +func (m *SignalCancelReply) XXX_Size() int { + return xxx_messageInfo_SignalCancelReply.Size(m) +} +func (m *SignalCancelReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalCancelReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalCancelReply proto.InternalMessageInfo + +type SignalAcceptReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID" json:"opUserPlatformID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } +func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } +func (*SignalAcceptReq) ProtoMessage() {} +func (*SignalAcceptReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{51} +} +func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) +} +func (m *SignalAcceptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalAcceptReq.Marshal(b, m, deterministic) +} +func (dst *SignalAcceptReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalAcceptReq.Merge(dst, src) +} +func (m *SignalAcceptReq) XXX_Size() int { + return xxx_messageInfo_SignalAcceptReq.Size(m) +} +func (m *SignalAcceptReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalAcceptReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalAcceptReq proto.InternalMessageInfo + +func (m *SignalAcceptReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalAcceptReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalAcceptReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalAcceptReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +func (m *SignalAcceptReq) GetOpUserPlatformID() int32 { + if m != nil { + return m.OpUserPlatformID + } + return 0 +} + +type SignalAcceptReply struct { + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + RoomID string `protobuf:"bytes,2,opt,name=roomID" json:"roomID,omitempty"` + LiveURL string `protobuf:"bytes,3,opt,name=liveURL" json:"liveURL,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } +func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } +func (*SignalAcceptReply) ProtoMessage() {} +func (*SignalAcceptReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{52} +} +func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) +} +func (m *SignalAcceptReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalAcceptReply.Marshal(b, m, deterministic) +} +func (dst *SignalAcceptReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalAcceptReply.Merge(dst, src) +} +func (m *SignalAcceptReply) XXX_Size() int { + return xxx_messageInfo_SignalAcceptReply.Size(m) +} +func (m *SignalAcceptReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalAcceptReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalAcceptReply proto.InternalMessageInfo + +func (m *SignalAcceptReply) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *SignalAcceptReply) GetRoomID() string { + if m != nil { + return m.RoomID + } + return "" +} + +func (m *SignalAcceptReply) GetLiveURL() string { + if m != nil { + return m.LiveURL + } + return "" +} + +type SignalHungUpReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } +func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } +func (*SignalHungUpReq) ProtoMessage() {} +func (*SignalHungUpReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{53} +} +func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) +} +func (m *SignalHungUpReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalHungUpReq.Marshal(b, m, deterministic) +} +func (dst *SignalHungUpReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalHungUpReq.Merge(dst, src) +} +func (m *SignalHungUpReq) XXX_Size() int { + return xxx_messageInfo_SignalHungUpReq.Size(m) +} +func (m *SignalHungUpReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalHungUpReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalHungUpReq proto.InternalMessageInfo + +func (m *SignalHungUpReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalHungUpReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalHungUpReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +type SignalHungUpReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } +func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } +func (*SignalHungUpReply) ProtoMessage() {} +func (*SignalHungUpReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{54} +} +func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) +} +func (m *SignalHungUpReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalHungUpReply.Marshal(b, m, deterministic) +} +func (dst *SignalHungUpReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalHungUpReply.Merge(dst, src) +} +func (m *SignalHungUpReply) XXX_Size() int { + return xxx_messageInfo_SignalHungUpReply.Size(m) +} +func (m *SignalHungUpReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalHungUpReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalHungUpReply proto.InternalMessageInfo + +type SignalRejectReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + Invitation *InvitationInfo `protobuf:"bytes,2,opt,name=invitation" json:"invitation,omitempty"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,3,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + Participant *ParticipantMetaData `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"` + OpUserPlatformID int32 `protobuf:"varint,5,opt,name=opUserPlatformID" json:"opUserPlatformID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } +func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } +func (*SignalRejectReq) ProtoMessage() {} +func (*SignalRejectReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{55} +} +func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) +} +func (m *SignalRejectReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalRejectReq.Marshal(b, m, deterministic) +} +func (dst *SignalRejectReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalRejectReq.Merge(dst, src) +} +func (m *SignalRejectReq) XXX_Size() int { + return xxx_messageInfo_SignalRejectReq.Size(m) +} +func (m *SignalRejectReq) XXX_DiscardUnknown() { + xxx_messageInfo_SignalRejectReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalRejectReq proto.InternalMessageInfo + +func (m *SignalRejectReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *SignalRejectReq) GetInvitation() *InvitationInfo { + if m != nil { + return m.Invitation + } + return nil +} + +func (m *SignalRejectReq) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo + } + return nil +} + +func (m *SignalRejectReq) GetParticipant() *ParticipantMetaData { + if m != nil { + return m.Participant + } + return nil +} + +func (m *SignalRejectReq) GetOpUserPlatformID() int32 { + if m != nil { + return m.OpUserPlatformID + } + return 0 +} + +type SignalRejectReply struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } +func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } +func (*SignalRejectReply) ProtoMessage() {} +func (*SignalRejectReply) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{56} +} +func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) +} +func (m *SignalRejectReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SignalRejectReply.Marshal(b, m, deterministic) +} +func (dst *SignalRejectReply) XXX_Merge(src proto.Message) { + xxx_messageInfo_SignalRejectReply.Merge(dst, src) +} +func (m *SignalRejectReply) XXX_Size() int { + return xxx_messageInfo_SignalRejectReply.Size(m) +} +func (m *SignalRejectReply) XXX_DiscardUnknown() { + xxx_messageInfo_SignalRejectReply.DiscardUnknown(m) +} + +var xxx_messageInfo_SignalRejectReply proto.InternalMessageInfo + +type DelMsgListReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } +func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } +func (*DelMsgListReq) ProtoMessage() {} +func (*DelMsgListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{57} +} +func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) +} +func (m *DelMsgListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DelMsgListReq.Marshal(b, m, deterministic) +} +func (dst *DelMsgListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelMsgListReq.Merge(dst, src) +} +func (m *DelMsgListReq) XXX_Size() int { + return xxx_messageInfo_DelMsgListReq.Size(m) +} +func (m *DelMsgListReq) XXX_DiscardUnknown() { + xxx_messageInfo_DelMsgListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_DelMsgListReq proto.InternalMessageInfo + +func (m *DelMsgListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *DelMsgListReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *DelMsgListReq) GetSeqList() []uint32 { + if m != nil { + return m.SeqList + } + return nil +} + +func (m *DelMsgListReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type DelMsgListResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } +func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } +func (*DelMsgListResp) ProtoMessage() {} +func (*DelMsgListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a63d7f660800bc8e, []int{58} +} +func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) +} +func (m *DelMsgListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DelMsgListResp.Marshal(b, m, deterministic) +} +func (dst *DelMsgListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DelMsgListResp.Merge(dst, src) +} +func (m *DelMsgListResp) XXX_Size() int { + return xxx_messageInfo_DelMsgListResp.Size(m) +} +func (m *DelMsgListResp) XXX_DiscardUnknown() { + xxx_messageInfo_DelMsgListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DelMsgListResp proto.InternalMessageInfo + +func (m *DelMsgListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *DelMsgListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + func init() { proto.RegisterType((*GroupInfo)(nil), "server_api_params.GroupInfo") proto.RegisterType((*GroupMemberFullInfo)(nil), "server_api_params.GroupMemberFullInfo") @@ -2617,6 +4110,7 @@ func init() { proto.RegisterType((*MemberKickedTips)(nil), "server_api_params.MemberKickedTips") proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") + proto.RegisterType((*GroupDismissedTips)(nil), "server_api_params.GroupDismissedTips") proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips") @@ -2631,136 +4125,191 @@ func init() { proto.RegisterType((*ConversationUpdateTips)(nil), "server_api_params.ConversationUpdateTips") proto.RegisterType((*RequestPagination)(nil), "server_api_params.RequestPagination") proto.RegisterType((*ResponsePagination)(nil), "server_api_params.ResponsePagination") + proto.RegisterType((*SignalReq)(nil), "server_api_params.SignalReq") + proto.RegisterType((*SignalResp)(nil), "server_api_params.SignalResp") + proto.RegisterType((*InvitationInfo)(nil), "server_api_params.InvitationInfo") + proto.RegisterType((*ParticipantMetaData)(nil), "server_api_params.ParticipantMetaData") + proto.RegisterType((*SignalInviteReq)(nil), "server_api_params.SignalInviteReq") + proto.RegisterType((*SignalInviteReply)(nil), "server_api_params.SignalInviteReply") + proto.RegisterType((*SignalInviteInGroupReq)(nil), "server_api_params.SignalInviteInGroupReq") + proto.RegisterType((*SignalInviteInGroupReply)(nil), "server_api_params.SignalInviteInGroupReply") + proto.RegisterType((*SignalCancelReq)(nil), "server_api_params.SignalCancelReq") + proto.RegisterType((*SignalCancelReply)(nil), "server_api_params.SignalCancelReply") + proto.RegisterType((*SignalAcceptReq)(nil), "server_api_params.SignalAcceptReq") + proto.RegisterType((*SignalAcceptReply)(nil), "server_api_params.SignalAcceptReply") + proto.RegisterType((*SignalHungUpReq)(nil), "server_api_params.SignalHungUpReq") + proto.RegisterType((*SignalHungUpReply)(nil), "server_api_params.SignalHungUpReply") + proto.RegisterType((*SignalRejectReq)(nil), "server_api_params.SignalRejectReq") + proto.RegisterType((*SignalRejectReply)(nil), "server_api_params.SignalRejectReply") + proto.RegisterType((*DelMsgListReq)(nil), "server_api_params.DelMsgListReq") + proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_c2d3d5fccaf1040a) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a63d7f660800bc8e) } -var fileDescriptor_ws_c2d3d5fccaf1040a = []byte{ - // 2005 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0x23, 0x49, - 0x15, 0x57, 0xdb, 0xb1, 0x13, 0x3f, 0xc7, 0x71, 0xd2, 0xb3, 0x04, 0x13, 0x66, 0x87, 0xd0, 0x5a, - 0x2d, 0x23, 0x24, 0xb2, 0x68, 0x10, 0x12, 0xec, 0x0a, 0x50, 0xfe, 0x4c, 0xc2, 0x2c, 0x71, 0x12, - 0xda, 0x19, 0x16, 0x21, 0xa4, 0x51, 0xc7, 0xfd, 0xec, 0xf4, 0xa6, 0x5d, 0xd5, 0xae, 0xea, 0x4e, - 0x66, 0x24, 0x4e, 0x20, 0xf1, 0x0d, 0xe0, 0x03, 0x70, 0x41, 0x5c, 0x10, 0x17, 0xc4, 0x85, 0x23, - 0x5f, 0x80, 0x33, 0x5f, 0x81, 0x2b, 0x07, 0x24, 0x24, 0x50, 0xfd, 0xe9, 0xee, 0xaa, 0xb6, 0x93, - 0xb5, 0xa2, 0x68, 0x87, 0x9b, 0xdf, 0xaf, 0xeb, 0xbd, 0x7a, 0xff, 0xeb, 0x55, 0x19, 0xba, 0x3c, - 0xbc, 0x7a, 0x75, 0xc3, 0x3f, 0xb8, 0xe1, 0x3b, 0x09, 0xa3, 0x29, 0x75, 0x37, 0x38, 0xb2, 0x6b, - 0x64, 0xaf, 0x82, 0x24, 0x7a, 0x95, 0x04, 0x2c, 0x98, 0x70, 0xef, 0x5f, 0x35, 0x68, 0x1d, 0x31, - 0x9a, 0x25, 0x2f, 0xc8, 0x88, 0xba, 0x3d, 0x58, 0x1e, 0x4b, 0xe2, 0xa0, 0xe7, 0x6c, 0x3b, 0x4f, - 0x5b, 0x7e, 0x4e, 0xba, 0x8f, 0xa1, 0x25, 0x7f, 0x9e, 0x04, 0x13, 0xec, 0xd5, 0xe4, 0xb7, 0x12, - 0x70, 0x3d, 0x58, 0x25, 0x34, 0x8d, 0x46, 0xd1, 0x30, 0x48, 0x23, 0x4a, 0x7a, 0x75, 0xb9, 0xc0, - 0xc2, 0xc4, 0x9a, 0x88, 0xa4, 0x8c, 0x86, 0xd9, 0x50, 0xae, 0x59, 0x52, 0x6b, 0x4c, 0x4c, 0xec, - 0x3f, 0x0a, 0x86, 0xf8, 0xd2, 0x3f, 0xee, 0x35, 0xd4, 0xfe, 0x9a, 0x74, 0xb7, 0xa1, 0x4d, 0x6f, - 0x08, 0xb2, 0x97, 0x1c, 0xd9, 0x8b, 0x83, 0x5e, 0x53, 0x7e, 0x35, 0x21, 0xf7, 0x09, 0xc0, 0x90, - 0x61, 0x90, 0xe2, 0x79, 0x34, 0xc1, 0xde, 0xf2, 0xb6, 0xf3, 0xb4, 0xe3, 0x1b, 0x88, 0x90, 0x30, - 0xc1, 0xc9, 0x05, 0xb2, 0x7d, 0x9a, 0x91, 0xb4, 0xb7, 0x22, 0x17, 0x98, 0x90, 0xbb, 0x06, 0x35, - 0x7c, 0xdd, 0x6b, 0x49, 0xd1, 0x35, 0x7c, 0xed, 0x6e, 0x42, 0x93, 0xa7, 0x41, 0x9a, 0xf1, 0x1e, - 0x6c, 0x3b, 0x4f, 0x1b, 0xbe, 0xa6, 0xdc, 0xf7, 0xa0, 0x23, 0xe5, 0xd2, 0x5c, 0x9b, 0xb6, 0x64, - 0xb1, 0xc1, 0xc2, 0x63, 0xe7, 0x6f, 0x12, 0xec, 0xad, 0x4a, 0x01, 0x25, 0xe0, 0xfd, 0xa5, 0x06, - 0x8f, 0xa4, 0xdf, 0xfb, 0x52, 0x81, 0xc3, 0x2c, 0x8e, 0x3f, 0x23, 0x02, 0x9b, 0xd0, 0xcc, 0xd4, - 0x76, 0xca, 0xfd, 0x9a, 0x12, 0xfb, 0x30, 0x1a, 0xe3, 0x31, 0x5e, 0x63, 0x2c, 0x1d, 0xdf, 0xf0, - 0x4b, 0xc0, 0xdd, 0x82, 0x95, 0x4f, 0x69, 0x44, 0xa4, 0x4f, 0x96, 0xe4, 0xc7, 0x82, 0x16, 0xdf, - 0x48, 0x34, 0xbc, 0x22, 0x22, 0xa4, 0xca, 0xdd, 0x05, 0x6d, 0x46, 0xa2, 0x69, 0x47, 0xe2, 0x7d, - 0x58, 0x0b, 0x92, 0xa4, 0x1f, 0x90, 0x31, 0x32, 0xb5, 0xe9, 0xb2, 0x94, 0x5b, 0x41, 0x45, 0x3c, - 0xc4, 0x4e, 0x03, 0x9a, 0xb1, 0x21, 0x4a, 0x77, 0x37, 0x7c, 0x03, 0x11, 0x72, 0x68, 0x82, 0xcc, - 0x70, 0xa3, 0xf2, 0x7c, 0x05, 0xd5, 0x51, 0x81, 0x3c, 0x2a, 0xde, 0xaf, 0x1d, 0x58, 0x3b, 0xcb, - 0x2e, 0xe2, 0x68, 0x28, 0x17, 0x08, 0xa7, 0x95, 0xae, 0x71, 0x2c, 0xd7, 0x98, 0x06, 0xd6, 0x6e, - 0x37, 0xb0, 0x6e, 0x1b, 0xb8, 0x09, 0xcd, 0x31, 0x92, 0x10, 0x99, 0x76, 0x98, 0xa6, 0xb4, 0x22, - 0x8d, 0x42, 0x91, 0xdf, 0xd6, 0x60, 0xe5, 0x73, 0x56, 0x61, 0x1b, 0xda, 0xc9, 0x25, 0x25, 0x78, - 0x92, 0x89, 0xa4, 0xd1, 0xba, 0x98, 0x90, 0xfb, 0x0e, 0x34, 0x2e, 0x22, 0x96, 0x5e, 0xca, 0xa8, - 0x75, 0x7c, 0x45, 0x08, 0x14, 0x27, 0x41, 0xa4, 0x42, 0xd5, 0xf2, 0x15, 0xa1, 0x0d, 0x5a, 0x29, - 0xf2, 0xdd, 0xae, 0xa0, 0xd6, 0x4c, 0x05, 0xcd, 0x46, 0x1e, 0xe6, 0x45, 0xde, 0xfb, 0xb7, 0x03, - 0x70, 0xc8, 0x22, 0x24, 0xa1, 0x74, 0x4d, 0xa5, 0x74, 0x9d, 0xd9, 0xd2, 0xdd, 0x84, 0x26, 0xc3, - 0x49, 0xc0, 0xae, 0xf2, 0xd4, 0x56, 0x54, 0x45, 0xa1, 0xfa, 0x8c, 0x42, 0x1f, 0x01, 0x8c, 0xe4, - 0x3e, 0x42, 0x8e, 0x74, 0x55, 0xfb, 0xd9, 0x97, 0x77, 0x66, 0x9a, 0xdc, 0x4e, 0x1e, 0x25, 0xdf, - 0x58, 0x2e, 0xea, 0x26, 0x08, 0x43, 0x9d, 0x9e, 0x0d, 0x55, 0x37, 0x05, 0x30, 0x27, 0x3b, 0x9b, - 0x77, 0x64, 0xe7, 0x72, 0x91, 0x14, 0xff, 0x74, 0xa0, 0xb5, 0x17, 0x07, 0xc3, 0xab, 0x05, 0x4d, - 0xb7, 0x4d, 0xac, 0xcd, 0x98, 0x78, 0x04, 0x9d, 0x0b, 0x21, 0x2e, 0x37, 0x41, 0x7a, 0xa1, 0xfd, - 0xec, 0xab, 0x73, 0xac, 0xb4, 0x8b, 0xc2, 0xb7, 0xf9, 0x6c, 0x73, 0x97, 0x3e, 0xdb, 0xdc, 0xc6, - 0x1d, 0xe6, 0x36, 0x0b, 0x73, 0xff, 0x5e, 0x83, 0x55, 0xd9, 0xc6, 0x7c, 0x9c, 0x66, 0xc8, 0x53, - 0xf7, 0x7b, 0xb0, 0x92, 0xe5, 0xaa, 0x3a, 0x8b, 0xaa, 0x5a, 0xb0, 0xb8, 0x1f, 0xea, 0xa6, 0x29, - 0xf9, 0x6b, 0x92, 0xff, 0xf1, 0x1c, 0xfe, 0xe2, 0xc4, 0xf2, 0xcb, 0xe5, 0xe2, 0x80, 0xb9, 0x0c, - 0x48, 0x18, 0xa3, 0x8f, 0x3c, 0x8b, 0x53, 0xdd, 0x0b, 0x2d, 0x4c, 0x65, 0xda, 0xb4, 0xcf, 0xc7, - 0xfa, 0xf8, 0xd1, 0x94, 0xf0, 0x8e, 0x5a, 0x27, 0x3e, 0x29, 0xd3, 0x4b, 0x40, 0x14, 0x2a, 0xc3, - 0xa9, 0x8c, 0x90, 0x2a, 0xab, 0x9c, 0x2c, 0xf7, 0xd4, 0x5e, 0x53, 0x89, 0x60, 0x61, 0x22, 0xc4, - 0x8a, 0x96, 0x02, 0xd4, 0xb9, 0x63, 0x20, 0xd5, 0x63, 0xc7, 0xfb, 0x47, 0x1d, 0x3a, 0xaa, 0x7c, - 0x72, 0xa7, 0x3e, 0x11, 0x79, 0x4e, 0x27, 0x56, 0x16, 0x19, 0x88, 0xd0, 0x42, 0x50, 0x27, 0x76, - 0xa3, 0xb1, 0x30, 0x91, 0x8a, 0x82, 0x3e, 0xb4, 0x1a, 0x8e, 0x09, 0xe5, 0xbb, 0x1c, 0x99, 0x8d, - 0xc7, 0x40, 0x44, 0x2b, 0x4b, 0xa9, 0x95, 0x1d, 0x05, 0x2d, 0x78, 0x53, 0x5a, 0xec, 0xaf, 0xf2, - 0xc3, 0x40, 0x84, 0x7f, 0x53, 0x9a, 0xef, 0xad, 0x9c, 0x54, 0x02, 0x4a, 0xb2, 0xde, 0x57, 0x1d, - 0x14, 0x05, 0x3d, 0x13, 0xd5, 0xd6, 0x9d, 0x51, 0x05, 0x2b, 0xaa, 0x76, 0x71, 0xb5, 0x67, 0x8a, - 0xeb, 0x3d, 0xe8, 0x28, 0x39, 0x79, 0xd2, 0xaf, 0xaa, 0x83, 0xdc, 0x02, 0xed, 0xdc, 0xe8, 0x54, - 0x73, 0xc3, 0x8e, 0xee, 0xda, 0x2d, 0xd1, 0xed, 0x16, 0xd1, 0xfd, 0x05, 0xf4, 0xce, 0xb2, 0x38, - 0xee, 0x23, 0xe7, 0xc1, 0x18, 0xf7, 0xde, 0x0c, 0x70, 0x7a, 0x1c, 0xf1, 0xd4, 0x47, 0x9e, 0x88, - 0x3c, 0x43, 0xc6, 0xf6, 0x69, 0x88, 0x32, 0xc8, 0x0d, 0x3f, 0x27, 0x85, 0x85, 0xc8, 0x98, 0x50, - 0x40, 0x77, 0x48, 0x45, 0xb9, 0x3b, 0xb0, 0x14, 0x47, 0x5c, 0xe4, 0x7a, 0xfd, 0x69, 0xfb, 0xd9, - 0xd6, 0x9c, 0x52, 0xe9, 0xf3, 0xf1, 0x41, 0x90, 0x06, 0xbe, 0x5c, 0xe7, 0x4d, 0xe0, 0x8b, 0xf3, - 0x77, 0x9f, 0xde, 0x7a, 0x82, 0x89, 0x1e, 0x26, 0x9b, 0x40, 0x44, 0x49, 0x31, 0x7c, 0x98, 0x90, - 0x50, 0x9b, 0x2b, 0x39, 0x52, 0x8f, 0x8e, 0x9f, 0x93, 0xde, 0x3b, 0xe0, 0x1e, 0x61, 0xda, 0x0f, - 0x5e, 0xef, 0x92, 0xb0, 0x1f, 0x91, 0x01, 0x4e, 0x7d, 0x9c, 0x7a, 0xcf, 0xe1, 0xd1, 0x0c, 0xca, - 0x13, 0xa1, 0xc0, 0x24, 0x78, 0x3d, 0xc0, 0xa9, 0x54, 0xa0, 0xe3, 0x6b, 0x4a, 0xe2, 0x72, 0x95, - 0x6e, 0x8f, 0x9a, 0xf2, 0xa6, 0xd0, 0x15, 0x11, 0x1a, 0x20, 0x09, 0xfb, 0x7c, 0x2c, 0x45, 0x6c, - 0x43, 0x5b, 0x79, 0xa0, 0xcf, 0xc7, 0x65, 0xbf, 0x35, 0x20, 0xb1, 0x62, 0x18, 0x47, 0x48, 0x52, - 0xb5, 0x42, 0x5b, 0x63, 0x40, 0x22, 0x19, 0x39, 0x92, 0xb0, 0x38, 0x72, 0xea, 0x7e, 0x41, 0x7b, - 0x7f, 0x6d, 0xc0, 0xb2, 0x76, 0xa8, 0x9c, 0x0e, 0xc5, 0x11, 0x57, 0xf8, 0x4b, 0x51, 0x2a, 0x19, - 0x87, 0xd7, 0xe5, 0x9c, 0xa6, 0x28, 0x73, 0xb2, 0xab, 0xdb, 0x93, 0x5d, 0x45, 0xa7, 0xa5, 0x59, - 0x9d, 0x2a, 0x76, 0x35, 0x66, 0xed, 0xfa, 0x3a, 0xac, 0x73, 0x59, 0x30, 0x67, 0x71, 0x90, 0x8e, - 0x28, 0x9b, 0xe8, 0x13, 0xab, 0xe1, 0xcf, 0xe0, 0xa2, 0xd9, 0x2b, 0xac, 0x28, 0x58, 0x55, 0x91, - 0x15, 0x54, 0x94, 0x87, 0x42, 0xf2, 0xc2, 0x55, 0xa3, 0x82, 0x0d, 0x2a, 0xdd, 0x38, 0x8f, 0x28, - 0x91, 0x93, 0xae, 0xaa, 0x4f, 0x13, 0x12, 0x96, 0x4f, 0xf8, 0xf8, 0x90, 0xd1, 0x89, 0x1e, 0x18, - 0x72, 0x52, 0x5a, 0x4e, 0x49, 0x8a, 0x24, 0x95, 0xbc, 0x6d, 0xc5, 0x6b, 0x40, 0x82, 0x57, 0x93, - 0xb2, 0x38, 0x57, 0xfd, 0x9c, 0x74, 0xd7, 0xa1, 0xce, 0x71, 0xaa, 0x2b, 0x4e, 0xfc, 0xb4, 0x22, - 0xd7, 0xb5, 0x23, 0x57, 0x69, 0x05, 0xeb, 0xf2, 0xab, 0xd9, 0x0a, 0xca, 0x59, 0x7f, 0xc3, 0x9a, - 0xf5, 0x77, 0x61, 0x99, 0x26, 0x22, 0xcf, 0x79, 0xcf, 0x95, 0x35, 0xf6, 0xb5, 0xdb, 0x6b, 0x6c, - 0xe7, 0x54, 0xad, 0x7c, 0x4e, 0x52, 0xf6, 0xc6, 0xcf, 0xf9, 0xdc, 0x63, 0xe8, 0xd2, 0xd1, 0x28, - 0x8e, 0x08, 0x9e, 0x65, 0xfc, 0x52, 0x9e, 0x6c, 0x8f, 0xe4, 0xc9, 0xe6, 0xcd, 0x11, 0x75, 0x6a, - 0xaf, 0xf4, 0xab, 0xac, 0x5b, 0x1f, 0xc2, 0xaa, 0xb9, 0x8d, 0x70, 0xc3, 0x15, 0xbe, 0xd1, 0x39, - 0x28, 0x7e, 0x8a, 0x61, 0xef, 0x3a, 0x88, 0x33, 0x75, 0x0c, 0xac, 0xf8, 0x8a, 0xf8, 0xb0, 0xf6, - 0x1d, 0xc7, 0xfb, 0x8d, 0x03, 0xdd, 0xca, 0x06, 0x62, 0x75, 0x1a, 0xa5, 0x31, 0x6a, 0x09, 0x8a, - 0x70, 0x5d, 0x58, 0x0a, 0x91, 0x0f, 0x75, 0x0a, 0xcb, 0xdf, 0xba, 0x93, 0xd5, 0x8b, 0x71, 0x51, - 0x5c, 0xe8, 0x4e, 0x07, 0x42, 0xd0, 0x80, 0x66, 0x24, 0x2c, 0x2e, 0x74, 0x06, 0x26, 0x52, 0x28, - 0x3a, 0x1d, 0xec, 0x05, 0xe1, 0x18, 0xd5, 0xb5, 0xab, 0x21, 0x75, 0xb2, 0x41, 0x2f, 0x84, 0x95, - 0xf3, 0x28, 0xe1, 0xfb, 0x74, 0x32, 0x11, 0x81, 0x08, 0x31, 0x15, 0xb3, 0xaa, 0x23, 0xe3, 0xad, - 0x29, 0x91, 0x2a, 0x21, 0x8e, 0x82, 0x2c, 0x4e, 0xc5, 0xd2, 0xbc, 0x70, 0x0d, 0x48, 0x5e, 0x38, - 0x38, 0x25, 0x07, 0x8a, 0x5b, 0xe9, 0x69, 0x20, 0xde, 0xdf, 0x6a, 0xb0, 0x2e, 0x07, 0x87, 0x7d, - 0x19, 0xf6, 0x50, 0x32, 0x3d, 0x83, 0x86, 0x2c, 0x43, 0x3d, 0xac, 0xdc, 0x3d, 0x6c, 0xa8, 0xa5, - 0xee, 0xf7, 0xa1, 0x49, 0x13, 0x39, 0x72, 0xaa, 0x09, 0xe5, 0xfd, 0xdb, 0x98, 0xec, 0xbb, 0x9d, - 0xaf, 0xb9, 0xdc, 0x43, 0x00, 0x75, 0xed, 0x3c, 0x2e, 0x5b, 0xf7, 0xa2, 0x32, 0x0c, 0x4e, 0xe1, - 0xdc, 0xa2, 0x0d, 0x17, 0x17, 0xbc, 0xba, 0x6f, 0x83, 0xee, 0x09, 0xac, 0x49, 0xb5, 0x4f, 0xf3, - 0xa9, 0x53, 0xc6, 0x60, 0xf1, 0x1d, 0x2b, 0xdc, 0xde, 0xef, 0x1c, 0xed, 0x46, 0xf1, 0x75, 0x80, - 0xca, 0xf7, 0xa5, 0x4b, 0x9c, 0x7b, 0xb9, 0x64, 0x0b, 0x56, 0x26, 0x99, 0x31, 0x04, 0xd7, 0xfd, - 0x82, 0x2e, 0x43, 0x54, 0x5f, 0x38, 0x44, 0xde, 0xef, 0x1d, 0xe8, 0x7d, 0x4c, 0x23, 0x22, 0x3f, - 0xec, 0x26, 0x49, 0xac, 0x5f, 0x21, 0xee, 0x1d, 0xf3, 0x1f, 0x40, 0x2b, 0x50, 0x62, 0x48, 0xaa, - 0xc3, 0xbe, 0xc0, 0x60, 0x5b, 0xf2, 0x18, 0x33, 0x4a, 0xdd, 0x9c, 0x51, 0xbc, 0x3f, 0x3a, 0xb0, - 0xa6, 0x9c, 0xf2, 0xe3, 0x2c, 0x4a, 0xef, 0xad, 0xdf, 0x1e, 0xac, 0x4c, 0xb3, 0x28, 0xbd, 0x47, - 0x56, 0x16, 0x7c, 0xb3, 0xf9, 0x54, 0x9f, 0x93, 0x4f, 0xde, 0x9f, 0x1c, 0x78, 0x5c, 0x75, 0xeb, - 0xee, 0x70, 0x88, 0xc9, 0xdb, 0x2c, 0x29, 0x6b, 0x46, 0x5b, 0xaa, 0xcc, 0x68, 0x73, 0x55, 0xf6, - 0xf1, 0x53, 0x1c, 0xfe, 0xff, 0xaa, 0xfc, 0xab, 0x1a, 0x7c, 0xe9, 0xa8, 0x28, 0xbc, 0x73, 0x16, - 0x10, 0x3e, 0x42, 0xc6, 0xde, 0xa2, 0xbe, 0xc7, 0xd0, 0x21, 0x78, 0x53, 0xea, 0xa4, 0xcb, 0x71, - 0x51, 0x31, 0x36, 0xf3, 0x62, 0xbd, 0xcb, 0xfb, 0x8f, 0x03, 0xeb, 0x4a, 0xce, 0x8f, 0xa2, 0xe1, - 0xd5, 0x5b, 0x34, 0xfe, 0x04, 0xd6, 0xae, 0xa4, 0x06, 0x82, 0xba, 0x47, 0xdb, 0xae, 0x70, 0x2f, - 0x68, 0xfe, 0x7f, 0x1d, 0xd8, 0x50, 0x82, 0x5e, 0x90, 0xeb, 0xe8, 0x6d, 0x26, 0xeb, 0x19, 0x74, - 0x23, 0xa5, 0xc2, 0x3d, 0x1d, 0x50, 0x65, 0x5f, 0xd0, 0x03, 0x7f, 0x76, 0xa0, 0xab, 0x24, 0x3d, - 0x27, 0x29, 0xb2, 0x7b, 0xdb, 0xff, 0x43, 0x68, 0x23, 0x49, 0x59, 0x40, 0xee, 0xd3, 0x21, 0x4d, - 0xd6, 0x05, 0x9b, 0xe4, 0x15, 0x6c, 0xa8, 0x2b, 0xbc, 0xd1, 0x71, 0xc4, 0x2c, 0x1b, 0x84, 0x6a, - 0x3c, 0x75, 0x24, 0x53, 0x4e, 0xda, 0x8f, 0x33, 0xfa, 0x75, 0xbd, 0x7c, 0x9c, 0x79, 0x02, 0x10, - 0x84, 0xe1, 0x27, 0x94, 0x85, 0x11, 0xc9, 0x8f, 0x0f, 0x03, 0xf1, 0x3e, 0x86, 0x55, 0x31, 0x4d, - 0x9f, 0x1b, 0x97, 0xf1, 0x3b, 0x9f, 0x0b, 0xcc, 0x8b, 0x7c, 0xcd, 0xbe, 0xc8, 0x7b, 0x3f, 0x87, - 0x2f, 0xcc, 0x28, 0x2e, 0xbd, 0xbe, 0xaf, 0xde, 0x18, 0xf2, 0x4d, 0xb4, 0xf3, 0xbf, 0x32, 0xc7, - 0x85, 0xa6, 0x2e, 0xbe, 0xc5, 0xe4, 0xfd, 0xd2, 0x81, 0x77, 0x67, 0xc4, 0xef, 0x26, 0x09, 0xa3, - 0xd7, 0x3a, 0xb9, 0x1f, 0x62, 0x1b, 0xbb, 0xb5, 0xd6, 0xaa, 0xad, 0x75, 0xae, 0x12, 0xd6, 0x71, - 0xf0, 0x39, 0x28, 0xf1, 0x07, 0x07, 0xba, 0x5a, 0x89, 0x30, 0xd4, 0xdb, 0x7e, 0x1b, 0x9a, 0xea, - 0x7d, 0x52, 0x6f, 0xf8, 0xee, 0xdc, 0x0d, 0xf3, 0x77, 0x55, 0x5f, 0x2f, 0x9e, 0xcd, 0xc8, 0xda, - 0xbc, 0x31, 0xf0, 0xbb, 0x45, 0x07, 0x58, 0xf8, 0x05, 0x51, 0x33, 0x78, 0x3f, 0xcd, 0x93, 0xf9, - 0x00, 0x63, 0x7c, 0x48, 0x1f, 0x79, 0x2f, 0x61, 0x4d, 0x3e, 0x96, 0x96, 0x3e, 0x78, 0x10, 0xb1, - 0x9f, 0xc0, 0xba, 0x14, 0xfb, 0xe0, 0xfa, 0x16, 0xd5, 0x21, 0xfc, 0xb3, 0x7f, 0x19, 0x90, 0xf1, - 0x43, 0x4a, 0xff, 0x06, 0x3c, 0xca, 0x7d, 0xff, 0x32, 0x09, 0x8b, 0x2b, 0xca, 0x2d, 0x0f, 0x33, - 0xde, 0x37, 0x61, 0x73, 0x9f, 0x92, 0x6b, 0x64, 0x5c, 0x46, 0x59, 0xb1, 0xe4, 0x1c, 0x56, 0xf1, - 0x6b, 0xca, 0x1b, 0xc0, 0x86, 0x7e, 0x52, 0x3c, 0x0b, 0xc6, 0x11, 0x51, 0x5d, 0xe9, 0x09, 0x40, - 0x12, 0x8c, 0xf3, 0xbf, 0x14, 0xd4, 0xbb, 0x93, 0x81, 0x88, 0xef, 0xfc, 0x92, 0xde, 0xe8, 0xef, - 0x35, 0xf5, 0xbd, 0x44, 0xbc, 0x9f, 0x80, 0xeb, 0x23, 0x4f, 0x28, 0xe1, 0x68, 0x48, 0xdd, 0x86, - 0xf6, 0x7e, 0xc6, 0x18, 0x12, 0xb1, 0x55, 0xfe, 0xbe, 0x6e, 0x42, 0x42, 0xee, 0xa0, 0x94, 0xab, - 0xde, 0x2a, 0x0c, 0x64, 0xef, 0xf1, 0xcf, 0xb6, 0x76, 0x3e, 0x50, 0xff, 0x60, 0x7e, 0x34, 0xe3, - 0xc6, 0x8b, 0xa6, 0xfc, 0x47, 0xf3, 0x5b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x45, 0x08, - 0x08, 0xe4, 0x1c, 0x00, 0x00, +var fileDescriptor_ws_a63d7f660800bc8e = []byte{ + // 2605 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x23, 0x49, + 0x15, 0xa7, 0xdb, 0xb1, 0x13, 0x3f, 0xc7, 0x71, 0xd2, 0x59, 0x82, 0x19, 0x66, 0x87, 0xd0, 0x8a, + 0x96, 0x61, 0x81, 0x2c, 0x1a, 0x84, 0x04, 0xbb, 0x30, 0x28, 0x1f, 0xf3, 0xb5, 0xc4, 0x33, 0xd9, + 0xf6, 0x0c, 0x8b, 0x00, 0x69, 0x54, 0x71, 0x57, 0x9c, 0xde, 0xb4, 0xab, 0xda, 0x5d, 0xdd, 0x99, + 0x89, 0x84, 0x84, 0x04, 0x12, 0xe2, 0xc6, 0x09, 0xae, 0x48, 0x5c, 0x10, 0x12, 0x5a, 0xed, 0x01, + 0x6e, 0x88, 0x13, 0xff, 0x00, 0x47, 0xc4, 0x8d, 0x33, 0x57, 0x0e, 0x48, 0x48, 0xa0, 0xfa, 0xe8, + 0xee, 0xaa, 0x6e, 0x3b, 0xf1, 0x5a, 0xd1, 0x0e, 0x68, 0xb8, 0xf9, 0xbd, 0xae, 0xf7, 0xea, 0xd5, + 0xef, 0x7d, 0xd4, 0xab, 0x2a, 0x43, 0x87, 0xf9, 0xa7, 0x4f, 0x9f, 0xb1, 0x37, 0x9e, 0xb1, 0xed, + 0x28, 0xa6, 0x09, 0x75, 0xd6, 0x18, 0x8e, 0xcf, 0x70, 0xfc, 0x14, 0x45, 0xc1, 0xd3, 0x08, 0xc5, + 0x68, 0xc4, 0xdc, 0x7f, 0xd8, 0xd0, 0xbc, 0x17, 0xd3, 0x34, 0x7a, 0x40, 0x8e, 0xa9, 0xd3, 0x85, + 0xc5, 0xa1, 0x20, 0xf6, 0xbb, 0xd6, 0xa6, 0x75, 0xb3, 0xe9, 0x65, 0xa4, 0x73, 0x1d, 0x9a, 0xe2, + 0xe7, 0x43, 0x34, 0xc2, 0x5d, 0x5b, 0x7c, 0x2b, 0x18, 0x8e, 0x0b, 0xcb, 0x84, 0x26, 0xc1, 0x71, + 0x30, 0x40, 0x49, 0x40, 0x49, 0xb7, 0x26, 0x06, 0x18, 0x3c, 0x3e, 0x26, 0x20, 0x49, 0x4c, 0xfd, + 0x74, 0x20, 0xc6, 0x2c, 0xc8, 0x31, 0x3a, 0x8f, 0xcf, 0x7f, 0x8c, 0x06, 0xf8, 0x89, 0x77, 0xd0, + 0xad, 0xcb, 0xf9, 0x15, 0xe9, 0x6c, 0x42, 0x8b, 0x3e, 0x23, 0x38, 0x7e, 0xc2, 0x70, 0xfc, 0x60, + 0xbf, 0xdb, 0x10, 0x5f, 0x75, 0x96, 0x73, 0x03, 0x60, 0x10, 0x63, 0x94, 0xe0, 0xc7, 0xc1, 0x08, + 0x77, 0x17, 0x37, 0xad, 0x9b, 0x6d, 0x4f, 0xe3, 0x70, 0x0d, 0x23, 0x3c, 0x3a, 0xc2, 0xf1, 0x1e, + 0x4d, 0x49, 0xd2, 0x5d, 0x12, 0x03, 0x74, 0x96, 0xb3, 0x02, 0x36, 0x7e, 0xde, 0x6d, 0x0a, 0xd5, + 0x36, 0x7e, 0xee, 0x6c, 0x40, 0x83, 0x25, 0x28, 0x49, 0x59, 0x17, 0x36, 0xad, 0x9b, 0x75, 0x4f, + 0x51, 0xce, 0x16, 0xb4, 0x85, 0x5e, 0x9a, 0x59, 0xd3, 0x12, 0x22, 0x26, 0x33, 0x47, 0xec, 0xf1, + 0x79, 0x84, 0xbb, 0xcb, 0x42, 0x41, 0xc1, 0x70, 0xff, 0x62, 0xc3, 0xba, 0xc0, 0xbd, 0x27, 0x0c, + 0xb8, 0x9b, 0x86, 0xe1, 0x25, 0x1e, 0xd8, 0x80, 0x46, 0x2a, 0xa7, 0x93, 0xf0, 0x2b, 0x8a, 0xcf, + 0x13, 0xd3, 0x10, 0x1f, 0xe0, 0x33, 0x1c, 0x0a, 0xe0, 0xeb, 0x5e, 0xc1, 0x70, 0xae, 0xc1, 0xd2, + 0x7b, 0x34, 0x20, 0x02, 0x93, 0x05, 0xf1, 0x31, 0xa7, 0xf9, 0x37, 0x12, 0x0c, 0x4e, 0x09, 0x77, + 0xa9, 0x84, 0x3b, 0xa7, 0x75, 0x4f, 0x34, 0x4c, 0x4f, 0xbc, 0x06, 0x2b, 0x28, 0x8a, 0x7a, 0x88, + 0x0c, 0x71, 0x2c, 0x27, 0x5d, 0x14, 0x7a, 0x4b, 0x5c, 0xee, 0x0f, 0x3e, 0x53, 0x9f, 0xa6, 0xf1, + 0x00, 0x0b, 0xb8, 0xeb, 0x9e, 0xc6, 0xe1, 0x7a, 0x68, 0x84, 0x63, 0x0d, 0x46, 0x89, 0x7c, 0x89, + 0xab, 0xbc, 0x02, 0xb9, 0x57, 0xb8, 0x1f, 0xd3, 0x04, 0xdf, 0x21, 0xbe, 0x58, 0x54, 0x4b, 0xf9, + 0xb1, 0x60, 0xb9, 0x3f, 0xb1, 0x60, 0xe5, 0x30, 0x3d, 0x0a, 0x83, 0x81, 0x50, 0xc1, 0x61, 0x2d, + 0xc0, 0xb3, 0x0c, 0xf0, 0x74, 0x08, 0xec, 0xe9, 0x10, 0xd4, 0x4c, 0x08, 0x36, 0xa0, 0x31, 0xc4, + 0xc4, 0xc7, 0xb1, 0x82, 0x54, 0x51, 0xca, 0xd4, 0x7a, 0x66, 0xaa, 0xfb, 0x0b, 0x1b, 0x96, 0x3e, + 0x62, 0x13, 0x36, 0xa1, 0x15, 0x9d, 0x50, 0x82, 0x1f, 0xa6, 0x3c, 0xac, 0x94, 0x2d, 0x3a, 0xcb, + 0x79, 0x05, 0xea, 0x47, 0x41, 0x9c, 0x9c, 0x08, 0xbf, 0xb6, 0x3d, 0x49, 0x70, 0x2e, 0x1e, 0xa1, + 0x40, 0x3a, 0xb3, 0xe9, 0x49, 0x42, 0x2d, 0x68, 0x29, 0xc7, 0xde, 0xcc, 0xb1, 0x66, 0x25, 0xc7, + 0xaa, 0xb1, 0x01, 0x93, 0x62, 0xc3, 0xfd, 0xa7, 0x05, 0x70, 0x37, 0x0e, 0x30, 0xf1, 0x05, 0x34, + 0xa5, 0xe4, 0xb6, 0xaa, 0xc9, 0xbd, 0x01, 0x8d, 0x18, 0x8f, 0x50, 0x7c, 0x9a, 0x05, 0xbf, 0xa4, + 0x4a, 0x06, 0xd5, 0x2a, 0x06, 0xbd, 0x05, 0x70, 0x2c, 0xe6, 0xe1, 0x7a, 0x04, 0x54, 0xad, 0x5b, + 0x9f, 0xda, 0xae, 0x94, 0xc1, 0xed, 0xcc, 0x4b, 0x9e, 0x36, 0x9c, 0x67, 0x16, 0xf2, 0x7d, 0x15, + 0xc0, 0x75, 0x99, 0x59, 0x39, 0x63, 0x42, 0xfc, 0x36, 0x2e, 0x88, 0xdf, 0xc5, 0x3c, 0x28, 0xfe, + 0x6e, 0x41, 0x73, 0x37, 0x44, 0x83, 0xd3, 0x19, 0x97, 0x6e, 0x2e, 0xd1, 0xae, 0x2c, 0xf1, 0x1e, + 0xb4, 0x8f, 0xb8, 0xba, 0x6c, 0x09, 0x02, 0x85, 0xd6, 0xad, 0xcf, 0x4c, 0x58, 0xa5, 0x99, 0x14, + 0x9e, 0x29, 0x67, 0x2e, 0x77, 0xe1, 0xf2, 0xe5, 0xd6, 0x2f, 0x58, 0x6e, 0x23, 0x5f, 0xee, 0x9f, + 0x6d, 0x58, 0x16, 0x85, 0xce, 0xc3, 0xe3, 0x14, 0xb3, 0xc4, 0xf9, 0x06, 0x2c, 0xa5, 0x99, 0xa9, + 0xd6, 0xac, 0xa6, 0xe6, 0x22, 0xce, 0x9b, 0xaa, 0xac, 0x0a, 0x79, 0x5b, 0xc8, 0x5f, 0x9f, 0x20, + 0x9f, 0xef, 0x69, 0x5e, 0x31, 0x9c, 0x6f, 0x41, 0x27, 0x88, 0xf8, 0x21, 0xf6, 0x30, 0x4b, 0xc3, + 0x44, 0x55, 0x4b, 0x83, 0x27, 0x23, 0x6d, 0xdc, 0x63, 0x43, 0xb5, 0x41, 0x29, 0x8a, 0xa3, 0x23, + 0xc7, 0xf1, 0x4f, 0x72, 0xe9, 0x05, 0x83, 0x27, 0x6a, 0x8c, 0xc7, 0xc2, 0x43, 0x32, 0xad, 0x32, + 0xb2, 0x98, 0x53, 0xa1, 0x26, 0x03, 0xc1, 0xe0, 0x71, 0x17, 0x4b, 0x5a, 0x28, 0x90, 0x3b, 0x93, + 0xc6, 0x29, 0x6f, 0x4c, 0xee, 0x5f, 0x6b, 0xd0, 0x96, 0xe9, 0x93, 0x81, 0x7a, 0x83, 0xc7, 0x39, + 0x1d, 0x19, 0x51, 0xa4, 0x71, 0xb8, 0x15, 0x9c, 0x7a, 0x68, 0x16, 0x1a, 0x83, 0xc7, 0x43, 0x91, + 0xd3, 0x77, 0x8d, 0x82, 0xa3, 0xb3, 0xb2, 0x59, 0xee, 0xe9, 0x85, 0x47, 0xe3, 0xf0, 0x52, 0x96, + 0x50, 0x23, 0x3a, 0x72, 0x9a, 0xcb, 0x26, 0x34, 0x9f, 0x5f, 0xc6, 0x87, 0xc6, 0xe1, 0xf8, 0x26, + 0x34, 0x9b, 0x5b, 0x82, 0x54, 0x30, 0xa4, 0x66, 0x35, 0xaf, 0xdc, 0x4a, 0x72, 0xba, 0xe2, 0xd5, + 0xe6, 0x85, 0x5e, 0x05, 0xc3, 0xab, 0x66, 0x72, 0xb5, 0x2a, 0xc9, 0xb5, 0x05, 0x6d, 0xa9, 0x27, + 0x0b, 0xfa, 0x65, 0xb9, 0xd5, 0x1b, 0x4c, 0x33, 0x36, 0xda, 0xe5, 0xd8, 0x30, 0xbd, 0xbb, 0x32, + 0xc5, 0xbb, 0x9d, 0xdc, 0xbb, 0x3f, 0x80, 0xee, 0x61, 0x1a, 0x86, 0x3d, 0xcc, 0x18, 0x1a, 0xe2, + 0xdd, 0xf3, 0x3e, 0x1e, 0x1f, 0x04, 0x2c, 0xf1, 0x30, 0x8b, 0x78, 0x9c, 0xe1, 0x38, 0xde, 0xa3, + 0x3e, 0x16, 0x4e, 0xae, 0x7b, 0x19, 0xc9, 0x57, 0x88, 0xe3, 0x98, 0x1b, 0xa0, 0x2a, 0xa4, 0xa4, + 0x9c, 0x6d, 0x58, 0x08, 0x03, 0xc6, 0x63, 0xbd, 0x76, 0xb3, 0x75, 0xeb, 0xda, 0x84, 0x54, 0xe9, + 0xb1, 0xe1, 0x3e, 0x4a, 0x90, 0x27, 0xc6, 0xb9, 0x23, 0xf8, 0xc4, 0xe4, 0xd9, 0xc7, 0x53, 0x77, + 0x30, 0x5e, 0xc3, 0x44, 0x11, 0x08, 0x28, 0xc9, 0xdb, 0x13, 0x9d, 0xc5, 0xcd, 0x66, 0x52, 0x8f, + 0xb0, 0xa3, 0xed, 0x65, 0xa4, 0xfb, 0x0a, 0x38, 0xf7, 0x70, 0xd2, 0x43, 0xcf, 0x77, 0x88, 0xdf, + 0x0b, 0x48, 0x1f, 0x8f, 0x3d, 0x3c, 0x76, 0xef, 0xc0, 0x7a, 0x85, 0xcb, 0x22, 0x6e, 0xc0, 0x08, + 0x3d, 0xef, 0xe3, 0xb1, 0x30, 0xa0, 0xed, 0x29, 0x4a, 0xf0, 0xc5, 0x28, 0x55, 0x1e, 0x15, 0xe5, + 0x8e, 0xa1, 0xc3, 0x3d, 0xd4, 0xc7, 0xc4, 0xef, 0xb1, 0xa1, 0x50, 0xb1, 0x09, 0x2d, 0x89, 0x40, + 0x8f, 0x0d, 0x8b, 0x7a, 0xab, 0xb1, 0xf8, 0x88, 0x41, 0x18, 0x60, 0x92, 0xc8, 0x11, 0x6a, 0x35, + 0x1a, 0x8b, 0x07, 0x23, 0xc3, 0xaa, 0xfd, 0xe0, 0x59, 0x52, 0xf3, 0x72, 0xda, 0xfd, 0x43, 0x1d, + 0x16, 0x15, 0xa0, 0xa2, 0x7f, 0xe4, 0x5b, 0x5c, 0x8e, 0x97, 0xa4, 0x64, 0x30, 0x0e, 0xce, 0x8a, + 0x4e, 0x4e, 0x52, 0x7a, 0xef, 0x57, 0x33, 0x7b, 0xbf, 0x92, 0x4d, 0x0b, 0x55, 0x9b, 0x4a, 0xeb, + 0xaa, 0x57, 0xd7, 0xf5, 0x3a, 0xac, 0x32, 0x91, 0x30, 0x87, 0x21, 0x4a, 0x8e, 0x69, 0x3c, 0x52, + 0x3b, 0x56, 0xdd, 0xab, 0xf0, 0x79, 0xb1, 0x97, 0xbc, 0x3c, 0x61, 0x65, 0x46, 0x96, 0xb8, 0x3c, + 0x3d, 0x24, 0x27, 0x4b, 0x5c, 0xd9, 0x2a, 0x98, 0x4c, 0x69, 0x1b, 0x63, 0x01, 0x25, 0xa2, 0x17, + 0x96, 0xf9, 0xa9, 0xb3, 0xf8, 0xca, 0x47, 0x6c, 0x78, 0x37, 0xa6, 0x23, 0xd5, 0x30, 0x64, 0xa4, + 0x58, 0x39, 0x25, 0x09, 0x26, 0x89, 0x90, 0x6d, 0x49, 0x59, 0x8d, 0xc5, 0x65, 0x15, 0x29, 0x92, + 0x73, 0xd9, 0xcb, 0x48, 0x67, 0x15, 0x6a, 0x0c, 0x8f, 0x55, 0xc6, 0xf1, 0x9f, 0x86, 0xe7, 0x3a, + 0xa6, 0xe7, 0x4a, 0xa5, 0x60, 0x55, 0x7c, 0xd5, 0x4b, 0x41, 0x71, 0x1a, 0x58, 0x33, 0x4e, 0x03, + 0x3b, 0xb0, 0x48, 0x23, 0x1e, 0xe7, 0xac, 0xeb, 0x88, 0x1c, 0xfb, 0xec, 0xf4, 0x1c, 0xdb, 0x7e, + 0x24, 0x47, 0xde, 0x21, 0x49, 0x7c, 0xee, 0x65, 0x72, 0xce, 0x01, 0x74, 0xe8, 0xf1, 0x71, 0x18, + 0x10, 0x7c, 0x98, 0xb2, 0x13, 0xb1, 0xb3, 0xad, 0x8b, 0x9d, 0xcd, 0x9d, 0xa0, 0xea, 0x91, 0x39, + 0xd2, 0x2b, 0x8b, 0x5e, 0x7b, 0x13, 0x96, 0xf5, 0x69, 0x38, 0x0c, 0xa7, 0xf8, 0x5c, 0xc5, 0x20, + 0xff, 0xc9, 0x9b, 0xbd, 0x33, 0x14, 0xa6, 0x72, 0x1b, 0x58, 0xf2, 0x24, 0xf1, 0xa6, 0xfd, 0x55, + 0xcb, 0xfd, 0xb9, 0x05, 0x9d, 0xd2, 0x04, 0x7c, 0x74, 0x12, 0x24, 0x21, 0x56, 0x1a, 0x24, 0xe1, + 0x38, 0xb0, 0xe0, 0x63, 0x36, 0x50, 0x21, 0x2c, 0x7e, 0xab, 0x4a, 0x56, 0xcb, 0xdb, 0x45, 0x7e, + 0xe4, 0x7b, 0xd4, 0xe7, 0x8a, 0xfa, 0x34, 0x25, 0x7e, 0x7e, 0xe4, 0xd3, 0x78, 0x3c, 0x84, 0x82, + 0x47, 0xfd, 0x5d, 0xe4, 0x0f, 0xb1, 0x3c, 0x98, 0xd5, 0x85, 0x4d, 0x26, 0xd3, 0xf5, 0x61, 0xe9, + 0x71, 0x10, 0xb1, 0x3d, 0x3a, 0x1a, 0x71, 0x47, 0xf8, 0x38, 0xe1, 0xbd, 0xaa, 0x25, 0xfc, 0xad, + 0x28, 0x1e, 0x2a, 0x3e, 0x3e, 0x46, 0x69, 0x98, 0xf0, 0xa1, 0x59, 0xe2, 0x6a, 0x2c, 0x71, 0x24, + 0x61, 0x94, 0xec, 0x4b, 0x69, 0x69, 0xa7, 0xc6, 0x71, 0xff, 0x64, 0xc3, 0xaa, 0x68, 0x1c, 0xf6, + 0x84, 0xdb, 0x7d, 0x21, 0x74, 0x0b, 0xea, 0x22, 0x0d, 0x55, 0xb3, 0x72, 0x71, 0xb3, 0x21, 0x87, + 0x3a, 0xb7, 0xa1, 0x41, 0x23, 0xd1, 0x72, 0xca, 0x0e, 0xe5, 0xb5, 0x69, 0x42, 0xe6, 0xe9, 0xcf, + 0x53, 0x52, 0xce, 0x5d, 0x00, 0x79, 0x30, 0x3d, 0x28, 0x4a, 0xf7, 0xac, 0x3a, 0x34, 0x49, 0x0e, + 0x6e, 0x5e, 0x86, 0xf3, 0x23, 0x60, 0xcd, 0x33, 0x99, 0xce, 0x43, 0x58, 0x11, 0x66, 0x3f, 0xca, + 0xba, 0x4e, 0xe1, 0x83, 0xd9, 0x67, 0x2c, 0x49, 0xbb, 0xbf, 0xb2, 0x14, 0x8c, 0xfc, 0x6b, 0x1f, + 0x4b, 0xec, 0x0b, 0x48, 0xac, 0xb9, 0x20, 0xb9, 0x06, 0x4b, 0xfc, 0x8c, 0x97, 0x37, 0xc1, 0x35, + 0x2f, 0xa7, 0x0b, 0x17, 0xd5, 0x66, 0x76, 0x91, 0xfb, 0x6b, 0x0b, 0xba, 0x6f, 0xd3, 0x80, 0x88, + 0x0f, 0x3b, 0x51, 0x14, 0xaa, 0x7b, 0x8a, 0xb9, 0x7d, 0xfe, 0x4d, 0x68, 0x22, 0xa9, 0x86, 0x24, + 0xca, 0xed, 0x33, 0x34, 0xb6, 0x85, 0x8c, 0xd6, 0xa3, 0xd4, 0xf4, 0x1e, 0xc5, 0x7d, 0xdf, 0x82, + 0x15, 0x09, 0xca, 0x3b, 0x69, 0x90, 0xcc, 0x6d, 0xdf, 0x2e, 0x2c, 0x8d, 0xd3, 0x20, 0x99, 0x23, + 0x2a, 0x73, 0xb9, 0x6a, 0x3c, 0xd5, 0x26, 0xc4, 0x93, 0xfb, 0x81, 0x05, 0xd7, 0xcb, 0xb0, 0xee, + 0x0c, 0x06, 0x38, 0x7a, 0x91, 0x29, 0x65, 0xf4, 0x68, 0x0b, 0xa5, 0x1e, 0x6d, 0xa2, 0xc9, 0x1e, + 0x7e, 0x0f, 0x0f, 0xfe, 0x7b, 0x4d, 0xfe, 0xb1, 0x0d, 0x9f, 0xbc, 0x97, 0x27, 0xde, 0xe3, 0x18, + 0x11, 0x76, 0x8c, 0xe3, 0xf8, 0x05, 0xda, 0x7b, 0x00, 0x6d, 0x82, 0x9f, 0x15, 0x36, 0xa9, 0x74, + 0x9c, 0x55, 0x8d, 0x29, 0x3c, 0x5b, 0xed, 0x72, 0xff, 0x65, 0xc1, 0xaa, 0xd4, 0xf3, 0xad, 0x60, + 0x70, 0xfa, 0x02, 0x17, 0xff, 0x10, 0x56, 0x4e, 0x85, 0x05, 0x9c, 0x9a, 0xa3, 0x6c, 0x97, 0xa4, + 0x67, 0x5c, 0xfe, 0xbf, 0x2d, 0x58, 0x93, 0x8a, 0x1e, 0x90, 0xb3, 0xe0, 0x45, 0x06, 0xeb, 0x21, + 0x74, 0x02, 0x69, 0xc2, 0x9c, 0x00, 0x94, 0xc5, 0x67, 0x44, 0xe0, 0xf7, 0x16, 0x74, 0xa4, 0xa6, + 0x3b, 0x24, 0xc1, 0xf1, 0xdc, 0xeb, 0xbf, 0x0f, 0x2d, 0x4c, 0x92, 0x18, 0x91, 0x79, 0x2a, 0xa4, + 0x2e, 0x3a, 0x63, 0x91, 0x7c, 0xdf, 0x02, 0x47, 0xa8, 0xda, 0x0f, 0xd8, 0x28, 0x60, 0xec, 0x05, + 0xba, 0x6e, 0x36, 0x83, 0x4f, 0x61, 0x4d, 0xde, 0x39, 0x68, 0x25, 0x92, 0x37, 0xdf, 0xc8, 0x97, + 0xfd, 0xb4, 0x25, 0x84, 0x32, 0xd2, 0xbc, 0x4d, 0x52, 0x0f, 0x06, 0xc5, 0x6d, 0xd2, 0x0d, 0x00, + 0xe4, 0xfb, 0xef, 0xd2, 0xd8, 0x0f, 0x48, 0xb6, 0xdf, 0x69, 0x1c, 0xf7, 0x6d, 0x58, 0xe6, 0xed, + 0xff, 0x63, 0xed, 0xf6, 0xe0, 0xc2, 0xfb, 0x0d, 0xfd, 0xe6, 0xc1, 0x36, 0x6f, 0x1e, 0xdc, 0xef, + 0xc3, 0xc7, 0x2b, 0x86, 0x0b, 0xac, 0xf7, 0xe4, 0xa5, 0x48, 0x36, 0x89, 0x82, 0xfc, 0xd3, 0x13, + 0xd0, 0xd3, 0x6d, 0xf1, 0x0c, 0x21, 0xf7, 0x47, 0x16, 0xbc, 0x5a, 0x51, 0xbf, 0x13, 0x45, 0x31, + 0x3d, 0x53, 0x2e, 0xbd, 0x8a, 0x69, 0xcc, 0xbd, 0xc0, 0x2e, 0xef, 0x05, 0x13, 0x8d, 0x30, 0xf6, + 0xaf, 0x8f, 0xc0, 0x88, 0xdf, 0x58, 0xd0, 0x51, 0x46, 0xf8, 0xbe, 0x9a, 0xf6, 0x2b, 0xd0, 0x90, + 0x17, 0xaa, 0x6a, 0xc2, 0x57, 0x27, 0x4e, 0x98, 0x5d, 0x04, 0x7b, 0x6a, 0x70, 0x35, 0x22, 0xed, + 0x49, 0x7d, 0xeb, 0xd7, 0xf2, 0xb8, 0x9f, 0xf9, 0xca, 0x53, 0x09, 0xb8, 0xdf, 0xc9, 0x82, 0x79, + 0x1f, 0x87, 0xf8, 0x2a, 0x31, 0x72, 0x9f, 0xc0, 0x8a, 0xb8, 0xdd, 0x2d, 0x30, 0xb8, 0x12, 0xb5, + 0xef, 0xc2, 0xaa, 0x50, 0x7b, 0xe5, 0xf6, 0xe6, 0xd9, 0xc1, 0xf1, 0xd9, 0x3b, 0x41, 0x64, 0x78, + 0x95, 0xda, 0xbf, 0x08, 0xeb, 0x19, 0xf6, 0x4f, 0x22, 0x3f, 0x3f, 0x53, 0x4d, 0xb9, 0x49, 0x72, + 0xbf, 0x04, 0x1b, 0x7b, 0x94, 0x9c, 0xe1, 0x98, 0x09, 0x2f, 0x4b, 0x91, 0x4c, 0xc2, 0x48, 0x7e, + 0x45, 0xb9, 0x7d, 0x58, 0x53, 0x77, 0xa0, 0x87, 0x68, 0x18, 0x10, 0x59, 0x95, 0x6e, 0x00, 0x44, + 0x68, 0x98, 0xbd, 0x81, 0xc8, 0x8b, 0x32, 0x8d, 0xc3, 0xbf, 0xb3, 0x13, 0xfa, 0x4c, 0x7d, 0xb7, + 0xe5, 0xf7, 0x82, 0xe3, 0x7e, 0x1b, 0x1c, 0x0f, 0xb3, 0x88, 0x12, 0x86, 0x35, 0xad, 0x9b, 0xd0, + 0xda, 0x4b, 0xe3, 0x18, 0x13, 0x3e, 0x55, 0xf6, 0x20, 0xa0, 0xb3, 0xb8, 0xde, 0x7e, 0xa1, 0x57, + 0x5e, 0xae, 0x68, 0x1c, 0xf7, 0x97, 0x35, 0x68, 0xf6, 0x83, 0x21, 0x41, 0xa1, 0x87, 0xc7, 0xce, + 0xd7, 0xa1, 0x21, 0xb7, 0x3c, 0x05, 0xed, 0xa4, 0xc3, 0xbe, 0x1c, 0x2d, 0xf7, 0x76, 0x0f, 0x8f, + 0xef, 0x7f, 0xcc, 0x53, 0x32, 0xce, 0x3b, 0xd0, 0x96, 0xbf, 0x1e, 0xc8, 0x23, 0x8c, 0xaa, 0xfd, + 0x9f, 0xbb, 0x44, 0x89, 0x1a, 0x2d, 0x75, 0x99, 0x1a, 0xb8, 0x41, 0x03, 0x44, 0x06, 0xea, 0x19, + 0xf1, 0x22, 0x83, 0xf6, 0xc4, 0x30, 0x65, 0x90, 0x94, 0xe1, 0xd2, 0x48, 0x34, 0xf9, 0xea, 0x99, + 0x65, 0xba, 0xb4, 0x3c, 0x0b, 0x28, 0x69, 0x29, 0xc3, 0xa5, 0x4f, 0x52, 0x32, 0x7c, 0x12, 0xa9, + 0xb3, 0xe7, 0x74, 0xe9, 0xfb, 0x62, 0x98, 0x92, 0x96, 0x32, 0x5c, 0x3a, 0x16, 0xd5, 0x4e, 0x80, + 0x7e, 0x91, 0xb4, 0x2c, 0x8a, 0x4a, 0x5a, 0xca, 0xec, 0x36, 0x61, 0x31, 0x42, 0xe7, 0x21, 0x45, + 0xbe, 0xfb, 0xdb, 0x1a, 0x40, 0x36, 0x90, 0x89, 0x9d, 0xd5, 0x70, 0xd1, 0xd6, 0xa5, 0x2e, 0x8a, + 0xc2, 0x73, 0xcd, 0x49, 0xfd, 0xc9, 0x4e, 0xfa, 0xfc, 0xac, 0x4e, 0x92, 0xda, 0x4a, 0x6e, 0xba, + 0x5d, 0x72, 0xd3, 0xd6, 0xa5, 0x6e, 0x52, 0x46, 0x29, 0x47, 0xdd, 0x2e, 0x39, 0x6a, 0xeb, 0x52, + 0x47, 0x29, 0x79, 0xe5, 0xaa, 0xdb, 0x25, 0x57, 0x6d, 0x5d, 0xea, 0x2a, 0x25, 0xaf, 0x9c, 0x75, + 0xbb, 0xe4, 0xac, 0xad, 0x4b, 0x9d, 0xa5, 0xe4, 0xab, 0xee, 0xfa, 0xc0, 0x86, 0x15, 0x01, 0x99, + 0xbc, 0x68, 0x26, 0xc7, 0x54, 0xdc, 0x27, 0x09, 0xb8, 0xcc, 0x27, 0x35, 0x93, 0xe9, 0x7c, 0x01, + 0xd6, 0x24, 0x43, 0x3d, 0xc1, 0x88, 0x7e, 0xd5, 0xde, 0xac, 0xdd, 0x6c, 0x7a, 0xd5, 0x0f, 0xe2, + 0x6a, 0x30, 0x65, 0x09, 0x1d, 0xed, 0xa3, 0x04, 0x65, 0xdd, 0x4a, 0xc1, 0xd1, 0x2f, 0x6e, 0x17, + 0x2a, 0x8f, 0xf6, 0x31, 0xa5, 0xa3, 0xfc, 0x46, 0x56, 0x51, 0x5c, 0x22, 0x09, 0x46, 0x98, 0xa6, + 0x89, 0x2a, 0x13, 0x19, 0xc9, 0xf7, 0xd8, 0x11, 0xf6, 0x03, 0x24, 0xae, 0x3b, 0xd5, 0x3b, 0x48, + 0xce, 0x10, 0x95, 0xad, 0xb8, 0xbe, 0x55, 0x8f, 0xea, 0x05, 0xe7, 0xf2, 0xab, 0x56, 0xf7, 0x6f, + 0x16, 0xac, 0x1f, 0xa2, 0x38, 0x09, 0x06, 0x41, 0x84, 0x48, 0xd2, 0xc3, 0x09, 0x12, 0x6b, 0x30, + 0xde, 0xd5, 0xac, 0x0f, 0xf7, 0xae, 0x76, 0x08, 0x9d, 0x61, 0xd1, 0x5f, 0x6a, 0x2f, 0x73, 0x33, + 0xf7, 0xfe, 0x25, 0x71, 0xe3, 0x91, 0xb0, 0xf6, 0xa1, 0x1f, 0x09, 0xdd, 0x9f, 0xda, 0xd0, 0x29, + 0x95, 0x4e, 0xde, 0x22, 0xca, 0xcd, 0x3f, 0x8f, 0x89, 0x9c, 0x76, 0x76, 0x00, 0x82, 0x3c, 0x8c, + 0x2e, 0xb8, 0xbc, 0x31, 0x63, 0xcd, 0xd3, 0x84, 0x26, 0xdd, 0xe1, 0xd6, 0xe6, 0xbe, 0xc3, 0xe5, + 0xa7, 0x91, 0xa8, 0x70, 0x92, 0x4a, 0xd4, 0x49, 0x68, 0x4e, 0x70, 0xa5, 0xa7, 0x8b, 0xba, 0xdf, + 0x83, 0xb5, 0x4a, 0x85, 0x12, 0x57, 0xba, 0xf4, 0x14, 0x93, 0xfc, 0x4a, 0x97, 0x13, 0x5a, 0xb0, + 0xda, 0xe5, 0x60, 0x0d, 0x83, 0x33, 0xfd, 0x5f, 0x08, 0x8a, 0x74, 0x7f, 0x66, 0xc3, 0xc6, 0xe4, + 0xdd, 0xe5, 0x65, 0x85, 0xfb, 0x08, 0xba, 0xd3, 0x2a, 0xf9, 0x95, 0xa1, 0x5e, 0x44, 0x77, 0xbe, + 0x0f, 0xbf, 0xac, 0x70, 0xaf, 0x67, 0xd1, 0xad, 0x6d, 0x75, 0xee, 0xef, 0x72, 0x7c, 0xf2, 0x4e, + 0xe3, 0x25, 0xc5, 0xc7, 0x79, 0x1d, 0x56, 0xe5, 0x32, 0xb5, 0x47, 0x3f, 0xd9, 0xb8, 0x56, 0xf8, + 0x45, 0xa5, 0xd0, 0xb6, 0xfd, 0x2b, 0x8b, 0xd9, 0x3f, 0x5a, 0x99, 0x4f, 0xf2, 0xfe, 0xed, 0x7f, + 0xca, 0x27, 0x45, 0xa4, 0x69, 0x4d, 0x8d, 0x16, 0x69, 0x79, 0x5f, 0xf9, 0xff, 0x48, 0xbb, 0x3c, + 0xd2, 0x72, 0x2c, 0xb5, 0x06, 0xcf, 0xfd, 0x21, 0xb4, 0xf7, 0x71, 0xd8, 0x63, 0xc3, 0xec, 0xef, + 0x06, 0x17, 0x01, 0x39, 0xed, 0xcf, 0x90, 0x53, 0xff, 0x68, 0x50, 0xfe, 0x93, 0xc2, 0x42, 0xe5, + 0x4f, 0x0a, 0xee, 0x2e, 0xac, 0xe8, 0x06, 0xcc, 0xf3, 0x6f, 0x8b, 0xdd, 0xeb, 0xdf, 0xbd, 0xb6, + 0xfd, 0x86, 0xfc, 0xdb, 0xed, 0x5b, 0x15, 0x10, 0x8f, 0x1a, 0xe2, 0x6f, 0xb8, 0x5f, 0xfe, 0x4f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xd9, 0x1a, 0xc5, 0xce, 0x99, 0x2b, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 5919a6c2f..71b65611f 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -1,7 +1,6 @@ syntax = "proto3"; option go_package = "./sdk_ws;server_api_params"; -package server_api_params;//The package name to which the proto file belongs -//option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk +package server_api_params; ////////////////////////////////base/////////////////////////////// @@ -33,6 +32,7 @@ message GroupMemberFullInfo { int32 joinSource = 8; string operatorUserID = 9; string ex = 10; + uint32 muteEndTime = 11; } message PublicUserInfo{ @@ -255,14 +255,11 @@ message MemberEnterTips{ int64 operationTime = 3; } - - - - - - - - +message GroupDismissedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int64 operationTime = 3; +} //////////////////////friend///////////////////// @@ -380,11 +377,25 @@ message InvitationInfo { repeated string inviteeUserIDList = 2; string customData = 3; string groupID = 4; + string roomID = 5; + int32 timeout = 6; + string mediaType = 7; + int32 platformID = 8; + int32 sessionType = 9; } +message ParticipantMetaData{ + GroupInfo groupInfo = 1; + GroupMemberFullInfo groupMemberInfo = 2; + PublicUserInfo userInfo = 3; +} message SignalInviteReq { - InvitationInfo invitation = 1; + string opUserID = 1; + InvitationInfo invitation = 2; + OfflinePushInfo offlinePushInfo = 3; + ParticipantMetaData participant = 4; + } message SignalInviteReply { @@ -394,7 +405,10 @@ message SignalInviteReply { } message SignalInviteInGroupReq { - InvitationInfo invitation = 1; + string opUserID = 1; + InvitationInfo invitation = 2; + OfflinePushInfo offlinePushInfo = 3; + ParticipantMetaData participant = 4; } message SignalInviteInGroupReply { @@ -404,8 +418,10 @@ message SignalInviteInGroupReply { } message SignalCancelReq { - string inviterUserID = 1; - SignalInviteReq invitation = 2; + string opUserID = 1; + InvitationInfo invitation = 2; + OfflinePushInfo offlinePushInfo = 3; + ParticipantMetaData participant = 4; } message SignalCancelReply { @@ -413,8 +429,11 @@ message SignalCancelReply { } message SignalAcceptReq { - string inviteeUserID = 1; - SignalInviteReq invitation = 2; + string opUserID = 1; + InvitationInfo invitation = 2; + OfflinePushInfo offlinePushInfo = 3; + ParticipantMetaData participant = 4; + int32 opUserPlatformID = 5; } message SignalAcceptReply { @@ -424,8 +443,9 @@ message SignalAcceptReply { } message SignalHungUpReq { - string UserID = 1; - SignalInviteReq invitation = 2; + string opUserID = 1; + InvitationInfo invitation = 2; + OfflinePushInfo offlinePushInfo = 3; } message SignalHungUpReply { @@ -434,8 +454,11 @@ message SignalHungUpReply { message SignalRejectReq { - string inviteeUserID = 1; - SignalInviteReq invitation = 2; + string opUserID = 1; + InvitationInfo invitation = 2; + OfflinePushInfo offlinePushInfo = 3; + ParticipantMetaData participant = 4; + int32 opUserPlatformID = 5; } message SignalRejectReply { @@ -443,6 +466,16 @@ message SignalRejectReply { } - +message DelMsgListReq{ + string opUserID = 1; + string userID = 2; + repeated uint32 seqList = 3; + string operationID = 4; +} + +message DelMsgListResp{ + int32 errCode = 1; + string errMsg = 2; +} diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index aecc22680..603434dbc 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -6,7 +6,6 @@ package user - import ( sdk_ws "Open_IM/pkg/proto/sdk_ws" context "context" @@ -655,20 +654,27 @@ func (x *UpdateUserInfoResp) GetCommonResp() *CommonResp { return nil } -type SetReceiveMessageOptReq struct { +type Conversation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` - Opt int32 `protobuf:"varint,2,opt,name=opt,proto3" json:"opt,omitempty"` - ConversationIDList []string `protobuf:"bytes,3,rep,name=conversationIDList,proto3" json:"conversationIDList,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=operationID,proto3" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,5,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt,proto3" json:"RecvMsgOpt,omitempty"` + ConversationType int32 `protobuf:"varint,4,opt,name=ConversationType,proto3" json:"ConversationType,omitempty"` + UserID string `protobuf:"bytes,5,opt,name=UserID,proto3" json:"UserID,omitempty"` + GroupID string `protobuf:"bytes,6,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + UnreadCount int32 `protobuf:"varint,7,opt,name=UnreadCount,proto3" json:"UnreadCount,omitempty"` + DraftTextTime int64 `protobuf:"varint,8,opt,name=DraftTextTime,proto3" json:"DraftTextTime,omitempty"` + IsPinned bool `protobuf:"varint,9,opt,name=IsPinned,proto3" json:"IsPinned,omitempty"` + AttachedInfo string `protobuf:"bytes,10,opt,name=AttachedInfo,proto3" json:"AttachedInfo,omitempty"` + IsPrivateChat bool `protobuf:"varint,11,opt,name=IsPrivateChat,proto3" json:"IsPrivateChat,omitempty"` + Ex string `protobuf:"bytes,12,opt,name=Ex,proto3" json:"Ex,omitempty"` } -func (x *SetReceiveMessageOptReq) Reset() { - *x = SetReceiveMessageOptReq{} +func (x *Conversation) Reset() { + *x = Conversation{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -676,13 +682,13 @@ func (x *SetReceiveMessageOptReq) Reset() { } } -func (x *SetReceiveMessageOptReq) String() string { +func (x *Conversation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetReceiveMessageOptReq) ProtoMessage() {} +func (*Conversation) ProtoMessage() {} -func (x *SetReceiveMessageOptReq) ProtoReflect() protoreflect.Message { +func (x *Conversation) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -694,57 +700,106 @@ func (x *SetReceiveMessageOptReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetReceiveMessageOptReq.ProtoReflect.Descriptor instead. -func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { +// Deprecated: Use Conversation.ProtoReflect.Descriptor instead. +func (*Conversation) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{11} } -func (x *SetReceiveMessageOptReq) GetFromUserID() string { +func (x *Conversation) GetOwnerUserID() string { if x != nil { - return x.FromUserID + return x.OwnerUserID } return "" } -func (x *SetReceiveMessageOptReq) GetOpt() int32 { +func (x *Conversation) GetConversationID() string { if x != nil { - return x.Opt + return x.ConversationID + } + return "" +} + +func (x *Conversation) GetRecvMsgOpt() int32 { + if x != nil { + return x.RecvMsgOpt } return 0 } -func (x *SetReceiveMessageOptReq) GetConversationIDList() []string { +func (x *Conversation) GetConversationType() int32 { if x != nil { - return x.ConversationIDList + return x.ConversationType } - return nil + return 0 } -func (x *SetReceiveMessageOptReq) GetOperationID() string { +func (x *Conversation) GetUserID() string { if x != nil { - return x.OperationID + return x.UserID } return "" } -func (x *SetReceiveMessageOptReq) GetOpUserID() string { +func (x *Conversation) GetGroupID() string { if x != nil { - return x.OpUserID + return x.GroupID } return "" } -type OptResult struct { +func (x *Conversation) GetUnreadCount() int32 { + if x != nil { + return x.UnreadCount + } + return 0 +} + +func (x *Conversation) GetDraftTextTime() int64 { + if x != nil { + return x.DraftTextTime + } + return 0 +} + +func (x *Conversation) GetIsPinned() bool { + if x != nil { + return x.IsPinned + } + return false +} + +func (x *Conversation) GetAttachedInfo() string { + if x != nil { + return x.AttachedInfo + } + return "" +} + +func (x *Conversation) GetIsPrivateChat() bool { + if x != nil { + return x.IsPrivateChat + } + return false +} + +func (x *Conversation) GetEx() string { + if x != nil { + return x.Ex + } + return "" +} + +type SetConversationReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` //-1: failed; 0:default; 1: not receive ; 2: not jpush + Conversation *Conversation `protobuf:"bytes,1,opt,name=Conversation,proto3" json:"Conversation,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *OptResult) Reset() { - *x = OptResult{} +func (x *SetConversationReq) Reset() { + *x = SetConversationReq{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -752,13 +807,13 @@ func (x *OptResult) Reset() { } } -func (x *OptResult) String() string { +func (x *SetConversationReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OptResult) ProtoMessage() {} +func (*SetConversationReq) ProtoMessage() {} -func (x *OptResult) ProtoReflect() protoreflect.Message { +func (x *SetConversationReq) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -770,36 +825,35 @@ func (x *OptResult) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OptResult.ProtoReflect.Descriptor instead. -func (*OptResult) Descriptor() ([]byte, []int) { +// Deprecated: Use SetConversationReq.ProtoReflect.Descriptor instead. +func (*SetConversationReq) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{12} } -func (x *OptResult) GetConversationID() string { +func (x *SetConversationReq) GetConversation() *Conversation { if x != nil { - return x.ConversationID + return x.Conversation + } + return nil +} + +func (x *SetConversationReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (x *OptResult) GetResult() int32 { - if x != nil { - return x.Result - } - return 0 -} - -type SetReceiveMessageOptResp struct { +type SetConversationResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - ConversationOptResultList []*OptResult `protobuf:"bytes,2,rep,name=conversationOptResultList,proto3" json:"conversationOptResultList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` } -func (x *SetReceiveMessageOptResp) Reset() { - *x = SetReceiveMessageOptResp{} +func (x *SetConversationResp) Reset() { + *x = SetConversationResp{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -807,13 +861,13 @@ func (x *SetReceiveMessageOptResp) Reset() { } } -func (x *SetReceiveMessageOptResp) String() string { +func (x *SetConversationResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetReceiveMessageOptResp) ProtoMessage() {} +func (*SetConversationResp) ProtoMessage() {} -func (x *SetReceiveMessageOptResp) ProtoReflect() protoreflect.Message { +func (x *SetConversationResp) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -825,38 +879,31 @@ func (x *SetReceiveMessageOptResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetReceiveMessageOptResp.ProtoReflect.Descriptor instead. -func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { +// Deprecated: Use SetConversationResp.ProtoReflect.Descriptor instead. +func (*SetConversationResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{13} } -func (x *SetReceiveMessageOptResp) GetCommonResp() *CommonResp { +func (x *SetConversationResp) GetCommonResp() *CommonResp { if x != nil { return x.CommonResp } return nil } -func (x *SetReceiveMessageOptResp) GetConversationOptResultList() []*OptResult { - if x != nil { - return x.ConversationOptResultList - } - return nil -} - -type GetReceiveMessageOptReq struct { +type SetRecvMsgOptReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` - ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList,proto3" json:"conversationIDList,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt,proto3" json:"RecvMsgOpt,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *GetReceiveMessageOptReq) Reset() { - *x = GetReceiveMessageOptReq{} +func (x *SetRecvMsgOptReq) Reset() { + *x = SetRecvMsgOptReq{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -864,13 +911,13 @@ func (x *GetReceiveMessageOptReq) Reset() { } } -func (x *GetReceiveMessageOptReq) String() string { +func (x *SetRecvMsgOptReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetReceiveMessageOptReq) ProtoMessage() {} +func (*SetRecvMsgOptReq) ProtoMessage() {} -func (x *GetReceiveMessageOptReq) ProtoReflect() protoreflect.Message { +func (x *SetRecvMsgOptReq) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -882,50 +929,49 @@ func (x *GetReceiveMessageOptReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetReceiveMessageOptReq.ProtoReflect.Descriptor instead. -func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { +// Deprecated: Use SetRecvMsgOptReq.ProtoReflect.Descriptor instead. +func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{14} } -func (x *GetReceiveMessageOptReq) GetFromUserID() string { +func (x *SetRecvMsgOptReq) GetOwnerUserID() string { if x != nil { - return x.FromUserID + return x.OwnerUserID } return "" } -func (x *GetReceiveMessageOptReq) GetConversationIDList() []string { +func (x *SetRecvMsgOptReq) GetConversationID() string { if x != nil { - return x.ConversationIDList + return x.ConversationID } - return nil + return "" } -func (x *GetReceiveMessageOptReq) GetOperationID() string { +func (x *SetRecvMsgOptReq) GetRecvMsgOpt() int32 { + if x != nil { + return x.RecvMsgOpt + } + return 0 +} + +func (x *SetRecvMsgOptReq) GetOperationID() string { if x != nil { return x.OperationID } return "" } -func (x *GetReceiveMessageOptReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -type GetReceiveMessageOptResp struct { +type SetRecvMsgOptResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - ConversationOptResultList []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResultList,proto3" json:"conversationOptResultList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` } -func (x *GetReceiveMessageOptResp) Reset() { - *x = GetReceiveMessageOptResp{} +func (x *SetRecvMsgOptResp) Reset() { + *x = SetRecvMsgOptResp{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -933,13 +979,13 @@ func (x *GetReceiveMessageOptResp) Reset() { } } -func (x *GetReceiveMessageOptResp) String() string { +func (x *SetRecvMsgOptResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetReceiveMessageOptResp) ProtoMessage() {} +func (*SetRecvMsgOptResp) ProtoMessage() {} -func (x *GetReceiveMessageOptResp) ProtoReflect() protoreflect.Message { +func (x *SetRecvMsgOptResp) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -951,37 +997,30 @@ func (x *GetReceiveMessageOptResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetReceiveMessageOptResp.ProtoReflect.Descriptor instead. -func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { +// Deprecated: Use SetRecvMsgOptResp.ProtoReflect.Descriptor instead. +func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{15} } -func (x *GetReceiveMessageOptResp) GetCommonResp() *CommonResp { +func (x *SetRecvMsgOptResp) GetCommonResp() *CommonResp { if x != nil { return x.CommonResp } return nil } -func (x *GetReceiveMessageOptResp) GetConversationOptResultList() []*OptResult { - if x != nil { - return x.ConversationOptResultList - } - return nil -} - -type GetAllConversationMsgOptReq struct { +type GetConversationReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + ConversationID string `protobuf:"bytes,1,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *GetAllConversationMsgOptReq) Reset() { - *x = GetAllConversationMsgOptReq{} +func (x *GetConversationReq) Reset() { + *x = GetConversationReq{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -989,13 +1028,13 @@ func (x *GetAllConversationMsgOptReq) Reset() { } } -func (x *GetAllConversationMsgOptReq) String() string { +func (x *GetConversationReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetAllConversationMsgOptReq) ProtoMessage() {} +func (*GetConversationReq) ProtoMessage() {} -func (x *GetAllConversationMsgOptReq) ProtoReflect() protoreflect.Message { +func (x *GetConversationReq) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1007,43 +1046,43 @@ func (x *GetAllConversationMsgOptReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetAllConversationMsgOptReq.ProtoReflect.Descriptor instead. -func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { +// Deprecated: Use GetConversationReq.ProtoReflect.Descriptor instead. +func (*GetConversationReq) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{16} } -func (x *GetAllConversationMsgOptReq) GetFromUserID() string { +func (x *GetConversationReq) GetConversationID() string { if x != nil { - return x.FromUserID + return x.ConversationID } return "" } -func (x *GetAllConversationMsgOptReq) GetOperationID() string { +func (x *GetConversationReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID + } + return "" +} + +func (x *GetConversationReq) GetOperationID() string { if x != nil { return x.OperationID } return "" } -func (x *GetAllConversationMsgOptReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -type GetAllConversationMsgOptResp struct { +type GetConversationResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - ConversationOptResultList []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResultList,proto3" json:"conversationOptResultList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + Conversation *Conversation `protobuf:"bytes,2,opt,name=Conversation,proto3" json:"Conversation,omitempty"` } -func (x *GetAllConversationMsgOptResp) Reset() { - *x = GetAllConversationMsgOptResp{} +func (x *GetConversationResp) Reset() { + *x = GetConversationResp{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1051,13 +1090,13 @@ func (x *GetAllConversationMsgOptResp) Reset() { } } -func (x *GetAllConversationMsgOptResp) String() string { +func (x *GetConversationResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetAllConversationMsgOptResp) ProtoMessage() {} +func (*GetConversationResp) ProtoMessage() {} -func (x *GetAllConversationMsgOptResp) ProtoReflect() protoreflect.Message { +func (x *GetConversationResp) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1069,21 +1108,375 @@ func (x *GetAllConversationMsgOptResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetAllConversationMsgOptResp.ProtoReflect.Descriptor instead. -func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { +// Deprecated: Use GetConversationResp.ProtoReflect.Descriptor instead. +func (*GetConversationResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{17} } -func (x *GetAllConversationMsgOptResp) GetCommonResp() *CommonResp { +func (x *GetConversationResp) GetCommonResp() *CommonResp { if x != nil { return x.CommonResp } return nil } -func (x *GetAllConversationMsgOptResp) GetConversationOptResultList() []*OptResult { +func (x *GetConversationResp) GetConversation() *Conversation { if x != nil { - return x.ConversationOptResultList + return x.Conversation + } + return nil +} + +type GetConversationsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + ConversationIDs []string `protobuf:"bytes,2,rep,name=ConversationIDs,proto3" json:"ConversationIDs,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetConversationsReq) Reset() { + *x = GetConversationsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetConversationsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConversationsReq) ProtoMessage() {} + +func (x *GetConversationsReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[18] + 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 GetConversationsReq.ProtoReflect.Descriptor instead. +func (*GetConversationsReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{18} +} + +func (x *GetConversationsReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID + } + return "" +} + +func (x *GetConversationsReq) GetConversationIDs() []string { + if x != nil { + return x.ConversationIDs + } + return nil +} + +func (x *GetConversationsReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetConversationsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations,proto3" json:"Conversations,omitempty"` +} + +func (x *GetConversationsResp) Reset() { + *x = GetConversationsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetConversationsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConversationsResp) ProtoMessage() {} + +func (x *GetConversationsResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[19] + 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 GetConversationsResp.ProtoReflect.Descriptor instead. +func (*GetConversationsResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{19} +} + +func (x *GetConversationsResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + +func (x *GetConversationsResp) GetConversations() []*Conversation { + if x != nil { + return x.Conversations + } + return nil +} + +type GetAllConversationsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetAllConversationsReq) Reset() { + *x = GetAllConversationsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAllConversationsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAllConversationsReq) ProtoMessage() {} + +func (x *GetAllConversationsReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[20] + 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 GetAllConversationsReq.ProtoReflect.Descriptor instead. +func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{20} +} + +func (x *GetAllConversationsReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID + } + return "" +} + +func (x *GetAllConversationsReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetAllConversationsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations,proto3" json:"Conversations,omitempty"` +} + +func (x *GetAllConversationsResp) Reset() { + *x = GetAllConversationsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAllConversationsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAllConversationsResp) ProtoMessage() {} + +func (x *GetAllConversationsResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[21] + 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 GetAllConversationsResp.ProtoReflect.Descriptor instead. +func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{21} +} + +func (x *GetAllConversationsResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + +func (x *GetAllConversationsResp) GetConversations() []*Conversation { + if x != nil { + return x.Conversations + } + return nil +} + +type BatchSetConversationsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Conversations []*Conversation `protobuf:"bytes,1,rep,name=Conversations,proto3" json:"Conversations,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *BatchSetConversationsReq) Reset() { + *x = BatchSetConversationsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchSetConversationsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchSetConversationsReq) ProtoMessage() {} + +func (x *BatchSetConversationsReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[22] + 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 BatchSetConversationsReq.ProtoReflect.Descriptor instead. +func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{22} +} + +func (x *BatchSetConversationsReq) GetConversations() []*Conversation { + if x != nil { + return x.Conversations + } + return nil +} + +func (x *BatchSetConversationsReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID + } + return "" +} + +func (x *BatchSetConversationsReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type BatchSetConversationsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + Success []string `protobuf:"bytes,2,rep,name=Success,proto3" json:"Success,omitempty"` + Failed []string `protobuf:"bytes,3,rep,name=Failed,proto3" json:"Failed,omitempty"` +} + +func (x *BatchSetConversationsResp) Reset() { + *x = BatchSetConversationsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchSetConversationsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchSetConversationsResp) ProtoMessage() {} + +func (x *BatchSetConversationsResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[23] + 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 BatchSetConversationsResp.ProtoReflect.Descriptor instead. +func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{23} +} + +func (x *BatchSetConversationsResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + +func (x *BatchSetConversationsResp) GetSuccess() []string { + if x != nil { + return x.Success + } + return nil +} + +func (x *BatchSetConversationsResp) GetFailed() []string { + if x != nil { + return x.Failed } return nil } @@ -1100,7 +1493,7 @@ type ResignUserReq struct { func (x *ResignUserReq) Reset() { *x = ResignUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[18] + mi := &file_user_user_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1113,7 +1506,7 @@ func (x *ResignUserReq) String() string { func (*ResignUserReq) ProtoMessage() {} func (x *ResignUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[18] + mi := &file_user_user_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1126,7 +1519,7 @@ func (x *ResignUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ResignUserReq.ProtoReflect.Descriptor instead. func (*ResignUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{18} + return file_user_user_proto_rawDescGZIP(), []int{24} } func (x *ResignUserReq) GetUserId() string { @@ -1154,7 +1547,7 @@ type ResignUserResp struct { func (x *ResignUserResp) Reset() { *x = ResignUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[19] + mi := &file_user_user_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1167,7 +1560,7 @@ func (x *ResignUserResp) String() string { func (*ResignUserResp) ProtoMessage() {} func (x *ResignUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[19] + mi := &file_user_user_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1180,7 +1573,7 @@ func (x *ResignUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use ResignUserResp.ProtoReflect.Descriptor instead. func (*ResignUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{19} + return file_user_user_proto_rawDescGZIP(), []int{25} } func (x *ResignUserResp) GetCommonResp() *CommonResp { @@ -1202,7 +1595,7 @@ type GetUserByIdReq struct { func (x *GetUserByIdReq) Reset() { *x = GetUserByIdReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[20] + mi := &file_user_user_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1215,7 +1608,7 @@ func (x *GetUserByIdReq) String() string { func (*GetUserByIdReq) ProtoMessage() {} func (x *GetUserByIdReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[20] + mi := &file_user_user_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1228,7 +1621,7 @@ func (x *GetUserByIdReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserByIdReq.ProtoReflect.Descriptor instead. func (*GetUserByIdReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{20} + return file_user_user_proto_rawDescGZIP(), []int{26} } func (x *GetUserByIdReq) GetUserId() string { @@ -1260,7 +1653,7 @@ type User struct { func (x *User) Reset() { *x = User{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[21] + mi := &file_user_user_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1273,7 +1666,7 @@ func (x *User) String() string { func (*User) ProtoMessage() {} func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[21] + mi := &file_user_user_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1286,7 +1679,7 @@ func (x *User) ProtoReflect() protoreflect.Message { // Deprecated: Use User.ProtoReflect.Descriptor instead. func (*User) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{21} + return file_user_user_proto_rawDescGZIP(), []int{27} } func (x *User) GetProfilePhoto() string { @@ -1336,7 +1729,7 @@ type GetUserByIdResp struct { func (x *GetUserByIdResp) Reset() { *x = GetUserByIdResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[22] + mi := &file_user_user_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1349,7 +1742,7 @@ func (x *GetUserByIdResp) String() string { func (*GetUserByIdResp) ProtoMessage() {} func (x *GetUserByIdResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[22] + mi := &file_user_user_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1362,7 +1755,7 @@ func (x *GetUserByIdResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserByIdResp.ProtoReflect.Descriptor instead. func (*GetUserByIdResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{22} + return file_user_user_proto_rawDescGZIP(), []int{28} } func (x *GetUserByIdResp) GetCommonResp() *CommonResp { @@ -1392,7 +1785,7 @@ type GetUsersByNameReq struct { func (x *GetUsersByNameReq) Reset() { *x = GetUsersByNameReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[23] + mi := &file_user_user_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1405,7 +1798,7 @@ func (x *GetUsersByNameReq) String() string { func (*GetUsersByNameReq) ProtoMessage() {} func (x *GetUsersByNameReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[23] + mi := &file_user_user_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1418,7 +1811,7 @@ func (x *GetUsersByNameReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsersByNameReq.ProtoReflect.Descriptor instead. func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{23} + return file_user_user_proto_rawDescGZIP(), []int{29} } func (x *GetUsersByNameReq) GetUserName() string { @@ -1455,7 +1848,7 @@ type GetUsersByNameResp struct { func (x *GetUsersByNameResp) Reset() { *x = GetUsersByNameResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[24] + mi := &file_user_user_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1468,7 +1861,7 @@ func (x *GetUsersByNameResp) String() string { func (*GetUsersByNameResp) ProtoMessage() {} func (x *GetUsersByNameResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[24] + mi := &file_user_user_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1481,7 +1874,7 @@ func (x *GetUsersByNameResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsersByNameResp.ProtoReflect.Descriptor instead. func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{24} + return file_user_user_proto_rawDescGZIP(), []int{30} } func (x *GetUsersByNameResp) GetUsers() []*User { @@ -1521,7 +1914,7 @@ type AlterUserReq struct { func (x *AlterUserReq) Reset() { *x = AlterUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[25] + mi := &file_user_user_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1534,7 +1927,7 @@ func (x *AlterUserReq) String() string { func (*AlterUserReq) ProtoMessage() {} func (x *AlterUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[25] + mi := &file_user_user_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1547,7 +1940,7 @@ func (x *AlterUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AlterUserReq.ProtoReflect.Descriptor instead. func (*AlterUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{25} + return file_user_user_proto_rawDescGZIP(), []int{31} } func (x *AlterUserReq) GetUserId() string { @@ -1603,7 +1996,7 @@ type AlterUserResp struct { func (x *AlterUserResp) Reset() { *x = AlterUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[26] + mi := &file_user_user_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1616,7 +2009,7 @@ func (x *AlterUserResp) String() string { func (*AlterUserResp) ProtoMessage() {} func (x *AlterUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[26] + mi := &file_user_user_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1629,7 +2022,7 @@ func (x *AlterUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use AlterUserResp.ProtoReflect.Descriptor instead. func (*AlterUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{26} + return file_user_user_proto_rawDescGZIP(), []int{32} } func (x *AlterUserResp) GetCommonResp() *CommonResp { @@ -1652,7 +2045,7 @@ type GetUsersReq struct { func (x *GetUsersReq) Reset() { *x = GetUsersReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[27] + mi := &file_user_user_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1665,7 +2058,7 @@ func (x *GetUsersReq) String() string { func (*GetUsersReq) ProtoMessage() {} func (x *GetUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[27] + mi := &file_user_user_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1678,7 +2071,7 @@ func (x *GetUsersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsersReq.ProtoReflect.Descriptor instead. func (*GetUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{27} + return file_user_user_proto_rawDescGZIP(), []int{33} } func (x *GetUsersReq) GetOperationID() string { @@ -1716,7 +2109,7 @@ type GetUsersResp struct { func (x *GetUsersResp) Reset() { *x = GetUsersResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[28] + mi := &file_user_user_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1729,7 +2122,7 @@ func (x *GetUsersResp) String() string { func (*GetUsersResp) ProtoMessage() {} func (x *GetUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[28] + mi := &file_user_user_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1742,7 +2135,7 @@ func (x *GetUsersResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsersResp.ProtoReflect.Descriptor instead. func (*GetUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{28} + return file_user_user_proto_rawDescGZIP(), []int{34} } func (x *GetUsersResp) GetCommonResp() *CommonResp { @@ -1788,7 +2181,7 @@ type AddUserReq struct { func (x *AddUserReq) Reset() { *x = AddUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[29] + mi := &file_user_user_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1801,7 +2194,7 @@ func (x *AddUserReq) String() string { func (*AddUserReq) ProtoMessage() {} func (x *AddUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[29] + mi := &file_user_user_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1814,7 +2207,7 @@ func (x *AddUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddUserReq.ProtoReflect.Descriptor instead. func (*AddUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{29} + return file_user_user_proto_rawDescGZIP(), []int{35} } func (x *AddUserReq) GetOperationID() string { @@ -1863,7 +2256,7 @@ type AddUserResp struct { func (x *AddUserResp) Reset() { *x = AddUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[30] + mi := &file_user_user_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1876,7 +2269,7 @@ func (x *AddUserResp) String() string { func (*AddUserResp) ProtoMessage() {} func (x *AddUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[30] + mi := &file_user_user_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1889,7 +2282,7 @@ func (x *AddUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddUserResp.ProtoReflect.Descriptor instead. func (*AddUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{30} + return file_user_user_proto_rawDescGZIP(), []int{36} } func (x *AddUserResp) GetCommonResp() *CommonResp { @@ -1913,7 +2306,7 @@ type BlockUserReq struct { func (x *BlockUserReq) Reset() { *x = BlockUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[31] + mi := &file_user_user_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1926,7 +2319,7 @@ func (x *BlockUserReq) String() string { func (*BlockUserReq) ProtoMessage() {} func (x *BlockUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[31] + mi := &file_user_user_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1939,7 +2332,7 @@ func (x *BlockUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockUserReq.ProtoReflect.Descriptor instead. func (*BlockUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{31} + return file_user_user_proto_rawDescGZIP(), []int{37} } func (x *BlockUserReq) GetUserId() string { @@ -1981,7 +2374,7 @@ type BlockUserResp struct { func (x *BlockUserResp) Reset() { *x = BlockUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[32] + mi := &file_user_user_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1994,7 +2387,7 @@ func (x *BlockUserResp) String() string { func (*BlockUserResp) ProtoMessage() {} func (x *BlockUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[32] + mi := &file_user_user_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2007,7 +2400,7 @@ func (x *BlockUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockUserResp.ProtoReflect.Descriptor instead. func (*BlockUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{32} + return file_user_user_proto_rawDescGZIP(), []int{38} } func (x *BlockUserResp) GetCommonResp() *CommonResp { @@ -2030,7 +2423,7 @@ type UnBlockUserReq struct { func (x *UnBlockUserReq) Reset() { *x = UnBlockUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[33] + mi := &file_user_user_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2043,7 +2436,7 @@ func (x *UnBlockUserReq) String() string { func (*UnBlockUserReq) ProtoMessage() {} func (x *UnBlockUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[33] + mi := &file_user_user_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2056,7 +2449,7 @@ func (x *UnBlockUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UnBlockUserReq.ProtoReflect.Descriptor instead. func (*UnBlockUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{33} + return file_user_user_proto_rawDescGZIP(), []int{39} } func (x *UnBlockUserReq) GetUserId() string { @@ -2091,7 +2484,7 @@ type UnBlockUserResp struct { func (x *UnBlockUserResp) Reset() { *x = UnBlockUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[34] + mi := &file_user_user_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2104,7 +2497,7 @@ func (x *UnBlockUserResp) String() string { func (*UnBlockUserResp) ProtoMessage() {} func (x *UnBlockUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[34] + mi := &file_user_user_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2117,7 +2510,7 @@ func (x *UnBlockUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UnBlockUserResp.ProtoReflect.Descriptor instead. func (*UnBlockUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{34} + return file_user_user_proto_rawDescGZIP(), []int{40} } func (x *UnBlockUserResp) GetCommonResp() *CommonResp { @@ -2140,7 +2533,7 @@ type GetBlockUsersReq struct { func (x *GetBlockUsersReq) Reset() { *x = GetBlockUsersReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[35] + mi := &file_user_user_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2153,7 +2546,7 @@ func (x *GetBlockUsersReq) String() string { func (*GetBlockUsersReq) ProtoMessage() {} func (x *GetBlockUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[35] + mi := &file_user_user_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2166,7 +2559,7 @@ func (x *GetBlockUsersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockUsersReq.ProtoReflect.Descriptor instead. func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{35} + return file_user_user_proto_rawDescGZIP(), []int{41} } func (x *GetBlockUsersReq) GetPagination() *sdk_ws.RequestPagination { @@ -2203,7 +2596,7 @@ type BlockUser struct { func (x *BlockUser) Reset() { *x = BlockUser{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[36] + mi := &file_user_user_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2216,7 +2609,7 @@ func (x *BlockUser) String() string { func (*BlockUser) ProtoMessage() {} func (x *BlockUser) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[36] + mi := &file_user_user_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2229,7 +2622,7 @@ func (x *BlockUser) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockUser.ProtoReflect.Descriptor instead. func (*BlockUser) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{36} + return file_user_user_proto_rawDescGZIP(), []int{42} } func (x *BlockUser) GetUser() *User { @@ -2267,7 +2660,7 @@ type GetBlockUsersResp struct { func (x *GetBlockUsersResp) Reset() { *x = GetBlockUsersResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[37] + mi := &file_user_user_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2280,7 +2673,7 @@ func (x *GetBlockUsersResp) String() string { func (*GetBlockUsersResp) ProtoMessage() {} func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[37] + mi := &file_user_user_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2293,7 +2686,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{37} + return file_user_user_proto_rawDescGZIP(), []int{43} } func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { @@ -2336,7 +2729,7 @@ type GetBlockUserByIdReq struct { func (x *GetBlockUserByIdReq) Reset() { *x = GetBlockUserByIdReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[38] + mi := &file_user_user_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2349,7 +2742,7 @@ func (x *GetBlockUserByIdReq) String() string { func (*GetBlockUserByIdReq) ProtoMessage() {} func (x *GetBlockUserByIdReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[38] + mi := &file_user_user_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2362,7 +2755,7 @@ func (x *GetBlockUserByIdReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockUserByIdReq.ProtoReflect.Descriptor instead. func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{38} + return file_user_user_proto_rawDescGZIP(), []int{44} } func (x *GetBlockUserByIdReq) GetUserId() string { @@ -2390,7 +2783,7 @@ type GetBlockUserByIdResp struct { func (x *GetBlockUserByIdResp) Reset() { *x = GetBlockUserByIdResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[39] + mi := &file_user_user_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2403,7 +2796,7 @@ func (x *GetBlockUserByIdResp) String() string { func (*GetBlockUserByIdResp) ProtoMessage() {} func (x *GetBlockUserByIdResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[39] + mi := &file_user_user_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2416,7 +2809,7 @@ func (x *GetBlockUserByIdResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockUserByIdResp.ProtoReflect.Descriptor instead. func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{39} + return file_user_user_proto_rawDescGZIP(), []int{45} } func (x *GetBlockUserByIdResp) GetBlockUser() *BlockUser { @@ -2439,7 +2832,7 @@ type DeleteUserReq struct { func (x *DeleteUserReq) Reset() { *x = DeleteUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[40] + mi := &file_user_user_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2452,7 +2845,7 @@ func (x *DeleteUserReq) String() string { func (*DeleteUserReq) ProtoMessage() {} func (x *DeleteUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[40] + mi := &file_user_user_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2465,7 +2858,7 @@ func (x *DeleteUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserReq.ProtoReflect.Descriptor instead. func (*DeleteUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{40} + return file_user_user_proto_rawDescGZIP(), []int{46} } func (x *DeleteUserReq) GetUserId() string { @@ -2493,12 +2886,14 @@ type DeleteUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } func (x *DeleteUserResp) Reset() { *x = DeleteUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[41] + mi := &file_user_user_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2511,7 +2906,7 @@ func (x *DeleteUserResp) String() string { func (*DeleteUserResp) ProtoMessage() {} func (x *DeleteUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[41] + mi := &file_user_user_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2524,7 +2919,14 @@ func (x *DeleteUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserResp.ProtoReflect.Descriptor instead. func (*DeleteUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{41} + return file_user_user_proto_rawDescGZIP(), []int{47} +} + +func (x *DeleteUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil } type AccountCheckResp_SingleUserStatus struct { @@ -2539,7 +2941,7 @@ type AccountCheckResp_SingleUserStatus struct { func (x *AccountCheckResp_SingleUserStatus) Reset() { *x = AccountCheckResp_SingleUserStatus{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[42] + mi := &file_user_user_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2552,7 +2954,7 @@ func (x *AccountCheckResp_SingleUserStatus) String() string { func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (x *AccountCheckResp_SingleUserStatus) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[42] + mi := &file_user_user_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2669,325 +3071,391 @@ var file_user_user_proto_rawDesc = []byte{ 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 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, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb9, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x6f, 0x70, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x09, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x9b, 0x01, 0x0a, 0x18, 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, 0x30, 0x0a, - 0x0a, 0x63, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x4d, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa7, - 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, - 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x9b, 0x01, 0x0a, 0x18, 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, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x94, 0x03, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, + 0x70, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x72, 0x61, 0x66, 0x74, 0x54, 0x65, 0x78, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x44, 0x72, 0x61, 0x66, 0x74, + 0x54, 0x65, 0x78, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x50, 0x69, + 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x50, 0x69, + 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x41, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x50, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x49, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x45, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x45, 0x78, 0x22, 0x6e, + 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, + 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 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, 0x47, + 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 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, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x19, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x7b, 0x0a, 0x1b, 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, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x22, 0x9f, 0x01, 0x0a, 0x1c, 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, 0x30, 0x0a, 0x0a, 0x63, 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, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 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, 0x42, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, + 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, + 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x63, 0x76, + 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x63, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x80, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 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, 0x7f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x0c, 0x43, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x28, 0x0a, + 0x0f, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 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, 0x82, 0x01, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 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, 0x98, 0x01, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, - 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x63, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 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, 0x01, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x97, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 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, 0x99, 0x01, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 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, 0x1a, 0x0a, 0x08, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 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, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 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, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 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, 0x1a, 0x0a, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x5c, + 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 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, 0x85, 0x01, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 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, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x0d, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x18, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 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, + 0x7f, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, + 0x63, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 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, 0x42, 0x0a, 0x0e, 0x52, + 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x63, 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, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x4a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 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, 0x98, 0x01, 0x0a, 0x04, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, + 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, + 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x63, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x79, 0x49, 0x64, 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, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x98, - 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, - 0x55, 0x73, 0x65, 0x72, 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, 0x22, 0x8c, 0x01, 0x0a, 0x0c, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 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, 0x12, 0x1a, 0x0a, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 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, 0x22, 0x66, 0x0a, 0x0e, - 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, - 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 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, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 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, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 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, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, - 0x6f, 0x63, 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, 0xd9, 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, 0x1a, 0x0a, 0x08, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x50, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 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, 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 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, - 0x22, 0x66, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x97, 0x01, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 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, 0x99, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x05, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, + 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 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, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 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, 0x12, 0x1a, 0x0a, 0x08, - 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x32, 0xdd, 0x09, 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, 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, - 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x14, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, + 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, + 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 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, 0x22, + 0x91, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 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, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 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, 0x1a, 0x0a, + 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x41, 0x64, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 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, 0x22, 0x8c, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 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, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 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, 0x22, 0x66, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 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, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, + 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 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, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 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, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 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, 0xd9, 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, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x73, 0x22, 0x50, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 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, 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 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, 0x22, 0x66, 0x0a, 0x0d, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 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, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 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, 0x32, 0x97, 0x0b, 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, 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, 0x46, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x58, 0x0a, 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, + 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, + 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 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, - 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, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 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, + 0x61, 0x6d, 0x65, 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, 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, 0x49, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, + 0x64, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 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 ( @@ -3002,7 +3470,7 @@ func file_user_user_proto_rawDescGZIP() []byte { return file_user_user_proto_rawDescData } -var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 43) +var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 49) var file_user_user_proto_goTypes = []interface{}{ (*CommonResp)(nil), // 0: user.CommonResp (*DeleteUsersReq)(nil), // 1: user.DeleteUsersReq @@ -3015,120 +3483,138 @@ var file_user_user_proto_goTypes = []interface{}{ (*GetUserInfoResp)(nil), // 8: user.GetUserInfoResp (*UpdateUserInfoReq)(nil), // 9: user.UpdateUserInfoReq (*UpdateUserInfoResp)(nil), // 10: user.UpdateUserInfoResp - (*SetReceiveMessageOptReq)(nil), // 11: user.SetReceiveMessageOptReq - (*OptResult)(nil), // 12: user.OptResult - (*SetReceiveMessageOptResp)(nil), // 13: user.SetReceiveMessageOptResp - (*GetReceiveMessageOptReq)(nil), // 14: user.GetReceiveMessageOptReq - (*GetReceiveMessageOptResp)(nil), // 15: user.GetReceiveMessageOptResp - (*GetAllConversationMsgOptReq)(nil), // 16: user.GetAllConversationMsgOptReq - (*GetAllConversationMsgOptResp)(nil), // 17: user.GetAllConversationMsgOptResp - (*ResignUserReq)(nil), // 18: user.ResignUserReq - (*ResignUserResp)(nil), // 19: user.ResignUserResp - (*GetUserByIdReq)(nil), // 20: user.GetUserByIdReq - (*User)(nil), // 21: user.User - (*GetUserByIdResp)(nil), // 22: user.GetUserByIdResp - (*GetUsersByNameReq)(nil), // 23: user.GetUsersByNameReq - (*GetUsersByNameResp)(nil), // 24: user.GetUsersByNameResp - (*AlterUserReq)(nil), // 25: user.AlterUserReq - (*AlterUserResp)(nil), // 26: user.AlterUserResp - (*GetUsersReq)(nil), // 27: user.GetUsersReq - (*GetUsersResp)(nil), // 28: user.GetUsersResp - (*AddUserReq)(nil), // 29: user.AddUserReq - (*AddUserResp)(nil), // 30: user.AddUserResp - (*BlockUserReq)(nil), // 31: user.BlockUserReq - (*BlockUserResp)(nil), // 32: user.BlockUserResp - (*UnBlockUserReq)(nil), // 33: user.UnBlockUserReq - (*UnBlockUserResp)(nil), // 34: user.UnBlockUserResp - (*GetBlockUsersReq)(nil), // 35: user.GetBlockUsersReq - (*BlockUser)(nil), // 36: user.BlockUser - (*GetBlockUsersResp)(nil), // 37: user.GetBlockUsersResp - (*GetBlockUserByIdReq)(nil), // 38: user.GetBlockUserByIdReq - (*GetBlockUserByIdResp)(nil), // 39: user.GetBlockUserByIdResp - (*DeleteUserReq)(nil), // 40: user.DeleteUserReq - (*DeleteUserResp)(nil), // 41: user.DeleteUserResp - (*AccountCheckResp_SingleUserStatus)(nil), // 42: user.AccountCheckResp.SingleUserStatus - (*sdk_ws.UserInfo)(nil), // 43: server_api_params.UserInfo - (*sdk_ws.RequestPagination)(nil), // 44: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 45: server_api_params.ResponsePagination + (*Conversation)(nil), // 11: user.Conversation + (*SetConversationReq)(nil), // 12: user.SetConversationReq + (*SetConversationResp)(nil), // 13: user.SetConversationResp + (*SetRecvMsgOptReq)(nil), // 14: user.SetRecvMsgOptReq + (*SetRecvMsgOptResp)(nil), // 15: user.SetRecvMsgOptResp + (*GetConversationReq)(nil), // 16: user.GetConversationReq + (*GetConversationResp)(nil), // 17: user.GetConversationResp + (*GetConversationsReq)(nil), // 18: user.GetConversationsReq + (*GetConversationsResp)(nil), // 19: user.GetConversationsResp + (*GetAllConversationsReq)(nil), // 20: user.GetAllConversationsReq + (*GetAllConversationsResp)(nil), // 21: user.GetAllConversationsResp + (*BatchSetConversationsReq)(nil), // 22: user.BatchSetConversationsReq + (*BatchSetConversationsResp)(nil), // 23: user.BatchSetConversationsResp + (*ResignUserReq)(nil), // 24: user.ResignUserReq + (*ResignUserResp)(nil), // 25: user.ResignUserResp + (*GetUserByIdReq)(nil), // 26: user.GetUserByIdReq + (*User)(nil), // 27: user.User + (*GetUserByIdResp)(nil), // 28: user.GetUserByIdResp + (*GetUsersByNameReq)(nil), // 29: user.GetUsersByNameReq + (*GetUsersByNameResp)(nil), // 30: user.GetUsersByNameResp + (*AlterUserReq)(nil), // 31: user.AlterUserReq + (*AlterUserResp)(nil), // 32: user.AlterUserResp + (*GetUsersReq)(nil), // 33: user.GetUsersReq + (*GetUsersResp)(nil), // 34: user.GetUsersResp + (*AddUserReq)(nil), // 35: user.AddUserReq + (*AddUserResp)(nil), // 36: user.AddUserResp + (*BlockUserReq)(nil), // 37: user.BlockUserReq + (*BlockUserResp)(nil), // 38: user.BlockUserResp + (*UnBlockUserReq)(nil), // 39: user.UnBlockUserReq + (*UnBlockUserResp)(nil), // 40: user.UnBlockUserResp + (*GetBlockUsersReq)(nil), // 41: user.GetBlockUsersReq + (*BlockUser)(nil), // 42: user.BlockUser + (*GetBlockUsersResp)(nil), // 43: user.GetBlockUsersResp + (*GetBlockUserByIdReq)(nil), // 44: user.GetBlockUserByIdReq + (*GetBlockUserByIdResp)(nil), // 45: user.GetBlockUserByIdResp + (*DeleteUserReq)(nil), // 46: user.DeleteUserReq + (*DeleteUserResp)(nil), // 47: user.DeleteUserResp + (*AccountCheckResp_SingleUserStatus)(nil), // 48: user.AccountCheckResp.SingleUserStatus + (*sdk_ws.UserInfo)(nil), // 49: server_api_params.UserInfo + (*sdk_ws.RequestPagination)(nil), // 50: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 51: 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 - 42, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus + 48, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus 0, // 4: user.GetUserInfoResp.commonResp:type_name -> user.CommonResp - 43, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo - 43, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo + 49, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo + 49, // 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 - 0, // 10: user.GetReceiveMessageOptResp.commonResp:type_name -> user.CommonResp - 12, // 11: user.GetReceiveMessageOptResp.conversationOptResultList:type_name -> user.OptResult - 0, // 12: user.GetAllConversationMsgOptResp.commonResp:type_name -> user.CommonResp - 12, // 13: user.GetAllConversationMsgOptResp.conversationOptResultList:type_name -> user.OptResult - 0, // 14: user.ResignUserResp.commonResp:type_name -> user.CommonResp - 0, // 15: user.GetUserByIdResp.CommonResp:type_name -> user.CommonResp - 21, // 16: user.GetUserByIdResp.user:type_name -> user.User - 44, // 17: user.GetUsersByNameReq.Pagination:type_name -> server_api_params.RequestPagination - 21, // 18: user.GetUsersByNameResp.users:type_name -> user.User - 45, // 19: user.GetUsersByNameResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 20: user.AlterUserResp.CommonResp:type_name -> user.CommonResp - 44, // 21: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 0, // 22: user.GetUsersResp.CommonResp:type_name -> user.CommonResp - 21, // 23: user.GetUsersResp.user:type_name -> user.User - 45, // 24: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 25: user.AddUserResp.CommonResp:type_name -> user.CommonResp - 0, // 26: user.BlockUserResp.CommonResp:type_name -> user.CommonResp - 0, // 27: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp - 44, // 28: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 21, // 29: user.BlockUser.User:type_name -> user.User - 0, // 30: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp - 36, // 31: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser - 45, // 32: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 36, // 33: user.GetBlockUserByIdResp.BlockUser:type_name -> user.BlockUser - 7, // 34: user.user.GetUserInfo:input_type -> user.GetUserInfoReq - 9, // 35: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq - 1, // 36: user.user.DeleteUsers:input_type -> user.DeleteUsersReq - 3, // 37: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq - 11, // 38: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq - 14, // 39: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq - 16, // 40: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq - 5, // 41: user.user.AccountCheck:input_type -> user.AccountCheckReq - 20, // 42: user.user.GetUserById:input_type -> user.GetUserByIdReq - 23, // 43: user.user.GetUsersByName:input_type -> user.GetUsersByNameReq - 18, // 44: user.user.ResignUser:input_type -> user.ResignUserReq - 25, // 45: user.user.AlterUser:input_type -> user.AlterUserReq - 27, // 46: user.user.GetUsers:input_type -> user.GetUsersReq - 29, // 47: user.user.AddUser:input_type -> user.AddUserReq - 31, // 48: user.user.BlockUser:input_type -> user.BlockUserReq - 33, // 49: user.user.UnBlockUser:input_type -> user.UnBlockUserReq - 35, // 50: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq - 38, // 51: user.user.GetBlockUserById:input_type -> user.GetBlockUserByIdReq - 40, // 52: user.user.DeleteUser:input_type -> user.DeleteUserReq - 8, // 53: user.user.GetUserInfo:output_type -> user.GetUserInfoResp - 10, // 54: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp - 2, // 55: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 56: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp - 13, // 57: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp - 15, // 58: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp - 17, // 59: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp - 6, // 60: user.user.AccountCheck:output_type -> user.AccountCheckResp - 22, // 61: user.user.GetUserById:output_type -> user.GetUserByIdResp - 24, // 62: user.user.GetUsersByName:output_type -> user.GetUsersByNameResp - 19, // 63: user.user.ResignUser:output_type -> user.ResignUserResp - 26, // 64: user.user.AlterUser:output_type -> user.AlterUserResp - 28, // 65: user.user.GetUsers:output_type -> user.GetUsersResp - 30, // 66: user.user.AddUser:output_type -> user.AddUserResp - 32, // 67: user.user.BlockUser:output_type -> user.BlockUserResp - 34, // 68: user.user.UnBlockUser:output_type -> user.UnBlockUserResp - 37, // 69: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp - 39, // 70: user.user.GetBlockUserById:output_type -> user.GetBlockUserByIdResp - 41, // 71: user.user.DeleteUser:output_type -> user.DeleteUserResp - 53, // [53:72] is the sub-list for method output_type - 34, // [34:53] is the sub-list for method input_type - 34, // [34:34] is the sub-list for extension type_name - 34, // [34:34] is the sub-list for extension extendee - 0, // [0:34] is the sub-list for field type_name + 11, // 8: user.SetConversationReq.Conversation:type_name -> user.Conversation + 0, // 9: user.SetConversationResp.commonResp:type_name -> user.CommonResp + 0, // 10: user.SetRecvMsgOptResp.commonResp:type_name -> user.CommonResp + 0, // 11: user.GetConversationResp.commonResp:type_name -> user.CommonResp + 11, // 12: user.GetConversationResp.Conversation:type_name -> user.Conversation + 0, // 13: user.GetConversationsResp.commonResp:type_name -> user.CommonResp + 11, // 14: user.GetConversationsResp.Conversations:type_name -> user.Conversation + 0, // 15: user.GetAllConversationsResp.commonResp:type_name -> user.CommonResp + 11, // 16: user.GetAllConversationsResp.Conversations:type_name -> user.Conversation + 11, // 17: user.BatchSetConversationsReq.Conversations:type_name -> user.Conversation + 0, // 18: user.BatchSetConversationsResp.commonResp:type_name -> user.CommonResp + 0, // 19: user.ResignUserResp.commonResp:type_name -> user.CommonResp + 0, // 20: user.GetUserByIdResp.CommonResp:type_name -> user.CommonResp + 27, // 21: user.GetUserByIdResp.user:type_name -> user.User + 50, // 22: user.GetUsersByNameReq.Pagination:type_name -> server_api_params.RequestPagination + 27, // 23: user.GetUsersByNameResp.users:type_name -> user.User + 51, // 24: user.GetUsersByNameResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 25: user.AlterUserResp.CommonResp:type_name -> user.CommonResp + 50, // 26: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 0, // 27: user.GetUsersResp.CommonResp:type_name -> user.CommonResp + 27, // 28: user.GetUsersResp.user:type_name -> user.User + 51, // 29: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 30: user.AddUserResp.CommonResp:type_name -> user.CommonResp + 0, // 31: user.BlockUserResp.CommonResp:type_name -> user.CommonResp + 0, // 32: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp + 50, // 33: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 27, // 34: user.BlockUser.User:type_name -> user.User + 0, // 35: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp + 42, // 36: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser + 51, // 37: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 42, // 38: user.GetBlockUserByIdResp.BlockUser:type_name -> user.BlockUser + 0, // 39: user.DeleteUserResp.CommonResp:type_name -> user.CommonResp + 7, // 40: user.user.GetUserInfo:input_type -> user.GetUserInfoReq + 9, // 41: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq + 1, // 42: user.user.DeleteUsers:input_type -> user.DeleteUsersReq + 3, // 43: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq + 5, // 44: user.user.AccountCheck:input_type -> user.AccountCheckReq + 16, // 45: user.user.GetConversation:input_type -> user.GetConversationReq + 20, // 46: user.user.GetAllConversations:input_type -> user.GetAllConversationsReq + 18, // 47: user.user.GetConversations:input_type -> user.GetConversationsReq + 22, // 48: user.user.BatchSetConversations:input_type -> user.BatchSetConversationsReq + 12, // 49: user.user.SetConversation:input_type -> user.SetConversationReq + 14, // 50: user.user.SetRecvMsgOpt:input_type -> user.SetRecvMsgOptReq + 26, // 51: user.user.GetUserById:input_type -> user.GetUserByIdReq + 29, // 52: user.user.GetUsersByName:input_type -> user.GetUsersByNameReq + 24, // 53: user.user.ResignUser:input_type -> user.ResignUserReq + 31, // 54: user.user.AlterUser:input_type -> user.AlterUserReq + 33, // 55: user.user.GetUsers:input_type -> user.GetUsersReq + 35, // 56: user.user.AddUser:input_type -> user.AddUserReq + 37, // 57: user.user.BlockUser:input_type -> user.BlockUserReq + 39, // 58: user.user.UnBlockUser:input_type -> user.UnBlockUserReq + 41, // 59: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq + 44, // 60: user.user.GetBlockUserById:input_type -> user.GetBlockUserByIdReq + 46, // 61: user.user.DeleteUser:input_type -> user.DeleteUserReq + 8, // 62: user.user.GetUserInfo:output_type -> user.GetUserInfoResp + 10, // 63: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp + 2, // 64: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 65: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp + 6, // 66: user.user.AccountCheck:output_type -> user.AccountCheckResp + 17, // 67: user.user.GetConversation:output_type -> user.GetConversationResp + 21, // 68: user.user.GetAllConversations:output_type -> user.GetAllConversationsResp + 19, // 69: user.user.GetConversations:output_type -> user.GetConversationsResp + 23, // 70: user.user.BatchSetConversations:output_type -> user.BatchSetConversationsResp + 13, // 71: user.user.SetConversation:output_type -> user.SetConversationResp + 15, // 72: user.user.SetRecvMsgOpt:output_type -> user.SetRecvMsgOptResp + 28, // 73: user.user.GetUserById:output_type -> user.GetUserByIdResp + 30, // 74: user.user.GetUsersByName:output_type -> user.GetUsersByNameResp + 25, // 75: user.user.ResignUser:output_type -> user.ResignUserResp + 32, // 76: user.user.AlterUser:output_type -> user.AlterUserResp + 34, // 77: user.user.GetUsers:output_type -> user.GetUsersResp + 36, // 78: user.user.AddUser:output_type -> user.AddUserResp + 38, // 79: user.user.BlockUser:output_type -> user.BlockUserResp + 40, // 80: user.user.UnBlockUser:output_type -> user.UnBlockUserResp + 43, // 81: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp + 45, // 82: user.user.GetBlockUserById:output_type -> user.GetBlockUserByIdResp + 47, // 83: user.user.DeleteUser:output_type -> user.DeleteUserResp + 62, // [62:84] is the sub-list for method output_type + 40, // [40:62] is the sub-list for method input_type + 40, // [40:40] is the sub-list for extension type_name + 40, // [40:40] is the sub-list for extension extendee + 0, // [0:40] is the sub-list for field type_name } func init() { file_user_user_proto_init() } @@ -3270,7 +3756,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetReceiveMessageOptReq); i { + switch v := v.(*Conversation); i { case 0: return &v.state case 1: @@ -3282,7 +3768,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OptResult); i { + switch v := v.(*SetConversationReq); i { case 0: return &v.state case 1: @@ -3294,7 +3780,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetReceiveMessageOptResp); i { + switch v := v.(*SetConversationResp); i { case 0: return &v.state case 1: @@ -3306,7 +3792,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetReceiveMessageOptReq); i { + switch v := v.(*SetRecvMsgOptReq); i { case 0: return &v.state case 1: @@ -3318,7 +3804,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetReceiveMessageOptResp); i { + switch v := v.(*SetRecvMsgOptResp); i { case 0: return &v.state case 1: @@ -3330,7 +3816,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllConversationMsgOptReq); i { + switch v := v.(*GetConversationReq); i { case 0: return &v.state case 1: @@ -3342,7 +3828,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllConversationMsgOptResp); i { + switch v := v.(*GetConversationResp); i { case 0: return &v.state case 1: @@ -3354,7 +3840,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResignUserReq); i { + switch v := v.(*GetConversationsReq); i { case 0: return &v.state case 1: @@ -3366,7 +3852,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResignUserResp); i { + switch v := v.(*GetConversationsResp); i { case 0: return &v.state case 1: @@ -3378,7 +3864,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByIdReq); i { + switch v := v.(*GetAllConversationsReq); i { case 0: return &v.state case 1: @@ -3390,7 +3876,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*User); i { + switch v := v.(*GetAllConversationsResp); i { case 0: return &v.state case 1: @@ -3402,7 +3888,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByIdResp); i { + switch v := v.(*BatchSetConversationsReq); i { case 0: return &v.state case 1: @@ -3414,7 +3900,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByNameReq); i { + switch v := v.(*BatchSetConversationsResp); i { case 0: return &v.state case 1: @@ -3426,7 +3912,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByNameResp); i { + switch v := v.(*ResignUserReq); i { case 0: return &v.state case 1: @@ -3438,7 +3924,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlterUserReq); i { + switch v := v.(*ResignUserResp); i { case 0: return &v.state case 1: @@ -3450,7 +3936,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlterUserResp); i { + switch v := v.(*GetUserByIdReq); i { case 0: return &v.state case 1: @@ -3462,7 +3948,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersReq); i { + switch v := v.(*User); i { case 0: return &v.state case 1: @@ -3474,7 +3960,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersResp); i { + switch v := v.(*GetUserByIdResp); i { case 0: return &v.state case 1: @@ -3486,7 +3972,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUserReq); i { + switch v := v.(*GetUsersByNameReq); i { case 0: return &v.state case 1: @@ -3498,7 +3984,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUserResp); i { + switch v := v.(*GetUsersByNameResp); i { case 0: return &v.state case 1: @@ -3510,7 +3996,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUserReq); i { + switch v := v.(*AlterUserReq); i { case 0: return &v.state case 1: @@ -3522,7 +4008,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUserResp); i { + switch v := v.(*AlterUserResp); i { case 0: return &v.state case 1: @@ -3534,7 +4020,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnBlockUserReq); i { + switch v := v.(*GetUsersReq); i { case 0: return &v.state case 1: @@ -3546,7 +4032,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnBlockUserResp); i { + switch v := v.(*GetUsersResp); i { case 0: return &v.state case 1: @@ -3558,7 +4044,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersReq); i { + switch v := v.(*AddUserReq); i { case 0: return &v.state case 1: @@ -3570,7 +4056,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUser); i { + switch v := v.(*AddUserResp); i { case 0: return &v.state case 1: @@ -3582,7 +4068,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersResp); i { + switch v := v.(*BlockUserReq); i { case 0: return &v.state case 1: @@ -3594,7 +4080,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserByIdReq); i { + switch v := v.(*BlockUserResp); i { case 0: return &v.state case 1: @@ -3606,7 +4092,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserByIdResp); i { + switch v := v.(*UnBlockUserReq); i { case 0: return &v.state case 1: @@ -3618,7 +4104,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserReq); i { + switch v := v.(*UnBlockUserResp); i { case 0: return &v.state case 1: @@ -3630,7 +4116,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserResp); i { + switch v := v.(*GetBlockUsersReq); i { case 0: return &v.state case 1: @@ -3642,6 +4128,78 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[43].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[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUserByIdReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUserByIdResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountCheckResp_SingleUserStatus); i { case 0: return &v.state @@ -3660,7 +4218,7 @@ func file_user_user_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_user_proto_rawDesc, NumEnums: 0, - NumMessages: 43, + NumMessages: 49, NumExtensions: 0, NumServices: 1, }, @@ -3690,10 +4248,13 @@ type UserClient interface { UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts ...grpc.CallOption) (*GetAllUserIDResp, error) - SetReceiveMessageOpt(ctx context.Context, in *SetReceiveMessageOptReq, opts ...grpc.CallOption) (*SetReceiveMessageOptResp, error) - GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMessageOptReq, opts ...grpc.CallOption) (*GetReceiveMessageOptResp, error) - GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) + GetConversation(ctx context.Context, in *GetConversationReq, opts ...grpc.CallOption) (*GetConversationResp, error) + GetAllConversations(ctx context.Context, in *GetAllConversationsReq, opts ...grpc.CallOption) (*GetAllConversationsResp, error) + GetConversations(ctx context.Context, in *GetConversationsReq, opts ...grpc.CallOption) (*GetConversationsResp, error) + BatchSetConversations(ctx context.Context, in *BatchSetConversationsReq, opts ...grpc.CallOption) (*BatchSetConversationsResp, error) + SetConversation(ctx context.Context, in *SetConversationReq, opts ...grpc.CallOption) (*SetConversationResp, error) + SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, opts ...grpc.CallOption) (*SetRecvMsgOptResp, error) GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) GetUsersByName(ctx context.Context, in *GetUsersByNameReq, opts ...grpc.CallOption) (*GetUsersByNameResp, error) ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) @@ -3751,33 +4312,6 @@ func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts return out, nil } -func (c *userClient) SetReceiveMessageOpt(ctx context.Context, in *SetReceiveMessageOptReq, opts ...grpc.CallOption) (*SetReceiveMessageOptResp, error) { - out := new(SetReceiveMessageOptResp) - err := c.cc.Invoke(ctx, "/user.user/SetReceiveMessageOpt", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMessageOptReq, opts ...grpc.CallOption) (*GetReceiveMessageOptResp, error) { - out := new(GetReceiveMessageOptResp) - err := c.cc.Invoke(ctx, "/user.user/GetReceiveMessageOpt", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) { - out := new(GetAllConversationMsgOptResp) - err := c.cc.Invoke(ctx, "/user.user/GetAllConversationMsgOpt", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) { out := new(AccountCheckResp) err := c.cc.Invoke(ctx, "/user.user/AccountCheck", in, out, opts...) @@ -3787,6 +4321,60 @@ func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts return out, nil } +func (c *userClient) GetConversation(ctx context.Context, in *GetConversationReq, opts ...grpc.CallOption) (*GetConversationResp, error) { + out := new(GetConversationResp) + err := c.cc.Invoke(ctx, "/user.user/GetConversation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetAllConversations(ctx context.Context, in *GetAllConversationsReq, opts ...grpc.CallOption) (*GetAllConversationsResp, error) { + out := new(GetAllConversationsResp) + err := c.cc.Invoke(ctx, "/user.user/GetAllConversations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetConversations(ctx context.Context, in *GetConversationsReq, opts ...grpc.CallOption) (*GetConversationsResp, error) { + out := new(GetConversationsResp) + err := c.cc.Invoke(ctx, "/user.user/GetConversations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) BatchSetConversations(ctx context.Context, in *BatchSetConversationsReq, opts ...grpc.CallOption) (*BatchSetConversationsResp, error) { + out := new(BatchSetConversationsResp) + err := c.cc.Invoke(ctx, "/user.user/BatchSetConversations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) SetConversation(ctx context.Context, in *SetConversationReq, opts ...grpc.CallOption) (*SetConversationResp, error) { + out := new(SetConversationResp) + err := c.cc.Invoke(ctx, "/user.user/SetConversation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, opts ...grpc.CallOption) (*SetRecvMsgOptResp, error) { + out := new(SetRecvMsgOptResp) + err := c.cc.Invoke(ctx, "/user.user/SetRecvMsgOpt", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) { out := new(GetUserByIdResp) err := c.cc.Invoke(ctx, "/user.user/GetUserById", in, out, opts...) @@ -3892,10 +4480,13 @@ type UserServer interface { UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) GetAllUserID(context.Context, *GetAllUserIDReq) (*GetAllUserIDResp, error) - SetReceiveMessageOpt(context.Context, *SetReceiveMessageOptReq) (*SetReceiveMessageOptResp, error) - GetReceiveMessageOpt(context.Context, *GetReceiveMessageOptReq) (*GetReceiveMessageOptResp, error) - GetAllConversationMsgOpt(context.Context, *GetAllConversationMsgOptReq) (*GetAllConversationMsgOptResp, error) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) + GetConversation(context.Context, *GetConversationReq) (*GetConversationResp, error) + GetAllConversations(context.Context, *GetAllConversationsReq) (*GetAllConversationsResp, error) + GetConversations(context.Context, *GetConversationsReq) (*GetConversationsResp, error) + BatchSetConversations(context.Context, *BatchSetConversationsReq) (*BatchSetConversationsResp, error) + SetConversation(context.Context, *SetConversationReq) (*SetConversationResp, error) + SetRecvMsgOpt(context.Context, *SetRecvMsgOptReq) (*SetRecvMsgOptResp, error) GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) GetUsersByName(context.Context, *GetUsersByNameReq) (*GetUsersByNameResp, error) ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) @@ -3925,18 +4516,27 @@ func (*UnimplementedUserServer) DeleteUsers(context.Context, *DeleteUsersReq) (* func (*UnimplementedUserServer) GetAllUserID(context.Context, *GetAllUserIDReq) (*GetAllUserIDResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetAllUserID not implemented") } -func (*UnimplementedUserServer) SetReceiveMessageOpt(context.Context, *SetReceiveMessageOptReq) (*SetReceiveMessageOptResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetReceiveMessageOpt not implemented") -} -func (*UnimplementedUserServer) GetReceiveMessageOpt(context.Context, *GetReceiveMessageOptReq) (*GetReceiveMessageOptResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetReceiveMessageOpt not implemented") -} -func (*UnimplementedUserServer) GetAllConversationMsgOpt(context.Context, *GetAllConversationMsgOptReq) (*GetAllConversationMsgOptResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetAllConversationMsgOpt not implemented") -} func (*UnimplementedUserServer) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) { return nil, status.Errorf(codes.Unimplemented, "method AccountCheck not implemented") } +func (*UnimplementedUserServer) GetConversation(context.Context, *GetConversationReq) (*GetConversationResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetConversation not implemented") +} +func (*UnimplementedUserServer) GetAllConversations(context.Context, *GetAllConversationsReq) (*GetAllConversationsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAllConversations not implemented") +} +func (*UnimplementedUserServer) GetConversations(context.Context, *GetConversationsReq) (*GetConversationsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetConversations not implemented") +} +func (*UnimplementedUserServer) BatchSetConversations(context.Context, *BatchSetConversationsReq) (*BatchSetConversationsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchSetConversations not implemented") +} +func (*UnimplementedUserServer) SetConversation(context.Context, *SetConversationReq) (*SetConversationResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetConversation not implemented") +} +func (*UnimplementedUserServer) SetRecvMsgOpt(context.Context, *SetRecvMsgOptReq) (*SetRecvMsgOptResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetRecvMsgOpt not implemented") +} func (*UnimplementedUserServer) GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserById not implemented") } @@ -4047,60 +4647,6 @@ func _User_GetAllUserID_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } -func _User_SetReceiveMessageOpt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetReceiveMessageOptReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).SetReceiveMessageOpt(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/SetReceiveMessageOpt", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).SetReceiveMessageOpt(ctx, req.(*SetReceiveMessageOptReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_GetReceiveMessageOpt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetReceiveMessageOptReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetReceiveMessageOpt(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/GetReceiveMessageOpt", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetReceiveMessageOpt(ctx, req.(*GetReceiveMessageOptReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_GetAllConversationMsgOpt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetAllConversationMsgOptReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetAllConversationMsgOpt(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/GetAllConversationMsgOpt", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetAllConversationMsgOpt(ctx, req.(*GetAllConversationMsgOptReq)) - } - return interceptor(ctx, in, info, handler) -} - func _User_AccountCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AccountCheckReq) if err := dec(in); err != nil { @@ -4119,6 +4665,114 @@ func _User_AccountCheck_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } +func _User_GetConversation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetConversationReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetConversation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetConversation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetConversation(ctx, req.(*GetConversationReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetAllConversations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAllConversationsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetAllConversations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetAllConversations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetAllConversations(ctx, req.(*GetAllConversationsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetConversations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetConversationsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetConversations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetConversations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetConversations(ctx, req.(*GetConversationsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_BatchSetConversations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchSetConversationsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).BatchSetConversations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/BatchSetConversations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).BatchSetConversations(ctx, req.(*BatchSetConversationsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_SetConversation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetConversationReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).SetConversation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/SetConversation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).SetConversation(ctx, req.(*SetConversationReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_SetRecvMsgOpt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetRecvMsgOptReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).SetRecvMsgOpt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/SetRecvMsgOpt", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).SetRecvMsgOpt(ctx, req.(*SetRecvMsgOptReq)) + } + return interceptor(ctx, in, info, handler) +} + func _User_GetUserById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetUserByIdReq) if err := dec(in); err != nil { @@ -4337,22 +4991,34 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "GetAllUserID", Handler: _User_GetAllUserID_Handler, }, - { - MethodName: "SetReceiveMessageOpt", - Handler: _User_SetReceiveMessageOpt_Handler, - }, - { - MethodName: "GetReceiveMessageOpt", - Handler: _User_GetReceiveMessageOpt_Handler, - }, - { - MethodName: "GetAllConversationMsgOpt", - Handler: _User_GetAllConversationMsgOpt_Handler, - }, { MethodName: "AccountCheck", Handler: _User_AccountCheck_Handler, }, + { + MethodName: "GetConversation", + Handler: _User_GetConversation_Handler, + }, + { + MethodName: "GetAllConversations", + Handler: _User_GetAllConversations_Handler, + }, + { + MethodName: "GetConversations", + Handler: _User_GetConversations_Handler, + }, + { + MethodName: "BatchSetConversations", + Handler: _User_BatchSetConversations_Handler, + }, + { + MethodName: "SetConversation", + Handler: _User_SetConversation_Handler, + }, + { + MethodName: "SetRecvMsgOpt", + Handler: _User_SetRecvMsgOpt_Handler, + }, { MethodName: "GetUserById", Handler: _User_GetUserById_Handler, diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 298b8da84..f23d82135 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -67,44 +67,83 @@ message UpdateUserInfoResp{ CommonResp commonResp = 1; } +message Conversation{ + string OwnerUserID = 1; + string ConversationID = 2; + int32 RecvMsgOpt = 3; + int32 ConversationType = 4; + string UserID = 5; + string GroupID = 6; + int32 UnreadCount = 7; + int64 DraftTextTime = 8; + bool IsPinned = 9; + string AttachedInfo = 10; + bool IsPrivateChat = 11; + string Ex = 12; +} -message SetReceiveMessageOptReq{ - string FromUserID = 1; - int32 opt = 2; - repeated string conversationIDList = 3; - string operationID = 4; - string OpUserID = 5; +message SetConversationReq{ + Conversation Conversation = 1; + string OperationID = 2; } -message OptResult{ - string conversationID = 1; - int32 result = 2; //-1: failed; 0:default; 1: not receive ; 2: not jpush -} -message SetReceiveMessageOptResp{ + +message SetConversationResp{ CommonResp commonResp = 1; - repeated OptResult conversationOptResultList = 2; } - -message GetReceiveMessageOptReq{ - string FromUserID = 1; - repeated string conversationIDList = 2; - string operationID = 3; - string OpUserID = 4; +message SetRecvMsgOptReq { + string OwnerUserID = 1; + string ConversationID = 2; + int32 RecvMsgOpt = 3; + string OperationID = 4; } -message GetReceiveMessageOptResp{ + +message SetRecvMsgOptResp { CommonResp commonResp = 1; - repeated OptResult conversationOptResultList = 3; } - -message GetAllConversationMsgOptReq{ - string FromUserID = 1; - string operationID = 2; - string OpUserID = 3; +message GetConversationReq{ + string ConversationID = 1; + string OwnerUserID = 2; + string OperationID = 3; } -message GetAllConversationMsgOptResp{ + +message GetConversationResp{ CommonResp commonResp = 1; - repeated OptResult conversationOptResultList = 3; + Conversation Conversation = 2; +} + +message GetConversationsReq{ + string OwnerUserID = 1; + repeated string ConversationIDs = 2; + string OperationID = 3; +} + +message GetConversationsResp{ + CommonResp commonResp = 1; + repeated Conversation Conversations = 2; +} + +message GetAllConversationsReq{ + string OwnerUserID = 1; + string OperationID = 2; +} + +message GetAllConversationsResp{ + CommonResp commonResp = 1; + repeated Conversation Conversations = 2; +} + +message BatchSetConversationsReq{ + repeated Conversation Conversations = 1; + string OwnerUserID = 2; + string OperationID = 3; +} + +message BatchSetConversationsResp{ + CommonResp commonResp = 1; + repeated string Success = 2; + repeated string Failed = 3; } message ResignUserReq{ @@ -130,7 +169,7 @@ message User{ } message GetUserByIdResp{ - CommonResp CommonResp = 1; + CommonResp CommonResp = 1; User user = 2; } @@ -241,18 +280,24 @@ message DeleteUserReq { } message DeleteUserResp { - + CommonResp CommonResp = 1; } + + service user { rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); rpc UpdateUserInfo(UpdateUserInfoReq) returns(UpdateUserInfoResp); rpc DeleteUsers(DeleteUsersReq)returns(DeleteUsersResp); rpc GetAllUserID(GetAllUserIDReq)returns(GetAllUserIDResp); - rpc SetReceiveMessageOpt(SetReceiveMessageOptReq)returns(SetReceiveMessageOptResp); - rpc GetReceiveMessageOpt(GetReceiveMessageOptReq)returns(GetReceiveMessageOptResp); - rpc GetAllConversationMsgOpt(GetAllConversationMsgOptReq)returns(GetAllConversationMsgOptResp); + rpc AccountCheck(AccountCheckReq)returns(AccountCheckResp); + rpc GetConversation(GetConversationReq)returns(GetConversationResp); + rpc GetAllConversations(GetAllConversationsReq)returns(GetAllConversationsResp); + rpc GetConversations(GetConversationsReq)returns(GetConversationsResp); + rpc BatchSetConversations(BatchSetConversationsReq)returns(BatchSetConversationsResp); + rpc SetConversation(SetConversationReq)returns(SetConversationResp); + rpc SetRecvMsgOpt(SetRecvMsgOptReq)returns(SetRecvMsgOptResp); rpc GetUserById(GetUserByIdReq) returns (GetUserByIdResp); rpc GetUsersByName(GetUsersByNameReq) returns (GetUsersByNameResp); diff --git a/pkg/utils/file.go b/pkg/utils/file.go index 15ce153b0..e46050516 100644 --- a/pkg/utils/file.go +++ b/pkg/utils/file.go @@ -1,6 +1,13 @@ package utils -import "os" +import ( + "Open_IM/pkg/common/constant" + "fmt" + "math/rand" + "os" + "path" + "time" +) // Determine whether the given path is a folder func IsDir(path string) bool { @@ -20,3 +27,13 @@ func IsFile(path string) bool { func MkDir(path string) error { return os.MkdirAll(path, os.ModePerm) } + +func GetNewFileNameAndContentType(fileName string, fileType int) (string, string) { + suffix := path.Ext(fileName) + newName := fmt.Sprintf("%d-%d%s", time.Now().UnixNano(), rand.Int(), fileName) + contentType := "" + if fileType == constant.ImageType { + contentType = "image/" + suffix[1:] + } + return newName, contentType +} diff --git a/pkg/utils/strings.go b/pkg/utils/strings.go index 3265d2dc4..38262a95c 100644 --- a/pkg/utils/strings.go +++ b/pkg/utils/strings.go @@ -25,6 +25,10 @@ func StringToInt64(i string) int64 { j, _ := strconv.ParseInt(i, 10, 64) return j } +func StringToInt32(i string) int32 { + j, _ := strconv.ParseInt(i, 10, 64) + return int32(j) +} func Int32ToString(i int32) string { return strconv.FormatInt(int64(i), 10) } diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 440d3a993..f0e34aa90 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -3,9 +3,11 @@ package utils import ( "github.com/jinzhu/copier" "github.com/pkg/errors" + "math/rand" "runtime" "strconv" "strings" + "time" ) // copy a by b b->a @@ -71,3 +73,19 @@ func Difference(slice1, slice2 []uint32) []uint32 { } return n } +func OperationIDGenerator() string { + return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) +} + +func RemoveUserIDRepByMap(slc []string) []string { + var result []string + tempMap := map[string]byte{} + for _, e := range slc { + l := len(tempMap) + tempMap[e] = 0 + if len(tempMap) != l { + result = append(result, e) + } + } + return result +} diff --git a/script/check_all.sh b/script/check_all.sh index d0f48597b..1d55dff65 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -19,6 +19,7 @@ service_port_name=( openImAdminCmsPort openImMessageCmsPort openImStatisticsPort + openImOfficePort ) switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') for i in ${service_port_name[*]}; do diff --git a/script/function.sh b/script/function.sh index 0deb52b38..97f19187a 100644 --- a/script/function.sh +++ b/script/function.sh @@ -8,4 +8,8 @@ sub_s2=${sub_s1//,/ } sub_s3=${sub_s2#*[} sub_s4=${sub_s3%]*} ports_array=$sub_s4 +} +remove_space(){ + value=$* + result=`echo $value | sed 's/ //g'` } \ No newline at end of file diff --git a/script/path_info.cfg b/script/path_info.cfg index 5e3b3edc4..84e81adfd 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -48,6 +48,7 @@ service_source_root=( ../cmd/rpc/open_im_admin_cms/ ../cmd/rpc/open_im_message_cms/ ../cmd/rpc/open_im_statistics/ + ../cmd/rpc/open_im_office/ ${msg_gateway_source_root} ${msg_transfer_source_root} ${msg_source_root} @@ -68,6 +69,7 @@ service_names=( open_im_admin_cms open_im_message_cms open_im_statistics + open_im_office ${msg_gateway_name} ${msg_transfer_name} ${msg_name} diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 6e469c7d2..0b54493c2 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -18,6 +18,7 @@ service_filename=( open_im_message_cms open_im_statistics ${msg_name} + open_im_office ) #service config port name @@ -34,6 +35,7 @@ service_port_name=( openImMessageCmsPort openImStatisticsPort openImOfflineMessagePort + openImOfficePort ) for ((i = 0; i < ${#service_filename[*]}; i++)); do