refactor: centralize protobuf and remove go-zero
This commit is contained in:
@@ -1,57 +0,0 @@
|
||||
# 更新日志
|
||||
|
||||
所有对此项目的重要更改都将记录在此文件中。
|
||||
|
||||
此项目遵循[语义化版本控制](https://semver.org/lang/zh-CN/)。
|
||||
|
||||
## [未发布]
|
||||
|
||||
### 新增
|
||||
- 升级Go版本到1.25.1,支持最新的语言特性和性能改进
|
||||
- 添加完整的Dockerfile支持容器化部署
|
||||
- 添加全面的Makefile支持构建、测试、部署等开发流程
|
||||
- 添加docker-compose.yml支持本地开发环境
|
||||
- 添加PostgreSQL和Redis依赖服务支持
|
||||
- 添加Mailhog用于开发环境邮件测试
|
||||
- 添加Nginx反向代理配置支持
|
||||
|
||||
### 改进
|
||||
- 优化依赖包版本,升级到最新稳定版本
|
||||
- 改进代码注释为简体中文,提高可读性
|
||||
- 优化配置结构,增强错误处理能力
|
||||
- 增强Docker镜像构建过程,使用多阶段构建减小镜像大小
|
||||
- 添加健康检查机制,提高服务可用性监控
|
||||
|
||||
### 变更
|
||||
- Go版本从1.24.0升级到1.25.1
|
||||
- 依赖包版本更新到最新稳定版本
|
||||
- Docker基础镜像更新到Go 1.25
|
||||
|
||||
### 修复
|
||||
- 修复依赖包版本冲突问题
|
||||
- 优化配置文件加载逻辑
|
||||
|
||||
### 安全性
|
||||
- 更新所有依赖包到最新版本,修复已知安全漏洞
|
||||
- 添加非root用户运行容器,提高安全性
|
||||
- 优化Docker镜像安全配置
|
||||
|
||||
---
|
||||
|
||||
## [1.0.0] - 2024年初始版本
|
||||
|
||||
### 新增
|
||||
- 邮件发送服务 (SMTP)
|
||||
- 短信发送服务 (SMS)
|
||||
- 支持阿里云和腾讯云短信服务
|
||||
- gRPC和HTTP Gateway双协议支持
|
||||
- 配置文件管理
|
||||
- 基础的服务注册和发现
|
||||
|
||||
### 特性
|
||||
- 支持多种邮件服务商
|
||||
- 支持多种短信服务商
|
||||
- 模板化消息发送
|
||||
- 验证码生成和验证
|
||||
- 黑名单过滤
|
||||
- 发送频率限制
|
||||
@@ -1,73 +0,0 @@
|
||||
# 使用统一的 Go 工具链作为构建环境
|
||||
FROM golang:1.26.5-alpine AS builder
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /app
|
||||
|
||||
# 安装必要的工具
|
||||
RUN apk add --no-cache git ca-certificates tzdata
|
||||
|
||||
# 设置Go环境变量
|
||||
ENV GO111MODULE=on \
|
||||
GOPROXY=https://goproxy.cn,direct \
|
||||
GOPRIVATE=git.apinb.com/* \
|
||||
GONOPROXY=git.apinb.com/* \
|
||||
GOINSECURE=git.apinb.com/* \
|
||||
GONOSUMDB=git.apinb.com/* \
|
||||
GOEXPERIMENT=jsonv2
|
||||
|
||||
# 复制go.mod和go.sum文件
|
||||
COPY go.mod go.sum ./
|
||||
|
||||
# 下载依赖
|
||||
RUN go mod download
|
||||
|
||||
# 复制源代码
|
||||
COPY . .
|
||||
|
||||
# 构建应用
|
||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
|
||||
-ldflags='-w -s -extldflags "-static"' \
|
||||
-a -installsuffix cgo \
|
||||
-o sender \
|
||||
./cmd/main/main.go
|
||||
|
||||
# 使用最小的alpine镜像作为运行环境
|
||||
FROM alpine:latest
|
||||
|
||||
# 安装必要的包
|
||||
RUN apk --no-cache add ca-certificates tzdata
|
||||
|
||||
# 设置时区
|
||||
ENV TZ=Asia/Shanghai
|
||||
|
||||
# 创建非root用户
|
||||
RUN addgroup -g 1001 -S appgroup && \
|
||||
adduser -u 1001 -S appuser -G appgroup
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /app
|
||||
|
||||
# 从构建阶段复制二进制文件
|
||||
COPY --from=builder /app/sender .
|
||||
|
||||
# 复制配置文件和其他必要文件
|
||||
COPY --from=builder /app/etc ./etc
|
||||
COPY --from=builder /app/swagger ./swagger
|
||||
|
||||
# 创建日志目录
|
||||
RUN mkdir -p /app/logs && \
|
||||
chown -R appuser:appgroup /app
|
||||
|
||||
# 切换到非root用户
|
||||
USER appuser
|
||||
|
||||
# 暴露端口
|
||||
EXPOSE 12201 12202
|
||||
|
||||
# 健康检查
|
||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
||||
CMD wget --no-verbose --tries=1 --spider http://localhost:12202/health || exit 1
|
||||
|
||||
# 启动应用
|
||||
CMD ["./sender"]
|
||||
@@ -1,215 +0,0 @@
|
||||
# Sender Service Makefile
|
||||
|
||||
# 变量定义
|
||||
APP_NAME := sender
|
||||
VERSION := $(shell git describe --tags --always --dirty 2>/dev/null || echo "v1.0.0")
|
||||
BUILD_TIME := $(shell date +%Y-%m-%d\ %H:%M:%S)
|
||||
GIT_COMMIT := $(shell git rev-parse HEAD 2>/dev/null || echo "unknown")
|
||||
GO_VERSION := $(shell go version | awk '{print $$3}')
|
||||
|
||||
# 构建标志
|
||||
LDFLAGS := -ldflags "-X main.Version=$(VERSION) -X main.BuildTime=$(BUILD_TIME) -X main.GitCommit=$(GIT_COMMIT) -w -s"
|
||||
BUILD_FLAGS := -trimpath $(LDFLAGS)
|
||||
|
||||
# 目录
|
||||
BUILD_DIR := build
|
||||
PROTO_DIR := proto
|
||||
PB_DIR := pb
|
||||
|
||||
# Go环境变量
|
||||
export GO111MODULE=on
|
||||
export GOPROXY=https://goproxy.cn,direct
|
||||
export GOPRIVATE=git.apinb.com/*
|
||||
export GONOPROXY=git.apinb.com/*
|
||||
export GOINSECURE=git.apinb.com/*
|
||||
export GONOSUMDB=git.apinb.com/*
|
||||
export GOEXPERIMENT=jsonv2
|
||||
|
||||
.PHONY: help
|
||||
help: ## 显示帮助信息
|
||||
@echo "Sender Service - 可用的命令:"
|
||||
@echo ""
|
||||
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||||
|
||||
.PHONY: deps
|
||||
deps: ## 下载依赖
|
||||
@echo "下载Go依赖..."
|
||||
go mod download
|
||||
go mod tidy
|
||||
|
||||
.PHONY: proto
|
||||
proto: ## 生成protobuf代码
|
||||
@echo "生成protobuf代码..."
|
||||
buf generate
|
||||
|
||||
.PHONY: build
|
||||
build: deps ## 构建应用
|
||||
@echo "构建应用..."
|
||||
@mkdir -p $(BUILD_DIR)
|
||||
CGO_ENABLED=0 go build $(BUILD_FLAGS) -o $(BUILD_DIR)/$(APP_NAME) ./cmd/main/main.go
|
||||
@echo "构建完成: $(BUILD_DIR)/$(APP_NAME)"
|
||||
|
||||
.PHONY: build-linux
|
||||
build-linux: deps ## 构建Linux版本
|
||||
@echo "构建Linux版本..."
|
||||
@mkdir -p $(BUILD_DIR)
|
||||
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build $(BUILD_FLAGS) -o $(BUILD_DIR)/$(APP_NAME)-linux-amd64 ./cmd/main/main.go
|
||||
@echo "构建完成: $(BUILD_DIR)/$(APP_NAME)-linux-amd64"
|
||||
|
||||
.PHONY: build-windows
|
||||
build-windows: deps ## 构建Windows版本
|
||||
@echo "构建Windows版本..."
|
||||
@mkdir -p $(BUILD_DIR)
|
||||
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build $(BUILD_FLAGS) -o $(BUILD_DIR)/$(APP_NAME)-windows-amd64.exe ./cmd/main/main.go
|
||||
@echo "构建完成: $(BUILD_DIR)/$(APP_NAME)-windows-amd64.exe"
|
||||
|
||||
.PHONY: build-darwin
|
||||
build-darwin: deps ## 构建macOS版本
|
||||
@echo "构建macOS版本..."
|
||||
@mkdir -p $(BUILD_DIR)
|
||||
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build $(BUILD_FLAGS) -o $(BUILD_DIR)/$(APP_NAME)-darwin-amd64 ./cmd/main/main.go
|
||||
@echo "构建完成: $(BUILD_DIR)/$(APP_NAME)-darwin-amd64"
|
||||
|
||||
.PHONY: build-all
|
||||
build-all: build-linux build-windows build-darwin ## 构建所有平台版本
|
||||
|
||||
.PHONY: run
|
||||
run: build ## 运行应用
|
||||
@echo "启动应用..."
|
||||
./$(BUILD_DIR)/$(APP_NAME)
|
||||
|
||||
.PHONY: dev
|
||||
dev: ## 开发模式运行
|
||||
@echo "开发模式启动..."
|
||||
go run ./cmd/main/main.go
|
||||
|
||||
.PHONY: test
|
||||
test: ## 运行测试
|
||||
@echo "运行测试..."
|
||||
go test -v ./...
|
||||
|
||||
.PHONY: test-coverage
|
||||
test-coverage: ## 运行测试并生成覆盖率报告
|
||||
@echo "运行测试覆盖率..."
|
||||
go test -v -coverprofile=coverage.out ./...
|
||||
go tool cover -html=coverage.out -o coverage.html
|
||||
@echo "覆盖率报告生成: coverage.html"
|
||||
|
||||
.PHONY: test-mail
|
||||
test-mail: ## 运行邮件测试
|
||||
@echo "运行邮件测试..."
|
||||
go test -v ./test/mail_test.go
|
||||
|
||||
.PHONY: test-sms
|
||||
test-sms: ## 运行短信测试
|
||||
@echo "运行短信测试..."
|
||||
go test -v ./test/sms_test.go
|
||||
|
||||
.PHONY: lint
|
||||
lint: ## 运行代码检查
|
||||
@echo "运行代码检查..."
|
||||
@if command -v golangci-lint >/dev/null 2>&1; then \
|
||||
golangci-lint run; \
|
||||
else \
|
||||
echo "golangci-lint 未安装,使用go vet..."; \
|
||||
go vet ./...; \
|
||||
fi
|
||||
|
||||
.PHONY: fmt
|
||||
fmt: ## 格式化代码
|
||||
@echo "格式化代码..."
|
||||
go fmt ./...
|
||||
@if command -v goimports >/dev/null 2>&1; then \
|
||||
goimports -w .; \
|
||||
fi
|
||||
|
||||
.PHONY: security
|
||||
security: ## 安全检查
|
||||
@echo "运行安全检查..."
|
||||
@if command -v gosec >/dev/null 2>&1; then \
|
||||
gosec ./...; \
|
||||
else \
|
||||
echo "gosec 未安装,请运行: go install github.com/securego/gosec/v2/cmd/gosec@latest"; \
|
||||
fi
|
||||
|
||||
.PHONY: docker-build
|
||||
docker-build: ## 构建Docker镜像
|
||||
@echo "构建Docker镜像..."
|
||||
docker build -t $(APP_NAME):$(VERSION) .
|
||||
docker tag $(APP_NAME):$(VERSION) $(APP_NAME):latest
|
||||
|
||||
.PHONY: docker-run
|
||||
docker-run: ## 运行Docker容器
|
||||
@echo "运行Docker容器..."
|
||||
docker run -d --name $(APP_NAME) -p 12201:12201 -p 12202:12202 $(APP_NAME):latest
|
||||
|
||||
.PHONY: docker-stop
|
||||
docker-stop: ## 停止Docker容器
|
||||
@echo "停止Docker容器..."
|
||||
docker stop $(APP_NAME) || true
|
||||
docker rm $(APP_NAME) || true
|
||||
|
||||
.PHONY: docker-compose-up
|
||||
docker-compose-up: ## 启动docker-compose服务
|
||||
@echo "启动docker-compose服务..."
|
||||
docker-compose up -d
|
||||
|
||||
.PHONY: docker-compose-down
|
||||
docker-compose-down: ## 停止docker-compose服务
|
||||
@echo "停止docker-compose服务..."
|
||||
docker-compose down
|
||||
|
||||
.PHONY: docker-compose-logs
|
||||
docker-compose-logs: ## 查看docker-compose日志
|
||||
docker-compose logs -f
|
||||
|
||||
.PHONY: clean
|
||||
clean: ## 清理构建文件
|
||||
@echo "清理构建文件..."
|
||||
rm -rf $(BUILD_DIR)
|
||||
rm -f coverage.out coverage.html
|
||||
docker system prune -f
|
||||
|
||||
.PHONY: install-tools
|
||||
install-tools: ## 安装开发工具
|
||||
@echo "安装开发工具..."
|
||||
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
|
||||
go install golang.org/x/tools/cmd/goimports@latest
|
||||
go install github.com/securego/gosec/v2/cmd/gosec@latest
|
||||
go install github.com/bufbuild/buf/cmd/buf@latest
|
||||
|
||||
.PHONY: mod-update
|
||||
mod-update: ## 更新依赖
|
||||
@echo "更新依赖..."
|
||||
go get -u ./...
|
||||
go mod tidy
|
||||
|
||||
.PHONY: version
|
||||
version: ## 显示版本信息
|
||||
@echo "应用名称: $(APP_NAME)"
|
||||
@echo "版本: $(VERSION)"
|
||||
@echo "构建时间: $(BUILD_TIME)"
|
||||
@echo "Git提交: $(GIT_COMMIT)"
|
||||
@echo "Go版本: $(GO_VERSION)"
|
||||
|
||||
.PHONY: swagger
|
||||
swagger: ## 生成Swagger文档
|
||||
@echo "Swagger文档已通过protobuf生成在swagger目录"
|
||||
|
||||
.PHONY: init-config
|
||||
init-config: ## 初始化配置文件
|
||||
@echo "配置文件位于etc目录:"
|
||||
@echo "- etc/sender_dev.yaml (开发环境)"
|
||||
@echo "- etc/sender_test.yaml (测试环境)"
|
||||
@echo "- etc/sender_prod.yaml (生产环境)"
|
||||
|
||||
.PHONY: backup-config
|
||||
backup-config: ## 备份配置文件
|
||||
@echo "备份配置文件..."
|
||||
tar -czf config_backup_$(shell date +%Y%m%d_%H%M%S).tar.gz etc/
|
||||
|
||||
.PHONY: all
|
||||
all: clean deps proto build test lint ## 执行完整的构建流程
|
||||
|
||||
# 默认目标
|
||||
.DEFAULT_GOAL := help
|
||||
@@ -1,114 +0,0 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
# Sender Service
|
||||
sender-service:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: sender-service
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "12201:12201" # gRPC port
|
||||
- "12202:12202" # HTTP Gateway port
|
||||
environment:
|
||||
- SERVICE_ENV=docker
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./etc:/app/etc:ro
|
||||
- ./logs:/app/logs
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
networks:
|
||||
- sender-network
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:12202/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
# PostgreSQL Database
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
container_name: sender-postgres
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: sender_db
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-sender_password}
|
||||
TZ: Asia/Shanghai
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
- ./scripts:/docker-entrypoint-initdb.d:ro
|
||||
ports:
|
||||
- "5432:5432"
|
||||
networks:
|
||||
- sender-network
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
# Redis Cache
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: sender-redis
|
||||
restart: unless-stopped
|
||||
command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD:-sender_redis_password}
|
||||
environment:
|
||||
TZ: Asia/Shanghai
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
ports:
|
||||
- "6379:6379"
|
||||
networks:
|
||||
- sender-network
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 5
|
||||
|
||||
# Nginx Reverse Proxy (Optional)
|
||||
nginx:
|
||||
image: nginx:alpine
|
||||
container_name: sender-nginx
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||
- ./nginx/ssl:/etc/nginx/ssl:ro
|
||||
depends_on:
|
||||
- sender-service
|
||||
networks:
|
||||
- sender-network
|
||||
profiles:
|
||||
- with-nginx
|
||||
|
||||
# Mailhog for Email Testing (Development Only)
|
||||
mailhog:
|
||||
image: mailhog/mailhog:latest
|
||||
container_name: sender-mailhog
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "1025:1025" # SMTP port
|
||||
- "8025:8025" # Web UI port
|
||||
networks:
|
||||
- sender-network
|
||||
profiles:
|
||||
- development
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
driver: local
|
||||
redis_data:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
sender-network:
|
||||
driver: bridge
|
||||
@@ -1,8 +1,8 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.36.8
|
||||
// protoc (unknown)
|
||||
// source: mail.proto
|
||||
// protoc-gen-go v1.36.11
|
||||
// protoc v7.35.0
|
||||
// source: module/base/sender/proto/mail.proto
|
||||
|
||||
package sender
|
||||
|
||||
@@ -35,7 +35,7 @@ type SendMailRequest struct {
|
||||
|
||||
func (x *SendMailRequest) Reset() {
|
||||
*x = SendMailRequest{}
|
||||
mi := &file_mail_proto_msgTypes[0]
|
||||
mi := &file_module_base_sender_proto_mail_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@@ -47,7 +47,7 @@ func (x *SendMailRequest) String() string {
|
||||
func (*SendMailRequest) ProtoMessage() {}
|
||||
|
||||
func (x *SendMailRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_mail_proto_msgTypes[0]
|
||||
mi := &file_module_base_sender_proto_mail_proto_msgTypes[0]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@@ -60,7 +60,7 @@ func (x *SendMailRequest) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use SendMailRequest.ProtoReflect.Descriptor instead.
|
||||
func (*SendMailRequest) Descriptor() ([]byte, []int) {
|
||||
return file_mail_proto_rawDescGZIP(), []int{0}
|
||||
return file_module_base_sender_proto_mail_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *SendMailRequest) GetProvider() string {
|
||||
@@ -107,7 +107,7 @@ type SendMailReply struct {
|
||||
|
||||
func (x *SendMailReply) Reset() {
|
||||
*x = SendMailReply{}
|
||||
mi := &file_mail_proto_msgTypes[1]
|
||||
mi := &file_module_base_sender_proto_mail_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@@ -119,7 +119,7 @@ func (x *SendMailReply) String() string {
|
||||
func (*SendMailReply) ProtoMessage() {}
|
||||
|
||||
func (x *SendMailReply) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_mail_proto_msgTypes[1]
|
||||
mi := &file_module_base_sender_proto_mail_proto_msgTypes[1]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@@ -132,7 +132,7 @@ func (x *SendMailReply) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use SendMailReply.ProtoReflect.Descriptor instead.
|
||||
func (*SendMailReply) Descriptor() ([]byte, []int) {
|
||||
return file_mail_proto_rawDescGZIP(), []int{1}
|
||||
return file_module_base_sender_proto_mail_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *SendMailReply) GetData() string {
|
||||
@@ -142,12 +142,11 @@ func (x *SendMailReply) GetData() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
var File_mail_proto protoreflect.FileDescriptor
|
||||
var File_module_base_sender_proto_mail_proto protoreflect.FileDescriptor
|
||||
|
||||
const file_mail_proto_rawDesc = "" +
|
||||
const file_module_base_sender_proto_mail_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"\x16" +
|
||||
"base/sender/mail.proto\x12\x06sender\"\x84\x02\n" +
|
||||
"#module/base/sender/proto/mail.proto\x12\x06sender\"\x84\x02\n" +
|
||||
"\x0fSendMailRequest\x12\x1a\n" +
|
||||
"\bprovider\x18\x01 \x01(\tR\bprovider\x12!\n" +
|
||||
"\ftemplate_key\x18\x02 \x01(\tR\vtemplateKey\x12\x0e\n" +
|
||||
@@ -160,28 +159,27 @@ const file_mail_proto_rawDesc = "" +
|
||||
"\rSendMailReply\x12\x12\n" +
|
||||
"\x04data\x18\x01 \x01(\tR\x04data2>\n" +
|
||||
"\x04Mail\x126\n" +
|
||||
"\x04Send\x12\x17.sender.SendMailRequest\x1a\x15.sender.SendMailReplyB\n" +
|
||||
"Z\b.;senderb\x06proto3"
|
||||
"\x04Send\x12\x17.sender.SendMailRequest\x1a\x15.sender.SendMailReplyB'Z%bsm/full/module/base/sender/pb;senderb\x06proto3"
|
||||
|
||||
var (
|
||||
file_mail_proto_rawDescOnce sync.Once
|
||||
file_mail_proto_rawDescData []byte
|
||||
file_module_base_sender_proto_mail_proto_rawDescOnce sync.Once
|
||||
file_module_base_sender_proto_mail_proto_rawDescData []byte
|
||||
)
|
||||
|
||||
func file_mail_proto_rawDescGZIP() []byte {
|
||||
file_mail_proto_rawDescOnce.Do(func() {
|
||||
file_mail_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_mail_proto_rawDesc), len(file_mail_proto_rawDesc)))
|
||||
func file_module_base_sender_proto_mail_proto_rawDescGZIP() []byte {
|
||||
file_module_base_sender_proto_mail_proto_rawDescOnce.Do(func() {
|
||||
file_module_base_sender_proto_mail_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_module_base_sender_proto_mail_proto_rawDesc), len(file_module_base_sender_proto_mail_proto_rawDesc)))
|
||||
})
|
||||
return file_mail_proto_rawDescData
|
||||
return file_module_base_sender_proto_mail_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_mail_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||
var file_mail_proto_goTypes = []any{
|
||||
var file_module_base_sender_proto_mail_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
|
||||
var file_module_base_sender_proto_mail_proto_goTypes = []any{
|
||||
(*SendMailRequest)(nil), // 0: sender.SendMailRequest
|
||||
(*SendMailReply)(nil), // 1: sender.SendMailReply
|
||||
nil, // 2: sender.SendMailRequest.ParamtersEntry
|
||||
}
|
||||
var file_mail_proto_depIdxs = []int32{
|
||||
var file_module_base_sender_proto_mail_proto_depIdxs = []int32{
|
||||
2, // 0: sender.SendMailRequest.paramters:type_name -> sender.SendMailRequest.ParamtersEntry
|
||||
0, // 1: sender.Mail.Send:input_type -> sender.SendMailRequest
|
||||
1, // 2: sender.Mail.Send:output_type -> sender.SendMailReply
|
||||
@@ -192,26 +190,26 @@ var file_mail_proto_depIdxs = []int32{
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_mail_proto_init() }
|
||||
func file_mail_proto_init() {
|
||||
if File_mail_proto != nil {
|
||||
func init() { file_module_base_sender_proto_mail_proto_init() }
|
||||
func file_module_base_sender_proto_mail_proto_init() {
|
||||
if File_module_base_sender_proto_mail_proto != nil {
|
||||
return
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_mail_proto_rawDesc), len(file_mail_proto_rawDesc)),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_module_base_sender_proto_mail_proto_rawDesc), len(file_module_base_sender_proto_mail_proto_rawDesc)),
|
||||
NumEnums: 0,
|
||||
NumMessages: 3,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_mail_proto_goTypes,
|
||||
DependencyIndexes: file_mail_proto_depIdxs,
|
||||
MessageInfos: file_mail_proto_msgTypes,
|
||||
GoTypes: file_module_base_sender_proto_mail_proto_goTypes,
|
||||
DependencyIndexes: file_module_base_sender_proto_mail_proto_depIdxs,
|
||||
MessageInfos: file_module_base_sender_proto_mail_proto_msgTypes,
|
||||
}.Build()
|
||||
File_mail_proto = out.File
|
||||
file_mail_proto_goTypes = nil
|
||||
file_mail_proto_depIdxs = nil
|
||||
File_module_base_sender_proto_mail_proto = out.File
|
||||
file_module_base_sender_proto_mail_proto_goTypes = nil
|
||||
file_module_base_sender_proto_mail_proto_depIdxs = nil
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
|
||||
// source: mail.proto
|
||||
// source: module/base/sender/proto/mail.proto
|
||||
|
||||
/*
|
||||
Package sender is a reverse proxy.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: mail.proto
|
||||
// - protoc-gen-go-grpc v1.6.2
|
||||
// - protoc v7.35.0
|
||||
// source: module/base/sender/proto/mail.proto
|
||||
|
||||
package sender
|
||||
|
||||
@@ -50,16 +50,15 @@ func (c *mailClient) Send(ctx context.Context, in *SendMailRequest, opts ...grpc
|
||||
}
|
||||
|
||||
// MailServer is the server API for Mail service.
|
||||
// All implementations must embed UnimplementedMailServer
|
||||
// All implementations should embed UnimplementedMailServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// Mail method
|
||||
type MailServer interface {
|
||||
Send(context.Context, *SendMailRequest) (*SendMailReply, error)
|
||||
mustEmbedUnimplementedMailServer()
|
||||
}
|
||||
|
||||
// UnimplementedMailServer must be embedded to have
|
||||
// UnimplementedMailServer should be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
@@ -67,10 +66,9 @@ type MailServer interface {
|
||||
type UnimplementedMailServer struct{}
|
||||
|
||||
func (UnimplementedMailServer) Send(context.Context, *SendMailRequest) (*SendMailReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Send not implemented")
|
||||
return nil, status.Error(codes.Unimplemented, "method Send not implemented")
|
||||
}
|
||||
func (UnimplementedMailServer) mustEmbedUnimplementedMailServer() {}
|
||||
func (UnimplementedMailServer) testEmbeddedByValue() {}
|
||||
func (UnimplementedMailServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeMailServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to MailServer will
|
||||
@@ -80,7 +78,7 @@ type UnsafeMailServer interface {
|
||||
}
|
||||
|
||||
func RegisterMailServer(s grpc.ServiceRegistrar, srv MailServer) {
|
||||
// If the following call pancis, it indicates UnimplementedMailServer was
|
||||
// If the following call panics, it indicates UnimplementedMailServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
@@ -121,5 +119,5 @@ var Mail_ServiceDesc = grpc.ServiceDesc{
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "mail.proto",
|
||||
Metadata: "module/base/sender/proto/mail.proto",
|
||||
}
|
||||
|
||||
@@ -1,553 +0,0 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.36.8
|
||||
// protoc (unknown)
|
||||
// source: push_xiaomi.proto
|
||||
|
||||
package sender
|
||||
|
||||
import (
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
unsafe "unsafe"
|
||||
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
)
|
||||
|
||||
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 StatusReply struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Status int64 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态码
|
||||
Identity string `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"` // 标识码
|
||||
Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` //状态说明
|
||||
Timeseq int64 `protobuf:"varint,4,opt,name=timeseq,proto3" json:"timeseq,omitempty"` // 响应时间序列
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *StatusReply) Reset() {
|
||||
*x = StatusReply{}
|
||||
mi := &file_push_xiaomi_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *StatusReply) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*StatusReply) ProtoMessage() {}
|
||||
|
||||
func (x *StatusReply) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_push_xiaomi_proto_msgTypes[0]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use StatusReply.ProtoReflect.Descriptor instead.
|
||||
func (*StatusReply) Descriptor() ([]byte, []int) {
|
||||
return file_push_xiaomi_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *StatusReply) GetStatus() int64 {
|
||||
if x != nil {
|
||||
return x.Status
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *StatusReply) GetIdentity() string {
|
||||
if x != nil {
|
||||
return x.Identity
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *StatusReply) GetMessage() string {
|
||||
if x != nil {
|
||||
return x.Message
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *StatusReply) GetTimeseq() int64 {
|
||||
if x != nil {
|
||||
return x.Timeseq
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type BaseItem struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Payload string `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` // 消息的内容。(注意:需要对payload字符串做urlencode处理)
|
||||
RestrictedPackageName string `protobuf:"bytes,2,opt,name=restricted_package_name,json=restrictedPackageName,proto3" json:"restricted_package_name,omitempty"` // App的包名。备注:中间用逗号分割。
|
||||
Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"` // 通知栏展示的通知的标题,不允许全是空白字符,长度小于50, 一个中英文字符均计算为1(通知栏消息必填)。
|
||||
Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // 通知栏展示的通知的描述,不允许全是空白字符,长度小于128,一个中英文字符均计算为1(通知栏消息必填)。
|
||||
TimeToLive int64 `protobuf:"varint,5,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` // 可选项。如果用户离线,设置消息在服务器保存的时间,单位:ms。服务器默认最长保留两周。
|
||||
TimeToSend int64 `protobuf:"varint,6,opt,name=time_to_send,json=timeToSend,proto3" json:"time_to_send,omitempty"` // 可选项。定时发送消息。用自1970年1月1日以来00:00:00.0 UTC时间表示(以毫秒为单位的时间)。注:仅支持七天内的定时消息。
|
||||
SoundUri string `protobuf:"bytes,7,opt,name=sound_uri,json=soundUri,proto3" json:"sound_uri,omitempty"` // 可选项,自定义通知栏消息铃声url
|
||||
SenderForeground string `protobuf:"bytes,8,opt,name=sender_foreground,json=senderForeground,proto3" json:"sender_foreground,omitempty"` // 可选项 '1'弹出通知栏消息(默认);'0'不会弹出通知栏消息
|
||||
SenderEffect string `protobuf:"bytes,9,opt,name=sender_effect,json=senderEffect,proto3" json:"sender_effect,omitempty"` // 可选项,预定义通知栏消息的点击行为;"1":打开app的Launcher Activity。"2":打开app的任一Activity(需要extra.intent_uri)。"3":打开网页(需要传入extra.web_uri)
|
||||
IntentUri string `protobuf:"bytes,10,opt,name=intent_uri,json=intentUri,proto3" json:"intent_uri,omitempty"` // 可选项,打开当前app的任一组件。
|
||||
WebUri string `protobuf:"bytes,11,opt,name=web_uri,json=webUri,proto3" json:"web_uri,omitempty"` // 可选项,打开某一个网页。
|
||||
Jobkey string `protobuf:"bytes,12,opt,name=jobkey,proto3" json:"jobkey,omitempty"` // 可选项,使用推送批次(JobKey)功能聚合消息。由数字([0-9]),大小写字母([a-zA-Z]),下划线(_)和中划线(-)组成,长度不大于20个字符
|
||||
AppVersion string `protobuf:"bytes,13,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"` // 可以接收消息的app版本号,用逗号分割。目前支持MiPush_SDK_Client_2_2_12_sdk.jar(及以后)的版本。
|
||||
AppVersionNotIn string `protobuf:"bytes,14,opt,name=app_version_not_in,json=appVersionNotIn,proto3" json:"app_version_not_in,omitempty"` // 无法接收消息的app版本号,用逗号分割。
|
||||
Connpt string `protobuf:"bytes,15,opt,name=connpt,proto3" json:"connpt,omitempty"` // 可选项,指定在特定的网络环境下才能接收到消息。目前仅支持指定"wifi"。
|
||||
OnlySendOnce string `protobuf:"bytes,16,opt,name=only_send_once,json=onlySendOnce,proto3" json:"only_send_once,omitempty"` // 可选项,extra.only_send_once的值设置为'1',表示该消息仅在设备在线时发送一次,不缓存离线消息进行多次下发
|
||||
SenderId int32 `protobuf:"varint,17,opt,name=sender_id,json=senderId,proto3" json:"sender_id,omitempty"` // 可选项。默认情况下,通知栏只显示一条推送消息。如果通知栏要显示多条推送消息,需要针对不同的消息设置不同的sender_id(相同sender_id的通知栏消息会覆盖之前的),且要求sender_id为取值在0~2147483647的整数。
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *BaseItem) Reset() {
|
||||
*x = BaseItem{}
|
||||
mi := &file_push_xiaomi_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *BaseItem) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*BaseItem) ProtoMessage() {}
|
||||
|
||||
func (x *BaseItem) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_push_xiaomi_proto_msgTypes[1]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use BaseItem.ProtoReflect.Descriptor instead.
|
||||
func (*BaseItem) Descriptor() ([]byte, []int) {
|
||||
return file_push_xiaomi_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetPayload() string {
|
||||
if x != nil {
|
||||
return x.Payload
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetRestrictedPackageName() string {
|
||||
if x != nil {
|
||||
return x.RestrictedPackageName
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetTitle() string {
|
||||
if x != nil {
|
||||
return x.Title
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetDescription() string {
|
||||
if x != nil {
|
||||
return x.Description
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetTimeToLive() int64 {
|
||||
if x != nil {
|
||||
return x.TimeToLive
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetTimeToSend() int64 {
|
||||
if x != nil {
|
||||
return x.TimeToSend
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetSoundUri() string {
|
||||
if x != nil {
|
||||
return x.SoundUri
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetSenderForeground() string {
|
||||
if x != nil {
|
||||
return x.SenderForeground
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetSenderEffect() string {
|
||||
if x != nil {
|
||||
return x.SenderEffect
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetIntentUri() string {
|
||||
if x != nil {
|
||||
return x.IntentUri
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetWebUri() string {
|
||||
if x != nil {
|
||||
return x.WebUri
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetJobkey() string {
|
||||
if x != nil {
|
||||
return x.Jobkey
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetAppVersion() string {
|
||||
if x != nil {
|
||||
return x.AppVersion
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetAppVersionNotIn() string {
|
||||
if x != nil {
|
||||
return x.AppVersionNotIn
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetConnpt() string {
|
||||
if x != nil {
|
||||
return x.Connpt
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetOnlySendOnce() string {
|
||||
if x != nil {
|
||||
return x.OnlySendOnce
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *BaseItem) GetSenderId() int32 {
|
||||
if x != nil {
|
||||
return x.SenderId
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type ARequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
PushType string `protobuf:"bytes,1,opt,name=push_type,json=pushType,proto3" json:"push_type,omitempty"` // 推送类型:"alias";"registration_id"; 注:需要与push_id对应
|
||||
PushId []string `protobuf:"bytes,2,rep,name=push_id,json=pushId,proto3" json:"push_id,omitempty"` // 根据alias或registration_id或account,发送消息到指定设备上,用逗号分割。
|
||||
Message *BaseItem `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *ARequest) Reset() {
|
||||
*x = ARequest{}
|
||||
mi := &file_push_xiaomi_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ARequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*ARequest) ProtoMessage() {}
|
||||
|
||||
func (x *ARequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_push_xiaomi_proto_msgTypes[2]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use ARequest.ProtoReflect.Descriptor instead.
|
||||
func (*ARequest) Descriptor() ([]byte, []int) {
|
||||
return file_push_xiaomi_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *ARequest) GetPushType() string {
|
||||
if x != nil {
|
||||
return x.PushType
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *ARequest) GetPushId() []string {
|
||||
if x != nil {
|
||||
return x.PushId
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *ARequest) GetMessage() *BaseItem {
|
||||
if x != nil {
|
||||
return x.Message
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type TopicRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` // 根据topic,发送消息给订阅了该topic的所有设备
|
||||
Message *BaseItem `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *TopicRequest) Reset() {
|
||||
*x = TopicRequest{}
|
||||
mi := &file_push_xiaomi_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *TopicRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*TopicRequest) ProtoMessage() {}
|
||||
|
||||
func (x *TopicRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_push_xiaomi_proto_msgTypes[3]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use TopicRequest.ProtoReflect.Descriptor instead.
|
||||
func (*TopicRequest) Descriptor() ([]byte, []int) {
|
||||
return file_push_xiaomi_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
func (x *TopicRequest) GetTopic() string {
|
||||
if x != nil {
|
||||
return x.Topic
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *TopicRequest) GetMessage() *BaseItem {
|
||||
if x != nil {
|
||||
return x.Message
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type MultiTopicRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Topics string `protobuf:"bytes,1,opt,name=topics,proto3" json:"topics,omitempty"` // topic列表,使用;$;分割。注: topics参数需要和topic_op参数配合使用,另外topic的数量不能超过5。
|
||||
TopicOp string `protobuf:"bytes,2,opt,name=topic_op,json=topicOp,proto3" json:"topic_op,omitempty"` // topic之间的操作关系。支持以下三种:UNION并集INTERSECTION交集EXCEPT差集例如:topics的列表元素是[A, B, C, D],则并集结果是A∪B∪C∪D,交集的结果是A ∩B ∩C ∩D,差集的结果是A-B-C-D。
|
||||
Message *BaseItem `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *MultiTopicRequest) Reset() {
|
||||
*x = MultiTopicRequest{}
|
||||
mi := &file_push_xiaomi_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *MultiTopicRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*MultiTopicRequest) ProtoMessage() {}
|
||||
|
||||
func (x *MultiTopicRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_push_xiaomi_proto_msgTypes[4]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use MultiTopicRequest.ProtoReflect.Descriptor instead.
|
||||
func (*MultiTopicRequest) Descriptor() ([]byte, []int) {
|
||||
return file_push_xiaomi_proto_rawDescGZIP(), []int{4}
|
||||
}
|
||||
|
||||
func (x *MultiTopicRequest) GetTopics() string {
|
||||
if x != nil {
|
||||
return x.Topics
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *MultiTopicRequest) GetTopicOp() string {
|
||||
if x != nil {
|
||||
return x.TopicOp
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *MultiTopicRequest) GetMessage() *BaseItem {
|
||||
if x != nil {
|
||||
return x.Message
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_push_xiaomi_proto protoreflect.FileDescriptor
|
||||
|
||||
const file_push_xiaomi_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"\x1dbase/sender/push_xiaomi.proto\x12\x06sender\"u\n" +
|
||||
"\vStatusReply\x12\x16\n" +
|
||||
"\x06status\x18\x01 \x01(\x03R\x06status\x12\x1a\n" +
|
||||
"\bidentity\x18\x02 \x01(\tR\bidentity\x12\x18\n" +
|
||||
"\amessage\x18\x03 \x01(\tR\amessage\x12\x18\n" +
|
||||
"\atimeseq\x18\x04 \x01(\x03R\atimeseq\"\xc0\x04\n" +
|
||||
"\bBaseItem\x12\x18\n" +
|
||||
"\apayload\x18\x01 \x01(\tR\apayload\x126\n" +
|
||||
"\x17restricted_package_name\x18\x02 \x01(\tR\x15restrictedPackageName\x12\x14\n" +
|
||||
"\x05title\x18\x03 \x01(\tR\x05title\x12 \n" +
|
||||
"\vdescription\x18\x04 \x01(\tR\vdescription\x12 \n" +
|
||||
"\ftime_to_live\x18\x05 \x01(\x03R\n" +
|
||||
"timeToLive\x12 \n" +
|
||||
"\ftime_to_send\x18\x06 \x01(\x03R\n" +
|
||||
"timeToSend\x12\x1b\n" +
|
||||
"\tsound_uri\x18\a \x01(\tR\bsoundUri\x12+\n" +
|
||||
"\x11sender_foreground\x18\b \x01(\tR\x10senderForeground\x12#\n" +
|
||||
"\rsender_effect\x18\t \x01(\tR\fsenderEffect\x12\x1d\n" +
|
||||
"\n" +
|
||||
"intent_uri\x18\n" +
|
||||
" \x01(\tR\tintentUri\x12\x17\n" +
|
||||
"\aweb_uri\x18\v \x01(\tR\x06webUri\x12\x16\n" +
|
||||
"\x06jobkey\x18\f \x01(\tR\x06jobkey\x12\x1f\n" +
|
||||
"\vapp_version\x18\r \x01(\tR\n" +
|
||||
"appVersion\x12+\n" +
|
||||
"\x12app_version_not_in\x18\x0e \x01(\tR\x0fappVersionNotIn\x12\x16\n" +
|
||||
"\x06connpt\x18\x0f \x01(\tR\x06connpt\x12$\n" +
|
||||
"\x0eonly_send_once\x18\x10 \x01(\tR\fonlySendOnce\x12\x1b\n" +
|
||||
"\tsender_id\x18\x11 \x01(\x05R\bsenderId\"l\n" +
|
||||
"\bARequest\x12\x1b\n" +
|
||||
"\tpush_type\x18\x01 \x01(\tR\bpushType\x12\x17\n" +
|
||||
"\apush_id\x18\x02 \x03(\tR\x06pushId\x12*\n" +
|
||||
"\amessage\x18\x03 \x01(\v2\x10.sender.BaseItemR\amessage\"P\n" +
|
||||
"\fTopicRequest\x12\x14\n" +
|
||||
"\x05topic\x18\x01 \x01(\tR\x05topic\x12*\n" +
|
||||
"\amessage\x18\x02 \x01(\v2\x10.sender.BaseItemR\amessage\"r\n" +
|
||||
"\x11MultiTopicRequest\x12\x16\n" +
|
||||
"\x06topics\x18\x01 \x01(\tR\x06topics\x12\x19\n" +
|
||||
"\btopic_op\x18\x02 \x01(\tR\atopicOp\x12*\n" +
|
||||
"\amessage\x18\x03 \x01(\v2\x10.sender.BaseItemR\amessage2\x92\x02\n" +
|
||||
"\x06Xiaomi\x120\n" +
|
||||
"\x05Regid\x12\x10.sender.ARequest\x1a\x13.sender.StatusReply\"\x00\x120\n" +
|
||||
"\x05Alias\x12\x10.sender.ARequest\x1a\x13.sender.StatusReply\"\x00\x124\n" +
|
||||
"\x05Topic\x12\x14.sender.TopicRequest\x1a\x13.sender.StatusReply\"\x00\x12>\n" +
|
||||
"\n" +
|
||||
"MultiTopic\x12\x19.sender.MultiTopicRequest\x1a\x13.sender.StatusReply\"\x00\x12.\n" +
|
||||
"\x03All\x12\x10.sender.BaseItem\x1a\x13.sender.StatusReply\"\x00B\n" +
|
||||
"Z\b./senderb\x06proto3"
|
||||
|
||||
var (
|
||||
file_push_xiaomi_proto_rawDescOnce sync.Once
|
||||
file_push_xiaomi_proto_rawDescData []byte
|
||||
)
|
||||
|
||||
func file_push_xiaomi_proto_rawDescGZIP() []byte {
|
||||
file_push_xiaomi_proto_rawDescOnce.Do(func() {
|
||||
file_push_xiaomi_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_push_xiaomi_proto_rawDesc), len(file_push_xiaomi_proto_rawDesc)))
|
||||
})
|
||||
return file_push_xiaomi_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_push_xiaomi_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
|
||||
var file_push_xiaomi_proto_goTypes = []any{
|
||||
(*StatusReply)(nil), // 0: sender.StatusReply
|
||||
(*BaseItem)(nil), // 1: sender.BaseItem
|
||||
(*ARequest)(nil), // 2: sender.ARequest
|
||||
(*TopicRequest)(nil), // 3: sender.TopicRequest
|
||||
(*MultiTopicRequest)(nil), // 4: sender.MultiTopicRequest
|
||||
}
|
||||
var file_push_xiaomi_proto_depIdxs = []int32{
|
||||
1, // 0: sender.ARequest.message:type_name -> sender.BaseItem
|
||||
1, // 1: sender.TopicRequest.message:type_name -> sender.BaseItem
|
||||
1, // 2: sender.MultiTopicRequest.message:type_name -> sender.BaseItem
|
||||
2, // 3: sender.Xiaomi.Regid:input_type -> sender.ARequest
|
||||
2, // 4: sender.Xiaomi.Alias:input_type -> sender.ARequest
|
||||
3, // 5: sender.Xiaomi.Topic:input_type -> sender.TopicRequest
|
||||
4, // 6: sender.Xiaomi.MultiTopic:input_type -> sender.MultiTopicRequest
|
||||
1, // 7: sender.Xiaomi.All:input_type -> sender.BaseItem
|
||||
0, // 8: sender.Xiaomi.Regid:output_type -> sender.StatusReply
|
||||
0, // 9: sender.Xiaomi.Alias:output_type -> sender.StatusReply
|
||||
0, // 10: sender.Xiaomi.Topic:output_type -> sender.StatusReply
|
||||
0, // 11: sender.Xiaomi.MultiTopic:output_type -> sender.StatusReply
|
||||
0, // 12: sender.Xiaomi.All:output_type -> sender.StatusReply
|
||||
8, // [8:13] is the sub-list for method output_type
|
||||
3, // [3:8] is the sub-list for method input_type
|
||||
3, // [3:3] is the sub-list for extension type_name
|
||||
3, // [3:3] is the sub-list for extension extendee
|
||||
0, // [0:3] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_push_xiaomi_proto_init() }
|
||||
func file_push_xiaomi_proto_init() {
|
||||
if File_push_xiaomi_proto != nil {
|
||||
return
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_push_xiaomi_proto_rawDesc), len(file_push_xiaomi_proto_rawDesc)),
|
||||
NumEnums: 0,
|
||||
NumMessages: 5,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_push_xiaomi_proto_goTypes,
|
||||
DependencyIndexes: file_push_xiaomi_proto_depIdxs,
|
||||
MessageInfos: file_push_xiaomi_proto_msgTypes,
|
||||
}.Build()
|
||||
File_push_xiaomi_proto = out.File
|
||||
file_push_xiaomi_proto_goTypes = nil
|
||||
file_push_xiaomi_proto_depIdxs = nil
|
||||
}
|
||||
@@ -1,421 +0,0 @@
|
||||
// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
|
||||
// source: push_xiaomi.proto
|
||||
|
||||
/*
|
||||
Package sender is a reverse proxy.
|
||||
|
||||
It translates gRPC into RESTful JSON APIs.
|
||||
*/
|
||||
package sender
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io"
|
||||
"net/http"
|
||||
|
||||
"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
|
||||
"github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/grpclog"
|
||||
"google.golang.org/grpc/metadata"
|
||||
"google.golang.org/grpc/status"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
// Suppress "imported and not used" errors
|
||||
var (
|
||||
_ codes.Code
|
||||
_ io.Reader
|
||||
_ status.Status
|
||||
_ = errors.New
|
||||
_ = runtime.String
|
||||
_ = utilities.NewDoubleArray
|
||||
_ = metadata.Join
|
||||
)
|
||||
|
||||
func request_Xiaomi_Regid_0(ctx context.Context, marshaler runtime.Marshaler, client XiaomiClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq ARequest
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if req.Body != nil {
|
||||
_, _ = io.Copy(io.Discard, req.Body)
|
||||
}
|
||||
msg, err := client.Regid(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
func local_request_Xiaomi_Regid_0(ctx context.Context, marshaler runtime.Marshaler, server XiaomiServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq ARequest
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
msg, err := server.Regid(ctx, &protoReq)
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
func request_Xiaomi_Alias_0(ctx context.Context, marshaler runtime.Marshaler, client XiaomiClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq ARequest
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if req.Body != nil {
|
||||
_, _ = io.Copy(io.Discard, req.Body)
|
||||
}
|
||||
msg, err := client.Alias(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
func local_request_Xiaomi_Alias_0(ctx context.Context, marshaler runtime.Marshaler, server XiaomiServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq ARequest
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
msg, err := server.Alias(ctx, &protoReq)
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
func request_Xiaomi_Topic_0(ctx context.Context, marshaler runtime.Marshaler, client XiaomiClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq TopicRequest
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if req.Body != nil {
|
||||
_, _ = io.Copy(io.Discard, req.Body)
|
||||
}
|
||||
msg, err := client.Topic(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
func local_request_Xiaomi_Topic_0(ctx context.Context, marshaler runtime.Marshaler, server XiaomiServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq TopicRequest
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
msg, err := server.Topic(ctx, &protoReq)
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
func request_Xiaomi_MultiTopic_0(ctx context.Context, marshaler runtime.Marshaler, client XiaomiClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq MultiTopicRequest
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if req.Body != nil {
|
||||
_, _ = io.Copy(io.Discard, req.Body)
|
||||
}
|
||||
msg, err := client.MultiTopic(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
func local_request_Xiaomi_MultiTopic_0(ctx context.Context, marshaler runtime.Marshaler, server XiaomiServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq MultiTopicRequest
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
msg, err := server.MultiTopic(ctx, &protoReq)
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
func request_Xiaomi_All_0(ctx context.Context, marshaler runtime.Marshaler, client XiaomiClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq BaseItem
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
if req.Body != nil {
|
||||
_, _ = io.Copy(io.Discard, req.Body)
|
||||
}
|
||||
msg, err := client.All(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
func local_request_Xiaomi_All_0(ctx context.Context, marshaler runtime.Marshaler, server XiaomiServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
||||
var (
|
||||
protoReq BaseItem
|
||||
metadata runtime.ServerMetadata
|
||||
)
|
||||
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && !errors.Is(err, io.EOF) {
|
||||
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
||||
}
|
||||
msg, err := server.All(ctx, &protoReq)
|
||||
return msg, metadata, err
|
||||
}
|
||||
|
||||
// RegisterXiaomiHandlerServer registers the http handlers for service Xiaomi to "mux".
|
||||
// UnaryRPC :call XiaomiServer directly.
|
||||
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
|
||||
// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterXiaomiHandlerFromEndpoint instead.
|
||||
// GRPC interceptors will not work for this type of registration. To use interceptors, you must use the "runtime.WithMiddlewares" option in the "runtime.NewServeMux" call.
|
||||
func RegisterXiaomiHandlerServer(ctx context.Context, mux *runtime.ServeMux, server XiaomiServer) error {
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_Regid_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
var stream runtime.ServerTransportStream
|
||||
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/sender.Xiaomi/Regid", runtime.WithHTTPPathPattern("/sender.Xiaomi/Regid"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := local_request_Xiaomi_Regid_0(annotatedContext, inboundMarshaler, server, req, pathParams)
|
||||
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_Regid_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_Alias_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
var stream runtime.ServerTransportStream
|
||||
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/sender.Xiaomi/Alias", runtime.WithHTTPPathPattern("/sender.Xiaomi/Alias"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := local_request_Xiaomi_Alias_0(annotatedContext, inboundMarshaler, server, req, pathParams)
|
||||
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_Alias_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_Topic_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
var stream runtime.ServerTransportStream
|
||||
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/sender.Xiaomi/Topic", runtime.WithHTTPPathPattern("/sender.Xiaomi/Topic"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := local_request_Xiaomi_Topic_0(annotatedContext, inboundMarshaler, server, req, pathParams)
|
||||
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_Topic_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_MultiTopic_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
var stream runtime.ServerTransportStream
|
||||
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/sender.Xiaomi/MultiTopic", runtime.WithHTTPPathPattern("/sender.Xiaomi/MultiTopic"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := local_request_Xiaomi_MultiTopic_0(annotatedContext, inboundMarshaler, server, req, pathParams)
|
||||
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_MultiTopic_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_All_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
var stream runtime.ServerTransportStream
|
||||
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/sender.Xiaomi/All", runtime.WithHTTPPathPattern("/sender.Xiaomi/All"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := local_request_Xiaomi_All_0(annotatedContext, inboundMarshaler, server, req, pathParams)
|
||||
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_All_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// RegisterXiaomiHandlerFromEndpoint is same as RegisterXiaomiHandler but
|
||||
// automatically dials to "endpoint" and closes the connection when "ctx" gets done.
|
||||
func RegisterXiaomiHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
|
||||
conn, err := grpc.NewClient(endpoint, opts...)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer func() {
|
||||
if err != nil {
|
||||
if cerr := conn.Close(); cerr != nil {
|
||||
grpclog.Errorf("Failed to close conn to %s: %v", endpoint, cerr)
|
||||
}
|
||||
return
|
||||
}
|
||||
go func() {
|
||||
<-ctx.Done()
|
||||
if cerr := conn.Close(); cerr != nil {
|
||||
grpclog.Errorf("Failed to close conn to %s: %v", endpoint, cerr)
|
||||
}
|
||||
}()
|
||||
}()
|
||||
return RegisterXiaomiHandler(ctx, mux, conn)
|
||||
}
|
||||
|
||||
// RegisterXiaomiHandler registers the http handlers for service Xiaomi to "mux".
|
||||
// The handlers forward requests to the grpc endpoint over "conn".
|
||||
func RegisterXiaomiHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
|
||||
return RegisterXiaomiHandlerClient(ctx, mux, NewXiaomiClient(conn))
|
||||
}
|
||||
|
||||
// RegisterXiaomiHandlerClient registers the http handlers for service Xiaomi
|
||||
// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "XiaomiClient".
|
||||
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "XiaomiClient"
|
||||
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
|
||||
// "XiaomiClient" to call the correct interceptors. This client ignores the HTTP middlewares.
|
||||
func RegisterXiaomiHandlerClient(ctx context.Context, mux *runtime.ServeMux, client XiaomiClient) error {
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_Regid_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/sender.Xiaomi/Regid", runtime.WithHTTPPathPattern("/sender.Xiaomi/Regid"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := request_Xiaomi_Regid_0(annotatedContext, inboundMarshaler, client, req, pathParams)
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_Regid_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_Alias_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/sender.Xiaomi/Alias", runtime.WithHTTPPathPattern("/sender.Xiaomi/Alias"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := request_Xiaomi_Alias_0(annotatedContext, inboundMarshaler, client, req, pathParams)
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_Alias_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_Topic_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/sender.Xiaomi/Topic", runtime.WithHTTPPathPattern("/sender.Xiaomi/Topic"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := request_Xiaomi_Topic_0(annotatedContext, inboundMarshaler, client, req, pathParams)
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_Topic_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_MultiTopic_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/sender.Xiaomi/MultiTopic", runtime.WithHTTPPathPattern("/sender.Xiaomi/MultiTopic"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := request_Xiaomi_MultiTopic_0(annotatedContext, inboundMarshaler, client, req, pathParams)
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_MultiTopic_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
mux.Handle(http.MethodPost, pattern_Xiaomi_All_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
||||
ctx, cancel := context.WithCancel(req.Context())
|
||||
defer cancel()
|
||||
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
||||
annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/sender.Xiaomi/All", runtime.WithHTTPPathPattern("/sender.Xiaomi/All"))
|
||||
if err != nil {
|
||||
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
resp, md, err := request_Xiaomi_All_0(annotatedContext, inboundMarshaler, client, req, pathParams)
|
||||
annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
|
||||
if err != nil {
|
||||
runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
|
||||
return
|
||||
}
|
||||
forward_Xiaomi_All_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
var (
|
||||
pattern_Xiaomi_Regid_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"sender.Xiaomi", "Regid"}, ""))
|
||||
pattern_Xiaomi_Alias_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"sender.Xiaomi", "Alias"}, ""))
|
||||
pattern_Xiaomi_Topic_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"sender.Xiaomi", "Topic"}, ""))
|
||||
pattern_Xiaomi_MultiTopic_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"sender.Xiaomi", "MultiTopic"}, ""))
|
||||
pattern_Xiaomi_All_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"sender.Xiaomi", "All"}, ""))
|
||||
)
|
||||
|
||||
var (
|
||||
forward_Xiaomi_Regid_0 = runtime.ForwardResponseMessage
|
||||
forward_Xiaomi_Alias_0 = runtime.ForwardResponseMessage
|
||||
forward_Xiaomi_Topic_0 = runtime.ForwardResponseMessage
|
||||
forward_Xiaomi_MultiTopic_0 = runtime.ForwardResponseMessage
|
||||
forward_Xiaomi_All_0 = runtime.ForwardResponseMessage
|
||||
)
|
||||
@@ -1,284 +0,0 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: push_xiaomi.proto
|
||||
|
||||
package sender
|
||||
|
||||
import (
|
||||
context "context"
|
||||
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
// Requires gRPC-Go v1.64.0 or later.
|
||||
const _ = grpc.SupportPackageIsVersion9
|
||||
|
||||
const (
|
||||
Xiaomi_Regid_FullMethodName = "/sender.Xiaomi/Regid"
|
||||
Xiaomi_Alias_FullMethodName = "/sender.Xiaomi/Alias"
|
||||
Xiaomi_Topic_FullMethodName = "/sender.Xiaomi/Topic"
|
||||
Xiaomi_MultiTopic_FullMethodName = "/sender.Xiaomi/MultiTopic"
|
||||
Xiaomi_All_FullMethodName = "/sender.Xiaomi/All"
|
||||
)
|
||||
|
||||
// XiaomiClient is the client API for Xiaomi service.
|
||||
//
|
||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||
type XiaomiClient interface {
|
||||
// 向一组regid列表或alias列表推送单条消息(这些regId可以属于不同的包名)
|
||||
Regid(ctx context.Context, in *ARequest, opts ...grpc.CallOption) (*StatusReply, error)
|
||||
// 向某个alias或一组alias列表推送某条消息(这些alias可以属于不同的包名)
|
||||
Alias(ctx context.Context, in *ARequest, opts ...grpc.CallOption) (*StatusReply, error)
|
||||
// 向某个topic推送单条消息
|
||||
Topic(ctx context.Context, in *TopicRequest, opts ...grpc.CallOption) (*StatusReply, error)
|
||||
// 向多个topic推送单条消息(可以指定一个或多个包名)
|
||||
MultiTopic(ctx context.Context, in *MultiTopicRequest, opts ...grpc.CallOption) (*StatusReply, error)
|
||||
// 向所有设备推送某条消息(可以指定一个或多个包名)
|
||||
All(ctx context.Context, in *BaseItem, opts ...grpc.CallOption) (*StatusReply, error)
|
||||
}
|
||||
|
||||
type xiaomiClient struct {
|
||||
cc grpc.ClientConnInterface
|
||||
}
|
||||
|
||||
func NewXiaomiClient(cc grpc.ClientConnInterface) XiaomiClient {
|
||||
return &xiaomiClient{cc}
|
||||
}
|
||||
|
||||
func (c *xiaomiClient) Regid(ctx context.Context, in *ARequest, opts ...grpc.CallOption) (*StatusReply, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(StatusReply)
|
||||
err := c.cc.Invoke(ctx, Xiaomi_Regid_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *xiaomiClient) Alias(ctx context.Context, in *ARequest, opts ...grpc.CallOption) (*StatusReply, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(StatusReply)
|
||||
err := c.cc.Invoke(ctx, Xiaomi_Alias_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *xiaomiClient) Topic(ctx context.Context, in *TopicRequest, opts ...grpc.CallOption) (*StatusReply, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(StatusReply)
|
||||
err := c.cc.Invoke(ctx, Xiaomi_Topic_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *xiaomiClient) MultiTopic(ctx context.Context, in *MultiTopicRequest, opts ...grpc.CallOption) (*StatusReply, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(StatusReply)
|
||||
err := c.cc.Invoke(ctx, Xiaomi_MultiTopic_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *xiaomiClient) All(ctx context.Context, in *BaseItem, opts ...grpc.CallOption) (*StatusReply, error) {
|
||||
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
|
||||
out := new(StatusReply)
|
||||
err := c.cc.Invoke(ctx, Xiaomi_All_FullMethodName, in, out, cOpts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// XiaomiServer is the server API for Xiaomi service.
|
||||
// All implementations must embed UnimplementedXiaomiServer
|
||||
// for forward compatibility.
|
||||
type XiaomiServer interface {
|
||||
// 向一组regid列表或alias列表推送单条消息(这些regId可以属于不同的包名)
|
||||
Regid(context.Context, *ARequest) (*StatusReply, error)
|
||||
// 向某个alias或一组alias列表推送某条消息(这些alias可以属于不同的包名)
|
||||
Alias(context.Context, *ARequest) (*StatusReply, error)
|
||||
// 向某个topic推送单条消息
|
||||
Topic(context.Context, *TopicRequest) (*StatusReply, error)
|
||||
// 向多个topic推送单条消息(可以指定一个或多个包名)
|
||||
MultiTopic(context.Context, *MultiTopicRequest) (*StatusReply, error)
|
||||
// 向所有设备推送某条消息(可以指定一个或多个包名)
|
||||
All(context.Context, *BaseItem) (*StatusReply, error)
|
||||
mustEmbedUnimplementedXiaomiServer()
|
||||
}
|
||||
|
||||
// UnimplementedXiaomiServer must be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
// pointer dereference when methods are called.
|
||||
type UnimplementedXiaomiServer struct{}
|
||||
|
||||
func (UnimplementedXiaomiServer) Regid(context.Context, *ARequest) (*StatusReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Regid not implemented")
|
||||
}
|
||||
func (UnimplementedXiaomiServer) Alias(context.Context, *ARequest) (*StatusReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Alias not implemented")
|
||||
}
|
||||
func (UnimplementedXiaomiServer) Topic(context.Context, *TopicRequest) (*StatusReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Topic not implemented")
|
||||
}
|
||||
func (UnimplementedXiaomiServer) MultiTopic(context.Context, *MultiTopicRequest) (*StatusReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method MultiTopic not implemented")
|
||||
}
|
||||
func (UnimplementedXiaomiServer) All(context.Context, *BaseItem) (*StatusReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method All not implemented")
|
||||
}
|
||||
func (UnimplementedXiaomiServer) mustEmbedUnimplementedXiaomiServer() {}
|
||||
func (UnimplementedXiaomiServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeXiaomiServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to XiaomiServer will
|
||||
// result in compilation errors.
|
||||
type UnsafeXiaomiServer interface {
|
||||
mustEmbedUnimplementedXiaomiServer()
|
||||
}
|
||||
|
||||
func RegisterXiaomiServer(s grpc.ServiceRegistrar, srv XiaomiServer) {
|
||||
// If the following call pancis, it indicates UnimplementedXiaomiServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
|
||||
t.testEmbeddedByValue()
|
||||
}
|
||||
s.RegisterService(&Xiaomi_ServiceDesc, srv)
|
||||
}
|
||||
|
||||
func _Xiaomi_Regid_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ARequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(XiaomiServer).Regid(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Xiaomi_Regid_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(XiaomiServer).Regid(ctx, req.(*ARequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Xiaomi_Alias_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ARequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(XiaomiServer).Alias(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Xiaomi_Alias_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(XiaomiServer).Alias(ctx, req.(*ARequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Xiaomi_Topic_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(TopicRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(XiaomiServer).Topic(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Xiaomi_Topic_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(XiaomiServer).Topic(ctx, req.(*TopicRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Xiaomi_MultiTopic_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(MultiTopicRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(XiaomiServer).MultiTopic(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Xiaomi_MultiTopic_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(XiaomiServer).MultiTopic(ctx, req.(*MultiTopicRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _Xiaomi_All_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(BaseItem)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(XiaomiServer).All(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: Xiaomi_All_FullMethodName,
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(XiaomiServer).All(ctx, req.(*BaseItem))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// Xiaomi_ServiceDesc is the grpc.ServiceDesc for Xiaomi service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
var Xiaomi_ServiceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "sender.Xiaomi",
|
||||
HandlerType: (*XiaomiServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "Regid",
|
||||
Handler: _Xiaomi_Regid_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Alias",
|
||||
Handler: _Xiaomi_Alias_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "Topic",
|
||||
Handler: _Xiaomi_Topic_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "MultiTopic",
|
||||
Handler: _Xiaomi_MultiTopic_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "All",
|
||||
Handler: _Xiaomi_All_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "push_xiaomi.proto",
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.36.8
|
||||
// protoc (unknown)
|
||||
// source: sms.proto
|
||||
// protoc-gen-go v1.36.11
|
||||
// protoc v7.35.0
|
||||
// source: module/base/sender/proto/sms.proto
|
||||
|
||||
package sender
|
||||
|
||||
@@ -36,7 +36,7 @@ type SmsSendRequest struct {
|
||||
|
||||
func (x *SmsSendRequest) Reset() {
|
||||
*x = SmsSendRequest{}
|
||||
mi := &file_sms_proto_msgTypes[0]
|
||||
mi := &file_module_base_sender_proto_sms_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@@ -48,7 +48,7 @@ func (x *SmsSendRequest) String() string {
|
||||
func (*SmsSendRequest) ProtoMessage() {}
|
||||
|
||||
func (x *SmsSendRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_sms_proto_msgTypes[0]
|
||||
mi := &file_module_base_sender_proto_sms_proto_msgTypes[0]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@@ -61,7 +61,7 @@ func (x *SmsSendRequest) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use SmsSendRequest.ProtoReflect.Descriptor instead.
|
||||
func (*SmsSendRequest) Descriptor() ([]byte, []int) {
|
||||
return file_sms_proto_rawDescGZIP(), []int{0}
|
||||
return file_module_base_sender_proto_sms_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *SmsSendRequest) GetProvider() string {
|
||||
@@ -115,7 +115,7 @@ type SmsReply struct {
|
||||
|
||||
func (x *SmsReply) Reset() {
|
||||
*x = SmsReply{}
|
||||
mi := &file_sms_proto_msgTypes[1]
|
||||
mi := &file_module_base_sender_proto_sms_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@@ -127,7 +127,7 @@ func (x *SmsReply) String() string {
|
||||
func (*SmsReply) ProtoMessage() {}
|
||||
|
||||
func (x *SmsReply) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_sms_proto_msgTypes[1]
|
||||
mi := &file_module_base_sender_proto_sms_proto_msgTypes[1]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@@ -140,7 +140,7 @@ func (x *SmsReply) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use SmsReply.ProtoReflect.Descriptor instead.
|
||||
func (*SmsReply) Descriptor() ([]byte, []int) {
|
||||
return file_sms_proto_rawDescGZIP(), []int{1}
|
||||
return file_module_base_sender_proto_sms_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *SmsReply) GetReply() string {
|
||||
@@ -160,7 +160,7 @@ type SmsVerifyRequest struct {
|
||||
|
||||
func (x *SmsVerifyRequest) Reset() {
|
||||
*x = SmsVerifyRequest{}
|
||||
mi := &file_sms_proto_msgTypes[2]
|
||||
mi := &file_module_base_sender_proto_sms_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
@@ -172,7 +172,7 @@ func (x *SmsVerifyRequest) String() string {
|
||||
func (*SmsVerifyRequest) ProtoMessage() {}
|
||||
|
||||
func (x *SmsVerifyRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_sms_proto_msgTypes[2]
|
||||
mi := &file_module_base_sender_proto_sms_proto_msgTypes[2]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
@@ -185,7 +185,7 @@ func (x *SmsVerifyRequest) ProtoReflect() protoreflect.Message {
|
||||
|
||||
// Deprecated: Use SmsVerifyRequest.ProtoReflect.Descriptor instead.
|
||||
func (*SmsVerifyRequest) Descriptor() ([]byte, []int) {
|
||||
return file_sms_proto_rawDescGZIP(), []int{2}
|
||||
return file_module_base_sender_proto_sms_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *SmsVerifyRequest) GetPhone() string {
|
||||
@@ -202,11 +202,11 @@ func (x *SmsVerifyRequest) GetCode() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
var File_sms_proto protoreflect.FileDescriptor
|
||||
var File_module_base_sender_proto_sms_proto protoreflect.FileDescriptor
|
||||
|
||||
const file_sms_proto_rawDesc = "" +
|
||||
const file_module_base_sender_proto_sms_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"\x15base/sender/sms.proto\x12\x06sender\"\xa7\x02\n" +
|
||||
"\"module/base/sender/proto/sms.proto\x12\x06sender\"\xa7\x02\n" +
|
||||
"\x0eSmsSendRequest\x12\x1a\n" +
|
||||
"\bprovider\x18\x01 \x01(\tR\bprovider\x12\x1b\n" +
|
||||
"\tsign_name\x18\x02 \x01(\tR\bsignName\x12#\n" +
|
||||
@@ -224,29 +224,28 @@ const file_sms_proto_rawDesc = "" +
|
||||
"\x04code\x18\x02 \x01(\tR\x04code2m\n" +
|
||||
"\x03Sms\x120\n" +
|
||||
"\x04Send\x12\x16.sender.SmsSendRequest\x1a\x10.sender.SmsReply\x124\n" +
|
||||
"\x06Verify\x12\x18.sender.SmsVerifyRequest\x1a\x10.sender.SmsReplyB\n" +
|
||||
"Z\b.;senderb\x06proto3"
|
||||
"\x06Verify\x12\x18.sender.SmsVerifyRequest\x1a\x10.sender.SmsReplyB'Z%bsm/full/module/base/sender/pb;senderb\x06proto3"
|
||||
|
||||
var (
|
||||
file_sms_proto_rawDescOnce sync.Once
|
||||
file_sms_proto_rawDescData []byte
|
||||
file_module_base_sender_proto_sms_proto_rawDescOnce sync.Once
|
||||
file_module_base_sender_proto_sms_proto_rawDescData []byte
|
||||
)
|
||||
|
||||
func file_sms_proto_rawDescGZIP() []byte {
|
||||
file_sms_proto_rawDescOnce.Do(func() {
|
||||
file_sms_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_sms_proto_rawDesc), len(file_sms_proto_rawDesc)))
|
||||
func file_module_base_sender_proto_sms_proto_rawDescGZIP() []byte {
|
||||
file_module_base_sender_proto_sms_proto_rawDescOnce.Do(func() {
|
||||
file_module_base_sender_proto_sms_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_module_base_sender_proto_sms_proto_rawDesc), len(file_module_base_sender_proto_sms_proto_rawDesc)))
|
||||
})
|
||||
return file_sms_proto_rawDescData
|
||||
return file_module_base_sender_proto_sms_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_sms_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_sms_proto_goTypes = []any{
|
||||
var file_module_base_sender_proto_sms_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
|
||||
var file_module_base_sender_proto_sms_proto_goTypes = []any{
|
||||
(*SmsSendRequest)(nil), // 0: sender.SmsSendRequest
|
||||
(*SmsReply)(nil), // 1: sender.SmsReply
|
||||
(*SmsVerifyRequest)(nil), // 2: sender.SmsVerifyRequest
|
||||
nil, // 3: sender.SmsSendRequest.ParamtersEntry
|
||||
}
|
||||
var file_sms_proto_depIdxs = []int32{
|
||||
var file_module_base_sender_proto_sms_proto_depIdxs = []int32{
|
||||
3, // 0: sender.SmsSendRequest.paramters:type_name -> sender.SmsSendRequest.ParamtersEntry
|
||||
0, // 1: sender.Sms.Send:input_type -> sender.SmsSendRequest
|
||||
2, // 2: sender.Sms.Verify:input_type -> sender.SmsVerifyRequest
|
||||
@@ -259,26 +258,26 @@ var file_sms_proto_depIdxs = []int32{
|
||||
0, // [0:1] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_sms_proto_init() }
|
||||
func file_sms_proto_init() {
|
||||
if File_sms_proto != nil {
|
||||
func init() { file_module_base_sender_proto_sms_proto_init() }
|
||||
func file_module_base_sender_proto_sms_proto_init() {
|
||||
if File_module_base_sender_proto_sms_proto != nil {
|
||||
return
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_sms_proto_rawDesc), len(file_sms_proto_rawDesc)),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_module_base_sender_proto_sms_proto_rawDesc), len(file_module_base_sender_proto_sms_proto_rawDesc)),
|
||||
NumEnums: 0,
|
||||
NumMessages: 4,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_sms_proto_goTypes,
|
||||
DependencyIndexes: file_sms_proto_depIdxs,
|
||||
MessageInfos: file_sms_proto_msgTypes,
|
||||
GoTypes: file_module_base_sender_proto_sms_proto_goTypes,
|
||||
DependencyIndexes: file_module_base_sender_proto_sms_proto_depIdxs,
|
||||
MessageInfos: file_module_base_sender_proto_sms_proto_msgTypes,
|
||||
}.Build()
|
||||
File_sms_proto = out.File
|
||||
file_sms_proto_goTypes = nil
|
||||
file_sms_proto_depIdxs = nil
|
||||
File_module_base_sender_proto_sms_proto = out.File
|
||||
file_module_base_sender_proto_sms_proto_goTypes = nil
|
||||
file_module_base_sender_proto_sms_proto_depIdxs = nil
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
|
||||
// source: sms.proto
|
||||
// source: module/base/sender/proto/sms.proto
|
||||
|
||||
/*
|
||||
Package sender is a reverse proxy.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||
// versions:
|
||||
// - protoc-gen-go-grpc v1.5.1
|
||||
// - protoc (unknown)
|
||||
// source: sms.proto
|
||||
// - protoc-gen-go-grpc v1.6.2
|
||||
// - protoc v7.35.0
|
||||
// source: module/base/sender/proto/sms.proto
|
||||
|
||||
package sender
|
||||
|
||||
@@ -62,17 +62,16 @@ func (c *smsClient) Verify(ctx context.Context, in *SmsVerifyRequest, opts ...gr
|
||||
}
|
||||
|
||||
// SmsServer is the server API for Sms service.
|
||||
// All implementations must embed UnimplementedSmsServer
|
||||
// All implementations should embed UnimplementedSmsServer
|
||||
// for forward compatibility.
|
||||
//
|
||||
// sms method
|
||||
type SmsServer interface {
|
||||
Send(context.Context, *SmsSendRequest) (*SmsReply, error)
|
||||
Verify(context.Context, *SmsVerifyRequest) (*SmsReply, error)
|
||||
mustEmbedUnimplementedSmsServer()
|
||||
}
|
||||
|
||||
// UnimplementedSmsServer must be embedded to have
|
||||
// UnimplementedSmsServer should be embedded to have
|
||||
// forward compatible implementations.
|
||||
//
|
||||
// NOTE: this should be embedded by value instead of pointer to avoid a nil
|
||||
@@ -80,13 +79,12 @@ type SmsServer interface {
|
||||
type UnimplementedSmsServer struct{}
|
||||
|
||||
func (UnimplementedSmsServer) Send(context.Context, *SmsSendRequest) (*SmsReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Send not implemented")
|
||||
return nil, status.Error(codes.Unimplemented, "method Send not implemented")
|
||||
}
|
||||
func (UnimplementedSmsServer) Verify(context.Context, *SmsVerifyRequest) (*SmsReply, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Verify not implemented")
|
||||
return nil, status.Error(codes.Unimplemented, "method Verify not implemented")
|
||||
}
|
||||
func (UnimplementedSmsServer) mustEmbedUnimplementedSmsServer() {}
|
||||
func (UnimplementedSmsServer) testEmbeddedByValue() {}
|
||||
func (UnimplementedSmsServer) testEmbeddedByValue() {}
|
||||
|
||||
// UnsafeSmsServer may be embedded to opt out of forward compatibility for this service.
|
||||
// Use of this interface is not recommended, as added methods to SmsServer will
|
||||
@@ -96,7 +94,7 @@ type UnsafeSmsServer interface {
|
||||
}
|
||||
|
||||
func RegisterSmsServer(s grpc.ServiceRegistrar, srv SmsServer) {
|
||||
// If the following call pancis, it indicates UnimplementedSmsServer was
|
||||
// If the following call panics, it indicates UnimplementedSmsServer was
|
||||
// embedded by pointer and is nil. This will cause panics if an
|
||||
// unimplemented method is ever invoked, so we test this at initialization
|
||||
// time to prevent it from happening at runtime later due to I/O.
|
||||
@@ -159,5 +157,5 @@ var Sms_ServiceDesc = grpc.ServiceDesc{
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "sms.proto",
|
||||
Metadata: "module/base/sender/proto/sms.proto",
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
package sender;
|
||||
option go_package=".;sender";
|
||||
option go_package = "bsm/full/module/base/sender/pb;sender";
|
||||
|
||||
// Mail method
|
||||
service Mail {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
syntax = "proto3";
|
||||
package sender ;
|
||||
option go_package=".;sender";
|
||||
option go_package = "bsm/full/module/base/sender/pb;sender";
|
||||
|
||||
// sms method
|
||||
service Sms {
|
||||
|
||||
Reference in New Issue
Block a user