From 4b3e40afab2e2b419e3ee0ed0e220278868d6a76 Mon Sep 17 00:00:00 2001 From: fish Date: Sat, 28 Mar 2026 19:40:04 +0800 Subject: [PATCH] reinit --- backend/Makefile | 36 -- backend/README.md | 118 ----- backend/common/common.pb.go | 292 ----------- backend/docker-compose.dev.yml | 86 ---- backend/docker-compose.yml | 82 ---- backend/gateway/Dockerfile | 21 - backend/gateway/go.mod | 35 -- backend/gateway/main.go | 155 ------ backend/nginx/nginx.conf | 47 -- backend/scripts/dev-start.sh | 49 -- backend/scripts/gen-proto.sh | 16 - backend/services/user-svc/Dockerfile | 21 - backend/services/user-svc/generate.sh | 9 - backend/services/user-svc/go.mod | 40 -- backend/services/user-svc/main.go | 156 ------ backend/services/user-svc/user.proto | 64 --- backend/shared/errors/errors.go | 46 -- backend/shared/go.mod | 44 -- backend/shared/logger/logger.go | 33 -- backend/shared/postgres/postgres.go | 32 -- backend/shared/proto/common.proto | 24 - backend/shared/redis/redis.go | 32 -- backend/user/user.pb.go | 682 -------------------------- backend/user/user_grpc.pb.go | 273 ----------- 24 files changed, 2393 deletions(-) delete mode 100644 backend/Makefile delete mode 100644 backend/README.md delete mode 100644 backend/common/common.pb.go delete mode 100644 backend/docker-compose.dev.yml delete mode 100644 backend/docker-compose.yml delete mode 100644 backend/gateway/Dockerfile delete mode 100644 backend/gateway/go.mod delete mode 100644 backend/gateway/main.go delete mode 100644 backend/nginx/nginx.conf delete mode 100755 backend/scripts/dev-start.sh delete mode 100755 backend/scripts/gen-proto.sh delete mode 100644 backend/services/user-svc/Dockerfile delete mode 100644 backend/services/user-svc/generate.sh delete mode 100644 backend/services/user-svc/go.mod delete mode 100644 backend/services/user-svc/main.go delete mode 100644 backend/services/user-svc/user.proto delete mode 100644 backend/shared/errors/errors.go delete mode 100644 backend/shared/go.mod delete mode 100644 backend/shared/logger/logger.go delete mode 100644 backend/shared/postgres/postgres.go delete mode 100644 backend/shared/proto/common.proto delete mode 100644 backend/shared/redis/redis.go delete mode 100644 backend/user/user.pb.go delete mode 100644 backend/user/user_grpc.pb.go diff --git a/backend/Makefile b/backend/Makefile deleted file mode 100644 index 7f6e973..0000000 --- a/backend/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# Makefile for backend services - -.PHONY: dev build proto test down logs clean - -dev: - @echo "Starting development environment..." - @docker-compose -f docker-compose.dev.yml up -d --build - @echo "Development environment started successfully!" - @docker-compose -f docker-compose.dev.yml ps - -build: - @echo "Building production environment..." - @docker-compose build - -proto: - @echo "Skipping proto compilation as per configuration..." - -test: - @echo "Running tests..." - @docker-compose -f docker-compose.dev.yml run --rm asset-helper-user-svc sh -c "go test ./..." - -down: - @echo "Stopping all services..." - @docker-compose down - @docker-compose -f docker-compose.dev.yml down - -logs: - @echo "Showing logs for development environment..." - @docker-compose -f docker-compose.dev.yml logs -f - -clean: - @echo "Cleaning up..." - @docker-compose down -v - @docker-compose -f docker-compose.dev.yml down -v - @rm -rf services/user-svc/user/* shared/proto/common/* - @echo "Cleanup completed!" diff --git a/backend/README.md b/backend/README.md deleted file mode 100644 index c96d698..0000000 --- a/backend/README.md +++ /dev/null @@ -1,118 +0,0 @@ -# Backend Services - -## 项目结构 - -``` -backend/ -├── nginx/ # Nginx 配置 -├── gateway/ # WebSocket 网关服务 -├── services/ -│ └── user-svc/ # 用户微服务 -├── shared/ # 公共工具包 -│ ├── logger/ # 日志工具 -│ ├── errors/ # 错误处理 -│ ├── postgres/ # PostgreSQL 数据库 -│ ├── redis/ # Redis 缓存 -│ └── proto/ # 公共 proto 定义 -├── scripts/ # 自动化脚本 -├── docker-compose.yml # 生产环境配置 -├── docker-compose.dev.yml # 开发环境配置 -├── Makefile # 命令封装 -└── README.md # 使用说明 -``` - -## 环境要求 - -- Docker -- Docker Compose - -## 快速开始 - -### 开发环境 - -1. 一键启动开发环境: - -```bash -make dev-start -``` - -这会自动: -- 生成 proto 代码 -- 构建开发环境镜像 -- 启动所有服务 -- 显示服务状态 - -2. 查看服务状态: - -```bash -make dev-status -``` - -3. 查看服务日志: - -```bash -make dev-logs -``` - -4. 停止开发环境: - -```bash -make dev-down -``` - -### 生产环境 - -1. 构建生产环境: - -```bash -make build -``` - -2. 启动生产环境: - -```bash -make up -``` - -3. 停止生产环境: - -```bash -make down -``` - -## 其他命令 - -### 生成 proto 代码 - -```bash -make gen-proto -``` - -### 运行测试 - -```bash -make test -``` - -## 服务端口 - -- Nginx: 80 -- Gateway: 8080 -- User Service: 50051 -- PostgreSQL: 5432 -- Redis: 6379 - -## 技术栈 - -- Go 1.26.1 -- gRPC -- PostgreSQL -- Redis -- Nginx -- Docker - -## 注意事项 - -- 所有服务都在 Docker 容器中运行,无宿主机依赖 -- 服务之间通过内部网络通信 -- 数据持久化使用 Docker 卷 diff --git a/backend/common/common.pb.go b/backend/common/common.pb.go deleted file mode 100644 index d492d4a..0000000 --- a/backend/common/common.pb.go +++ /dev/null @@ -1,292 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.36.11 -// protoc v6.31.1 -// source: shared/proto/common.proto - -package common - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" - unsafe "unsafe" -) - -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 Empty struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *Empty) Reset() { - *x = Empty{} - mi := &file_shared_proto_common_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Empty) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Empty) ProtoMessage() {} - -func (x *Empty) ProtoReflect() protoreflect.Message { - mi := &file_shared_proto_common_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 Empty.ProtoReflect.Descriptor instead. -func (*Empty) Descriptor() ([]byte, []int) { - return file_shared_proto_common_proto_rawDescGZIP(), []int{0} -} - -type Status struct { - state protoimpl.MessageState `protogen:"open.v1"` - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` - Code string `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *Status) Reset() { - *x = Status{} - mi := &file_shared_proto_common_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Status) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Status) ProtoMessage() {} - -func (x *Status) ProtoReflect() protoreflect.Message { - mi := &file_shared_proto_common_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 Status.ProtoReflect.Descriptor instead. -func (*Status) Descriptor() ([]byte, []int) { - return file_shared_proto_common_proto_rawDescGZIP(), []int{1} -} - -func (x *Status) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -func (x *Status) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *Status) GetCode() string { - if x != nil { - return x.Code - } - return "" -} - -type Pagination struct { - state protoimpl.MessageState `protogen:"open.v1"` - Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` - PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` - Total int32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *Pagination) Reset() { - *x = Pagination{} - mi := &file_shared_proto_common_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Pagination) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Pagination) ProtoMessage() {} - -func (x *Pagination) ProtoReflect() protoreflect.Message { - mi := &file_shared_proto_common_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 Pagination.ProtoReflect.Descriptor instead. -func (*Pagination) Descriptor() ([]byte, []int) { - return file_shared_proto_common_proto_rawDescGZIP(), []int{2} -} - -func (x *Pagination) GetPage() int32 { - if x != nil { - return x.Page - } - return 0 -} - -func (x *Pagination) GetPageSize() int32 { - if x != nil { - return x.PageSize - } - return 0 -} - -func (x *Pagination) GetTotal() int32 { - if x != nil { - return x.Total - } - return 0 -} - -type IdRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *IdRequest) Reset() { - *x = IdRequest{} - mi := &file_shared_proto_common_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *IdRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IdRequest) ProtoMessage() {} - -func (x *IdRequest) ProtoReflect() protoreflect.Message { - mi := &file_shared_proto_common_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 IdRequest.ProtoReflect.Descriptor instead. -func (*IdRequest) Descriptor() ([]byte, []int) { - return file_shared_proto_common_proto_rawDescGZIP(), []int{3} -} - -func (x *IdRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -var File_shared_proto_common_proto protoreflect.FileDescriptor - -const file_shared_proto_common_proto_rawDesc = "" + - "\n" + - "\x19shared/proto/common.proto\x12\x06common\"\a\n" + - "\x05Empty\"P\n" + - "\x06Status\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess\x12\x18\n" + - "\amessage\x18\x02 \x01(\tR\amessage\x12\x12\n" + - "\x04code\x18\x03 \x01(\tR\x04code\"S\n" + - "\n" + - "Pagination\x12\x12\n" + - "\x04page\x18\x01 \x01(\x05R\x04page\x12\x1b\n" + - "\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x14\n" + - "\x05total\x18\x03 \x01(\x05R\x05total\"\x1b\n" + - "\tIdRequest\x12\x0e\n" + - "\x02id\x18\x01 \x01(\tR\x02idB\n" + - "Z\b./commonb\x06proto3" - -var ( - file_shared_proto_common_proto_rawDescOnce sync.Once - file_shared_proto_common_proto_rawDescData []byte -) - -func file_shared_proto_common_proto_rawDescGZIP() []byte { - file_shared_proto_common_proto_rawDescOnce.Do(func() { - file_shared_proto_common_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_shared_proto_common_proto_rawDesc), len(file_shared_proto_common_proto_rawDesc))) - }) - return file_shared_proto_common_proto_rawDescData -} - -var file_shared_proto_common_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_shared_proto_common_proto_goTypes = []any{ - (*Empty)(nil), // 0: common.Empty - (*Status)(nil), // 1: common.Status - (*Pagination)(nil), // 2: common.Pagination - (*IdRequest)(nil), // 3: common.IdRequest -} -var file_shared_proto_common_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_shared_proto_common_proto_init() } -func file_shared_proto_common_proto_init() { - if File_shared_proto_common_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_shared_proto_common_proto_rawDesc), len(file_shared_proto_common_proto_rawDesc)), - NumEnums: 0, - NumMessages: 4, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_shared_proto_common_proto_goTypes, - DependencyIndexes: file_shared_proto_common_proto_depIdxs, - MessageInfos: file_shared_proto_common_proto_msgTypes, - }.Build() - File_shared_proto_common_proto = out.File - file_shared_proto_common_proto_goTypes = nil - file_shared_proto_common_proto_depIdxs = nil -} diff --git a/backend/docker-compose.dev.yml b/backend/docker-compose.dev.yml deleted file mode 100644 index 6b82889..0000000 --- a/backend/docker-compose.dev.yml +++ /dev/null @@ -1,86 +0,0 @@ -version: '3.8' - -services: - asset-helper-nginx: - image: nginx:1.25-alpine - container_name: asset-helper-nginx-dev - ports: - - "80:80" - volumes: - - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - depends_on: - - asset-helper-gateway - networks: - - asset-helper-network - - asset-helper-gateway: - build: - context: ./gateway - dockerfile: Dockerfile - image: asset-helper-gateway - container_name: asset-helper-gateway-dev - ports: - - "8080:8080" - environment: - - GO_ENV=development - - REDIS_ADDR=asset-helper-redis:6379 - volumes: - - ./gateway:/app - depends_on: - - asset-helper-redis - networks: - - asset-helper-network - - asset-helper-user-svc: - build: - context: ./services/user-svc - dockerfile: Dockerfile - image: asset-helper-user-svc - container_name: asset-helper-user-svc-dev - ports: - - "50051:50051" - environment: - - GO_ENV=development - - POSTGRES_HOST=asset-helper-postgres - - POSTGRES_PORT=5432 - - POSTGRES_USER=admin - - POSTGRES_PASSWORD=password - - POSTGRES_DB=userdb - volumes: - - ./services/user-svc:/app - depends_on: - - asset-helper-postgres - networks: - - asset-helper-network - - asset-helper-postgres: - image: postgres:18.3-alpine3.23 - container_name: asset-helper-postgres-dev - ports: - - "5432:5432" - environment: - - POSTGRES_USER=admin - - POSTGRES_PASSWORD=password - - POSTGRES_DB=userdb - volumes: - - asset-helper-postgres-data:/var/lib/postgresql/data - networks: - - asset-helper-network - - asset-helper-redis: - image: redis:8.6.2-alpine - container_name: asset-helper-redis-dev - ports: - - "6379:6379" - volumes: - - asset-helper-redis-data:/data - networks: - - asset-helper-network - -volumes: - asset-helper-postgres-data: - asset-helper-redis-data: - -networks: - asset-helper-network: - driver: bridge diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml deleted file mode 100644 index a4736ea..0000000 --- a/backend/docker-compose.yml +++ /dev/null @@ -1,82 +0,0 @@ -version: '3.8' - -services: - asset-helper-nginx: - image: nginx:1.25-alpine - container_name: asset-helper-nginx - ports: - - "80:80" - volumes: - - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro - depends_on: - - asset-helper-gateway - networks: - - asset-helper-network - - asset-helper-gateway: - build: - context: ./gateway - dockerfile: Dockerfile - image: asset-helper-gateway - container_name: asset-helper-gateway - ports: - - "8080:8080" - environment: - - GO_ENV=production - - REDIS_ADDR=asset-helper-redis:6379 - depends_on: - - asset-helper-redis - networks: - - asset-helper-network - - asset-helper-user-svc: - build: - context: ./services/user-svc - dockerfile: Dockerfile - image: asset-helper-user-svc - container_name: asset-helper-user-svc - ports: - - "50051:50051" - environment: - - GO_ENV=production - - POSTGRES_HOST=asset-helper-postgres - - POSTGRES_PORT=5432 - - POSTGRES_USER=admin - - POSTGRES_PASSWORD=password - - POSTGRES_DB=userdb - depends_on: - - asset-helper-postgres - networks: - - asset-helper-network - - asset-helper-postgres: - image: postgres:18.3-alpine3.23 - container_name: asset-helper-postgres - ports: - - "5432:5432" - environment: - - POSTGRES_USER=admin - - POSTGRES_PASSWORD=password - - POSTGRES_DB=userdb - volumes: - - asset-helper-postgres-data:/var/lib/postgresql/data - networks: - - asset-helper-network - - asset-helper-redis: - image: redis:8.6.2-alpine - container_name: asset-helper-redis - ports: - - "6379:6379" - volumes: - - asset-helper-redis-data:/data - networks: - - asset-helper-network - -volumes: - asset-helper-postgres-data: - asset-helper-redis-data: - -networks: - asset-helper-network: - driver: bridge diff --git a/backend/gateway/Dockerfile b/backend/gateway/Dockerfile deleted file mode 100644 index e380b4f..0000000 --- a/backend/gateway/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM golang:1.26.1-alpine3.23 AS builder - -WORKDIR /app - -ENV GOPROXY=https://goproxy.cn,direct - -COPY go.mod ./ -COPY main.go ./ - -RUN go mod download -RUN go build -o gateway main.go - -FROM alpine:3.23 - -WORKDIR /app - -COPY --from=builder /app/gateway . - -EXPOSE 8080 - -CMD ["./gateway"] \ No newline at end of file diff --git a/backend/gateway/go.mod b/backend/gateway/go.mod deleted file mode 100644 index 7df6acb..0000000 --- a/backend/gateway/go.mod +++ /dev/null @@ -1,35 +0,0 @@ -module gateway - -go 1.26 - -require ( - github.com/gin-gonic/gin v1.9.1 - github.com/gorilla/websocket v1.5.1 -) - -require ( - github.com/bytedance/sonic v1.9.1 // indirect - github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect - github.com/gin-contrib/sse v0.1.0 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.14.0 // indirect - github.com/goccy/go-json v0.10.2 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect - github.com/leodido/go-urn v1.2.4 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect - github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/ugorji/go/codec v1.2.11 // indirect - golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.9.0 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect - gopkg.in/yaml.v3 v3 // indirect -) \ No newline at end of file diff --git a/backend/gateway/main.go b/backend/gateway/main.go deleted file mode 100644 index 3c7b3c1..0000000 --- a/backend/gateway/main.go +++ /dev/null @@ -1,155 +0,0 @@ -package main - -import ( - "log" - "net/http" - - "github.com/gin-gonic/gin" - "github.com/gorilla/websocket" -) - -var upgrader = websocket.Upgrader{ - ReadBufferSize: 1024, - WriteBufferSize: 1024, - CheckOrigin: func(r *http.Request) bool { - return true - }, -} - -type Hub struct { - clients map[*Client]bool - broadcast chan []byte - register chan *Client - unregister chan *Client -} - -type Client struct { - hub *Hub - conn *websocket.Conn - send chan []byte -} - -type Message struct { - Type string `json:"type"` - Content string `json:"content"` - Sender string `json:"sender"` -} - -func newHub() *Hub { - return &Hub{ - broadcast: make(chan []byte), - register: make(chan *Client), - unregister: make(chan *Client), - clients: make(map[*Client]bool), - } -} - -func (h *Hub) run() { - for { - select { - case client := <-h.register: - h.clients[client] = true - case client := <-h.unregister: - if _, ok := h.clients[client]; ok { - delete(h.clients, client) - close(client.send) - } - case message := <-h.broadcast: - for client := range h.clients { - select { - case client.send <- message: - default: - close(client.send) - delete(h.clients, client) - } - } - } - } -} - -func (c *Client) readPump() { - defer func() { - c.hub.unregister <- c - c.conn.Close() - }() - - for { - _, message, err := c.conn.ReadMessage() - if err != nil { - if websocket.IsUnexpectedCloseError(err, websocket.CloseGoingAway, websocket.CloseAbnormalClosure) { - log.Printf("error: %v", err) - } - break - } - c.hub.broadcast <- message - } -} - -func (c *Client) writePump() { - defer func() { - c.conn.Close() - }() - - for { - message, ok := <-c.send - if !ok { - c.conn.WriteMessage(websocket.CloseMessage, []byte{}) - return - } - - w, err := c.conn.NextWriter(websocket.TextMessage) - if err != nil { - return - } - w.Write(message) - - n := len(c.send) - for i := 0; i < n; i++ { - w.Write([]byte("\n")) - w.Write(<-c.send) - } - - if err := w.Close(); err != nil { - return - } - } -} - -func handleWebSocket(hub *Hub) gin.HandlerFunc { - return func(c *gin.Context) { - conn, err := upgrader.Upgrade(c.Writer, c.Request, nil) - if err != nil { - log.Println(err) - return - } - - client := &Client{ - hub: hub, - conn: conn, - send: make(chan []byte, 256), - } - client.hub.register <- client - - go client.writePump() - go client.readPump() - } -} - -func main() { - hub := newHub() - go hub.run() - - r := gin.Default() - - r.GET("/ws", handleWebSocket(hub)) - r.GET("/health", func(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{ - "status": "ok", - }) - }) - - log.Println("Gateway server starting on port 8080...") - if err := r.Run(":8080"); err != nil { - log.Fatalf("Failed to start server: %v", err) - } -} \ No newline at end of file diff --git a/backend/nginx/nginx.conf b/backend/nginx/nginx.conf deleted file mode 100644 index 3ebc0c3..0000000 --- a/backend/nginx/nginx.conf +++ /dev/null @@ -1,47 +0,0 @@ -events { - worker_connections 1024; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - error_log /var/log/nginx/error.log warn; - - sendfile on; - tcp_nopush on; - tcp_nodelay on; - keepalive_timeout 65; - - upstream gateway { - server asset-helper-gateway:8080; - } - - server { - listen 80; - server_name localhost; - - location / { - proxy_pass http://gateway; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_cache_bypass $http_upgrade; - } - - location /health { - stub_status on; - access_log off; - allow all; - } - } -} \ No newline at end of file diff --git a/backend/scripts/dev-start.sh b/backend/scripts/dev-start.sh deleted file mode 100755 index ae714cd..0000000 --- a/backend/scripts/dev-start.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash - -# 一键开发环境启动脚本 - -# 定义颜色 -GREEN="\033[0;32m" -YELLOW="\033[1;33m" -RED="\033[0;31m" -NC="\033[0m" # No Color - -echo -e "${GREEN}Starting development environment setup...${NC}" - -# 检查 Docker 是否安装 -if ! command -v docker &> /dev/null; then - echo -e "${RED}Docker is not installed! Please install Docker first.${NC}" - exit 1 -fi - -# 检查 Docker Compose 是否安装 -if ! command -v docker-compose &> /dev/null; then - echo -e "${RED}Docker Compose is not installed! Please install Docker Compose first.${NC}" - exit 1 -fi - -# 构建开发环境 -echo -e "${YELLOW}Building development environment...${NC}" -if docker-compose -f docker-compose.dev.yml build; then - echo -e "${GREEN}Build completed successfully!${NC}" -else - echo -e "${RED}Build failed!${NC}" - exit 1 -fi - -# 启动开发环境 -echo -e "${YELLOW}Starting development environment...${NC}" -if docker-compose -f docker-compose.dev.yml up -d; then - echo -e "${GREEN}Development environment started successfully!${NC}" -else - echo -e "${RED}Failed to start development environment!${NC}" - exit 1 -fi - -# 显示服务状态 -echo -e "${YELLOW}Service status:${NC}" -docker-compose -f docker-compose.dev.yml ps - -echo -e "${GREEN}Development environment setup completed!${NC}" -echo -e "${YELLOW}To view logs, run: make logs${NC}" -echo -e "${YELLOW}To stop the environment, run: make down${NC}" diff --git a/backend/scripts/gen-proto.sh b/backend/scripts/gen-proto.sh deleted file mode 100755 index 3710384..0000000 --- a/backend/scripts/gen-proto.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -# 生成 proto 代码的脚本 - 本地已有代码直接编译版本 - -# 定义颜色 -GREEN="\033[0;32m" -YELLOW="\033[1;33m" -RED="\033[0;31m" -NC="\033[0m" # No Color - -echo -e "${GREEN}Starting proto compilation...${NC}" - -echo -e "${YELLOW}Skipping proto compilation as per configuration...${NC}" -echo -e "${YELLOW}Using existing proto code if available...${NC}" - -echo -e "${GREEN}Proto compilation step completed!${NC}" diff --git a/backend/services/user-svc/Dockerfile b/backend/services/user-svc/Dockerfile deleted file mode 100644 index bd59388..0000000 --- a/backend/services/user-svc/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM golang:1.26.1-alpine3.23 AS builder - -WORKDIR /app - -ENV GOPROXY=https://goproxy.cn,direct - -COPY go.mod ./ -COPY main.go ./ - -RUN go mod download -RUN go build -o user-svc main.go - -FROM alpine:3.23 - -WORKDIR /app - -COPY --from=builder /app/user-svc . - -EXPOSE 50051 - -CMD ["./user-svc"] diff --git a/backend/services/user-svc/generate.sh b/backend/services/user-svc/generate.sh deleted file mode 100644 index 57255be..0000000 --- a/backend/services/user-svc/generate.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# 生成 gRPC 代码 -go install google.golang.org/protobuf/cmd/protoc-gen-go@latest -go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest - -protoc --go_out=. --go-grpc_out=. user.proto - -echo "gRPC code generated successfully!" diff --git a/backend/services/user-svc/go.mod b/backend/services/user-svc/go.mod deleted file mode 100644 index bfdf6af..0000000 --- a/backend/services/user-svc/go.mod +++ /dev/null @@ -1,40 +0,0 @@ -module user-svc - -go 1.26 - -require ( - google.golang.org/grpc v1.58.0 - gorm.io/driver/sqlite v1.5.4 - gorm.io/gorm v1.25.5 - google.golang.org/protobuf v1.31.0 -) - -require ( - github.com/bytedance/sonic v1.9.1 // indirect - github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect - github.com/gin-contrib/sse v0.1.0 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.14.0 // indirect - github.com/goccy/go-json v0.10.2 // indirect - github.com/jinzhu/inflection v1.0.0 // indirect - github.com/jinzhu/now v1.1.5 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect - github.com/leodido/go-urn v1.2.4 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect - github.com/mattn/go-sqlite3 v1.14.17 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect - github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/ugorji/go/codec v1.2.11 // indirect - golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.9.0 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.12.0 // indirect - gopkg.in/yaml.v3 v3 // indirect -) \ No newline at end of file diff --git a/backend/services/user-svc/main.go b/backend/services/user-svc/main.go deleted file mode 100644 index df7d738..0000000 --- a/backend/services/user-svc/main.go +++ /dev/null @@ -1,156 +0,0 @@ -package main - -import ( - "context" - "fmt" - "log" - "net" - "user-svc/user" - - "google.golang.org/grpc" - "gorm.io/driver/sqlite" - "gorm.io/gorm" -) - -type User struct { - ID string `json:"id" gorm:"primaryKey"` - Name string `json:"name"` - Email string `json:"email"` - Password string `json:"password"` -} - -type UserServiceServer struct { - user.UnimplementedUserServiceServer - db *gorm.DB -} - -func (s *UserServiceServer) CreateUser(ctx context.Context, req *user.CreateUserRequest) (*user.CreateUserResponse, error) { - newUser := User{ - ID: fmt.Sprintf("%d", len(s.getAllUsers())+1), - Name: req.Name, - Email: req.Email, - Password: req.Password, - } - - result := s.db.Create(&newUser) - if result.Error != nil { - return nil, result.Error - } - - return &user.CreateUserResponse{ - User: &user.User{ - Id: newUser.ID, - Name: newUser.Name, - Email: newUser.Email, - Password: newUser.Password, - }, - }, nil -} - -func (s *UserServiceServer) GetUser(ctx context.Context, req *user.GetUserRequest) (*user.GetUserResponse, error) { - var user User - result := s.db.First(&user, "id = ?", req.Id) - if result.Error != nil { - return nil, result.Error - } - - return &user.GetUserResponse{ - User: &user.User{ - Id: user.ID, - Name: user.Name, - Email: user.Email, - Password: user.Password, - }, - }, nil -} - -func (s *UserServiceServer) ListUsers(ctx context.Context, req *user.ListUsersRequest) (*user.ListUsersResponse, error) { - users := s.getAllUsers() - var protoUsers []*user.User - - for _, u := range users { - protoUsers = append(protoUsers, &user.User{ - Id: u.ID, - Name: u.Name, - Email: u.Email, - Password: u.Password, - }) - } - - return &user.ListUsersResponse{ - Users: protoUsers, - }, nil -} - -func (s *UserServiceServer) UpdateUser(ctx context.Context, req *user.UpdateUserRequest) (*user.UpdateUserResponse, error) { - var user User - result := s.db.First(&user, "id = ?", req.Id) - if result.Error != nil { - return nil, result.Error - } - - if req.Name != "" { - user.Name = req.Name - } - if req.Email != "" { - user.Email = req.Email - } - if req.Password != "" { - user.Password = req.Password - } - - s.db.Save(&user) - - return &user.UpdateUserResponse{ - User: &user.User{ - Id: user.ID, - Name: user.Name, - Email: user.Email, - Password: user.Password, - }, - }, nil -} - -func (s *UserServiceServer) DeleteUser(ctx context.Context, req *user.DeleteUserRequest) (*user.DeleteUserResponse, error) { - result := s.db.Delete(&User{}, "id = ?", req.Id) - if result.Error != nil { - return nil, result.Error - } - - return &user.DeleteUserResponse{ - Success: true, - }, nil -} - -func (s *UserServiceServer) getAllUsers() []User { - var users []User - s.db.Find(&users) - return users -} - -func initDB() *gorm.DB { - db, err := gorm.Open(sqlite.Open("users.db"), &gorm.Config{}) - if err != nil { - log.Fatalf("Failed to connect to database: %v", err) - } - - db.AutoMigrate(&User{}) - return db -} - -func main() { - db := initDB() - - server := grpc.NewServer() - user.RegisterUserServiceServer(server, &UserServiceServer{db: db}) - - listener, err := net.Listen("tcp", ":50051") - if err != nil { - log.Fatalf("Failed to listen: %v", err) - } - - log.Println("User service starting on port 50051...") - if err := server.Serve(listener); err != nil { - log.Fatalf("Failed to serve: %v", err) - } -} \ No newline at end of file diff --git a/backend/services/user-svc/user.proto b/backend/services/user-svc/user.proto deleted file mode 100644 index 85a3765..0000000 --- a/backend/services/user-svc/user.proto +++ /dev/null @@ -1,64 +0,0 @@ -syntax = "proto3"; - -package user; - -option go_package = "./user"; - -message User { - string id = 1; - string name = 2; - string email = 3; - string password = 4; -} - -message CreateUserRequest { - string name = 1; - string email = 2; - string password = 3; -} - -message CreateUserResponse { - User user = 1; -} - -message GetUserRequest { - string id = 1; -} - -message GetUserResponse { - User user = 1; -} - -message ListUsersRequest { -} - -message ListUsersResponse { - repeated User users = 1; -} - -message UpdateUserRequest { - string id = 1; - string name = 2; - string email = 3; - string password = 4; -} - -message UpdateUserResponse { - User user = 1; -} - -message DeleteUserRequest { - string id = 1; -} - -message DeleteUserResponse { - bool success = 1; -} - -service UserService { - rpc CreateUser(CreateUserRequest) returns (CreateUserResponse); - rpc GetUser(GetUserRequest) returns (GetUserResponse); - rpc ListUsers(ListUsersRequest) returns (ListUsersResponse); - rpc UpdateUser(UpdateUserRequest) returns (UpdateUserResponse); - rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse); -} \ No newline at end of file diff --git a/backend/shared/errors/errors.go b/backend/shared/errors/errors.go deleted file mode 100644 index 1382cb8..0000000 --- a/backend/shared/errors/errors.go +++ /dev/null @@ -1,46 +0,0 @@ -package errors - -import ( - "fmt" -) - -type AppError struct { - Code string - Message string - Err error -} - -func (e *AppError) Error() string { - if e.Err != nil { - return fmt.Sprintf("%s: %s (code: %s)", e.Message, e.Err.Error(), e.Code) - } - return fmt.Sprintf("%s (code: %s)", e.Message, e.Code) -} - -func (e *AppError) Unwrap() error { - return e.Err -} - -func NewAppError(code, message string, err error) *AppError { - return &AppError{ - Code: code, - Message: message, - Err: err, - } -} - -func NewBadRequestError(message string, err error) *AppError { - return NewAppError("BAD_REQUEST", message, err) -} - -func NewInternalError(message string, err error) *AppError { - return NewAppError("INTERNAL_ERROR", message, err) -} - -func NewNotFoundError(message string, err error) *AppError { - return NewAppError("NOT_FOUND", message, err) -} - -func NewUnauthorizedError(message string, err error) *AppError { - return NewAppError("UNAUTHORIZED", message, err) -} diff --git a/backend/shared/go.mod b/backend/shared/go.mod deleted file mode 100644 index acc153b..0000000 --- a/backend/shared/go.mod +++ /dev/null @@ -1,44 +0,0 @@ -module shared - -go 1.26 - -require ( - github.com/go-redis/redis/v8 v8.11.5 - github.com/rs/zerolog v1.30.0 - gorm.io/driver/postgres v1.5.4 - gorm.io/gorm v1.25.5 - google.golang.org/protobuf v1.31.0 -) - -require ( - github.com/bytedance/sonic v1.9.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/gabriel-vasile/mimetype v1.4.2 // indirect - github.com/gin-contrib/sse v0.1.0 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.14.0 // indirect - github.com/goccy/go-json v0.10.2 // indirect - github.com/jackc/pgpassfile v1.0.0 // indirect - github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect - github.com/jackc/pgx/v5 v5.4.3 // indirect - github.com/jinzhu/inflection v1.0.0 // indirect - github.com/jinzhu/now v1.1.5 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect - github.com/leodido/go-urn v1.2.4 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect - github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/ugorji/go/codec v1.2.11 // indirect - golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.9.0 // indirect - golang.org/x/net v0.10.0 // indirect - golang.org/x/sys v0.8.0 // indirect - golang.org/x/text v0.9.0 // indirect - gopkg.in/yaml.v3 v3 // indirect -) \ No newline at end of file diff --git a/backend/shared/logger/logger.go b/backend/shared/logger/logger.go deleted file mode 100644 index 9c67bfb..0000000 --- a/backend/shared/logger/logger.go +++ /dev/null @@ -1,33 +0,0 @@ -package logger - -import ( - "os" - - "github.com/rs/zerolog" -) - -var log zerolog.Logger - -func init() { - log = zerolog.New(os.Stdout).With().Timestamp().Logger() -} - -func Info() *zerolog.Event { - return log.Info() -} - -func Error() *zerolog.Event { - return log.Error() -} - -func Debug() *zerolog.Event { - return log.Debug() -} - -func Warn() *zerolog.Event { - return log.Warn() -} - -func Fatal() *zerolog.Event { - return log.Fatal() -} diff --git a/backend/shared/postgres/postgres.go b/backend/shared/postgres/postgres.go deleted file mode 100644 index 1d37cc2..0000000 --- a/backend/shared/postgres/postgres.go +++ /dev/null @@ -1,32 +0,0 @@ -package postgres - -import ( - "fmt" - "shared/logger" - - "gorm.io/driver/postgres" - "gorm.io/gorm" -) - -type Config struct { - Host string - Port string - User string - Password string - DBName string - SSLMode string -} - -func NewPostgresDB(cfg Config) (*gorm.DB, error) { - dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=%s", - cfg.Host, cfg.Port, cfg.User, cfg.Password, cfg.DBName, cfg.SSLMode) - - db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) - if err != nil { - logger.Error().Err(err).Msg("Failed to connect to PostgreSQL database") - return nil, err - } - - logger.Info().Msg("Connected to PostgreSQL database successfully") - return db, nil -} diff --git a/backend/shared/proto/common.proto b/backend/shared/proto/common.proto deleted file mode 100644 index 6f246bb..0000000 --- a/backend/shared/proto/common.proto +++ /dev/null @@ -1,24 +0,0 @@ -syntax = "proto3"; - -package common; - -option go_package = "./common"; - -message Empty { -} - -message Status { - bool success = 1; - string message = 2; - string code = 3; -} - -message Pagination { - int32 page = 1; - int32 page_size = 2; - int32 total = 3; -} - -message IdRequest { - string id = 1; -} diff --git a/backend/shared/redis/redis.go b/backend/shared/redis/redis.go deleted file mode 100644 index fc5beef..0000000 --- a/backend/shared/redis/redis.go +++ /dev/null @@ -1,32 +0,0 @@ -package redis - -import ( - "context" - "shared/logger" - - "github.com/go-redis/redis/v8" -) - -type Config struct { - Addr string - Password string - DB int -} - -func NewRedisClient(cfg Config) *redis.Client { - client := redis.NewClient(&redis.Options{ - Addr: cfg.Addr, - Password: cfg.Password, - DB: cfg.DB, - }) - - ctx := context.Background() - _, err := client.Ping(ctx).Result() - if err != nil { - logger.Error().Err(err).Msg("Failed to connect to Redis") - return nil - } - - logger.Info().Msg("Connected to Redis successfully") - return client -} diff --git a/backend/user/user.pb.go b/backend/user/user.pb.go deleted file mode 100644 index c158a85..0000000 --- a/backend/user/user.pb.go +++ /dev/null @@ -1,682 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.36.11 -// protoc v6.31.1 -// source: services/user-svc/user.proto - -package user - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" - unsafe "unsafe" -) - -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 User struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` - Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *User) Reset() { - *x = User{} - mi := &file_services_user_svc_user_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *User) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*User) ProtoMessage() {} - -func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_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 User.ProtoReflect.Descriptor instead. -func (*User) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{0} -} - -func (x *User) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *User) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *User) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *User) GetPassword() string { - if x != nil { - return x.Password - } - return "" -} - -type CreateUserRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *CreateUserRequest) Reset() { - *x = CreateUserRequest{} - mi := &file_services_user_svc_user_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *CreateUserRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateUserRequest) ProtoMessage() {} - -func (x *CreateUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_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 CreateUserRequest.ProtoReflect.Descriptor instead. -func (*CreateUserRequest) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{1} -} - -func (x *CreateUserRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *CreateUserRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *CreateUserRequest) GetPassword() string { - if x != nil { - return x.Password - } - return "" -} - -type CreateUserResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *CreateUserResponse) Reset() { - *x = CreateUserResponse{} - mi := &file_services_user_svc_user_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *CreateUserResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateUserResponse) ProtoMessage() {} - -func (x *CreateUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_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 CreateUserResponse.ProtoReflect.Descriptor instead. -func (*CreateUserResponse) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{2} -} - -func (x *CreateUserResponse) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -type GetUserRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *GetUserRequest) Reset() { - *x = GetUserRequest{} - mi := &file_services_user_svc_user_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetUserRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserRequest) ProtoMessage() {} - -func (x *GetUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_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 GetUserRequest.ProtoReflect.Descriptor instead. -func (*GetUserRequest) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{3} -} - -func (x *GetUserRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type GetUserResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *GetUserResponse) Reset() { - *x = GetUserResponse{} - mi := &file_services_user_svc_user_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *GetUserResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserResponse) ProtoMessage() {} - -func (x *GetUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_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 GetUserResponse.ProtoReflect.Descriptor instead. -func (*GetUserResponse) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{4} -} - -func (x *GetUserResponse) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -type ListUsersRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *ListUsersRequest) Reset() { - *x = ListUsersRequest{} - mi := &file_services_user_svc_user_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ListUsersRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListUsersRequest) ProtoMessage() {} - -func (x *ListUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_proto_msgTypes[5] - 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 ListUsersRequest.ProtoReflect.Descriptor instead. -func (*ListUsersRequest) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{5} -} - -type ListUsersResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *ListUsersResponse) Reset() { - *x = ListUsersResponse{} - mi := &file_services_user_svc_user_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *ListUsersResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListUsersResponse) ProtoMessage() {} - -func (x *ListUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_proto_msgTypes[6] - 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 ListUsersResponse.ProtoReflect.Descriptor instead. -func (*ListUsersResponse) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{6} -} - -func (x *ListUsersResponse) GetUsers() []*User { - if x != nil { - return x.Users - } - return nil -} - -type UpdateUserRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"` - Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *UpdateUserRequest) Reset() { - *x = UpdateUserRequest{} - mi := &file_services_user_svc_user_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateUserRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserRequest) ProtoMessage() {} - -func (x *UpdateUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_proto_msgTypes[7] - 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 UpdateUserRequest.ProtoReflect.Descriptor instead. -func (*UpdateUserRequest) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{7} -} - -func (x *UpdateUserRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *UpdateUserRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *UpdateUserRequest) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *UpdateUserRequest) GetPassword() string { - if x != nil { - return x.Password - } - return "" -} - -type UpdateUserResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *UpdateUserResponse) Reset() { - *x = UpdateUserResponse{} - mi := &file_services_user_svc_user_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *UpdateUserResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserResponse) ProtoMessage() {} - -func (x *UpdateUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_proto_msgTypes[8] - 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 UpdateUserResponse.ProtoReflect.Descriptor instead. -func (*UpdateUserResponse) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{8} -} - -func (x *UpdateUserResponse) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -type DeleteUserRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *DeleteUserRequest) Reset() { - *x = DeleteUserRequest{} - mi := &file_services_user_svc_user_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteUserRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUserRequest) ProtoMessage() {} - -func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_proto_msgTypes[9] - 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 DeleteUserRequest.ProtoReflect.Descriptor instead. -func (*DeleteUserRequest) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{9} -} - -func (x *DeleteUserRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -type DeleteUserResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *DeleteUserResponse) Reset() { - *x = DeleteUserResponse{} - mi := &file_services_user_svc_user_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *DeleteUserResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUserResponse) ProtoMessage() {} - -func (x *DeleteUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_services_user_svc_user_proto_msgTypes[10] - 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 DeleteUserResponse.ProtoReflect.Descriptor instead. -func (*DeleteUserResponse) Descriptor() ([]byte, []int) { - return file_services_user_svc_user_proto_rawDescGZIP(), []int{10} -} - -func (x *DeleteUserResponse) GetSuccess() bool { - if x != nil { - return x.Success - } - return false -} - -var File_services_user_svc_user_proto protoreflect.FileDescriptor - -const file_services_user_svc_user_proto_rawDesc = "" + - "\n" + - "\x1cservices/user-svc/user.proto\x12\x04user\"\\\n" + - "\x04User\x12\x0e\n" + - "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + - "\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n" + - "\x05email\x18\x03 \x01(\tR\x05email\x12\x1a\n" + - "\bpassword\x18\x04 \x01(\tR\bpassword\"Y\n" + - "\x11CreateUserRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + - "\x05email\x18\x02 \x01(\tR\x05email\x12\x1a\n" + - "\bpassword\x18\x03 \x01(\tR\bpassword\"4\n" + - "\x12CreateUserResponse\x12\x1e\n" + - "\x04user\x18\x01 \x01(\v2\n" + - ".user.UserR\x04user\" \n" + - "\x0eGetUserRequest\x12\x0e\n" + - "\x02id\x18\x01 \x01(\tR\x02id\"1\n" + - "\x0fGetUserResponse\x12\x1e\n" + - "\x04user\x18\x01 \x01(\v2\n" + - ".user.UserR\x04user\"\x12\n" + - "\x10ListUsersRequest\"5\n" + - "\x11ListUsersResponse\x12 \n" + - "\x05users\x18\x01 \x03(\v2\n" + - ".user.UserR\x05users\"i\n" + - "\x11UpdateUserRequest\x12\x0e\n" + - "\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" + - "\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n" + - "\x05email\x18\x03 \x01(\tR\x05email\x12\x1a\n" + - "\bpassword\x18\x04 \x01(\tR\bpassword\"4\n" + - "\x12UpdateUserResponse\x12\x1e\n" + - "\x04user\x18\x01 \x01(\v2\n" + - ".user.UserR\x04user\"#\n" + - "\x11DeleteUserRequest\x12\x0e\n" + - "\x02id\x18\x01 \x01(\tR\x02id\".\n" + - "\x12DeleteUserResponse\x12\x18\n" + - "\asuccess\x18\x01 \x01(\bR\asuccess2\xc6\x02\n" + - "\vUserService\x12?\n" + - "\n" + - "CreateUser\x12\x17.user.CreateUserRequest\x1a\x18.user.CreateUserResponse\x126\n" + - "\aGetUser\x12\x14.user.GetUserRequest\x1a\x15.user.GetUserResponse\x12<\n" + - "\tListUsers\x12\x16.user.ListUsersRequest\x1a\x17.user.ListUsersResponse\x12?\n" + - "\n" + - "UpdateUser\x12\x17.user.UpdateUserRequest\x1a\x18.user.UpdateUserResponse\x12?\n" + - "\n" + - "DeleteUser\x12\x17.user.DeleteUserRequest\x1a\x18.user.DeleteUserResponseB\bZ\x06./userb\x06proto3" - -var ( - file_services_user_svc_user_proto_rawDescOnce sync.Once - file_services_user_svc_user_proto_rawDescData []byte -) - -func file_services_user_svc_user_proto_rawDescGZIP() []byte { - file_services_user_svc_user_proto_rawDescOnce.Do(func() { - file_services_user_svc_user_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_services_user_svc_user_proto_rawDesc), len(file_services_user_svc_user_proto_rawDesc))) - }) - return file_services_user_svc_user_proto_rawDescData -} - -var file_services_user_svc_user_proto_msgTypes = make([]protoimpl.MessageInfo, 11) -var file_services_user_svc_user_proto_goTypes = []any{ - (*User)(nil), // 0: user.User - (*CreateUserRequest)(nil), // 1: user.CreateUserRequest - (*CreateUserResponse)(nil), // 2: user.CreateUserResponse - (*GetUserRequest)(nil), // 3: user.GetUserRequest - (*GetUserResponse)(nil), // 4: user.GetUserResponse - (*ListUsersRequest)(nil), // 5: user.ListUsersRequest - (*ListUsersResponse)(nil), // 6: user.ListUsersResponse - (*UpdateUserRequest)(nil), // 7: user.UpdateUserRequest - (*UpdateUserResponse)(nil), // 8: user.UpdateUserResponse - (*DeleteUserRequest)(nil), // 9: user.DeleteUserRequest - (*DeleteUserResponse)(nil), // 10: user.DeleteUserResponse -} -var file_services_user_svc_user_proto_depIdxs = []int32{ - 0, // 0: user.CreateUserResponse.user:type_name -> user.User - 0, // 1: user.GetUserResponse.user:type_name -> user.User - 0, // 2: user.ListUsersResponse.users:type_name -> user.User - 0, // 3: user.UpdateUserResponse.user:type_name -> user.User - 1, // 4: user.UserService.CreateUser:input_type -> user.CreateUserRequest - 3, // 5: user.UserService.GetUser:input_type -> user.GetUserRequest - 5, // 6: user.UserService.ListUsers:input_type -> user.ListUsersRequest - 7, // 7: user.UserService.UpdateUser:input_type -> user.UpdateUserRequest - 9, // 8: user.UserService.DeleteUser:input_type -> user.DeleteUserRequest - 2, // 9: user.UserService.CreateUser:output_type -> user.CreateUserResponse - 4, // 10: user.UserService.GetUser:output_type -> user.GetUserResponse - 6, // 11: user.UserService.ListUsers:output_type -> user.ListUsersResponse - 8, // 12: user.UserService.UpdateUser:output_type -> user.UpdateUserResponse - 10, // 13: user.UserService.DeleteUser:output_type -> user.DeleteUserResponse - 9, // [9:14] is the sub-list for method output_type - 4, // [4:9] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name -} - -func init() { file_services_user_svc_user_proto_init() } -func file_services_user_svc_user_proto_init() { - if File_services_user_svc_user_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_services_user_svc_user_proto_rawDesc), len(file_services_user_svc_user_proto_rawDesc)), - NumEnums: 0, - NumMessages: 11, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_services_user_svc_user_proto_goTypes, - DependencyIndexes: file_services_user_svc_user_proto_depIdxs, - MessageInfos: file_services_user_svc_user_proto_msgTypes, - }.Build() - File_services_user_svc_user_proto = out.File - file_services_user_svc_user_proto_goTypes = nil - file_services_user_svc_user_proto_depIdxs = nil -} diff --git a/backend/user/user_grpc.pb.go b/backend/user/user_grpc.pb.go deleted file mode 100644 index 34c265e..0000000 --- a/backend/user/user_grpc.pb.go +++ /dev/null @@ -1,273 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.6.1 -// - protoc v6.31.1 -// source: services/user-svc/user.proto - -package user - -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 ( - UserService_CreateUser_FullMethodName = "/user.UserService/CreateUser" - UserService_GetUser_FullMethodName = "/user.UserService/GetUser" - UserService_ListUsers_FullMethodName = "/user.UserService/ListUsers" - UserService_UpdateUser_FullMethodName = "/user.UserService/UpdateUser" - UserService_DeleteUser_FullMethodName = "/user.UserService/DeleteUser" -) - -// UserServiceClient is the client API for UserService 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 UserServiceClient interface { - CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error) - GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error) - ListUsers(ctx context.Context, in *ListUsersRequest, opts ...grpc.CallOption) (*ListUsersResponse, error) - UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*UpdateUserResponse, error) - DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*DeleteUserResponse, error) -} - -type userServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewUserServiceClient(cc grpc.ClientConnInterface) UserServiceClient { - return &userServiceClient{cc} -} - -func (c *userServiceClient) CreateUser(ctx context.Context, in *CreateUserRequest, opts ...grpc.CallOption) (*CreateUserResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(CreateUserResponse) - err := c.cc.Invoke(ctx, UserService_CreateUser_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userServiceClient) GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*GetUserResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(GetUserResponse) - err := c.cc.Invoke(ctx, UserService_GetUser_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userServiceClient) ListUsers(ctx context.Context, in *ListUsersRequest, opts ...grpc.CallOption) (*ListUsersResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ListUsersResponse) - err := c.cc.Invoke(ctx, UserService_ListUsers_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userServiceClient) UpdateUser(ctx context.Context, in *UpdateUserRequest, opts ...grpc.CallOption) (*UpdateUserResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(UpdateUserResponse) - err := c.cc.Invoke(ctx, UserService_UpdateUser_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userServiceClient) DeleteUser(ctx context.Context, in *DeleteUserRequest, opts ...grpc.CallOption) (*DeleteUserResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(DeleteUserResponse) - err := c.cc.Invoke(ctx, UserService_DeleteUser_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// UserServiceServer is the server API for UserService service. -// All implementations must embed UnimplementedUserServiceServer -// for forward compatibility. -type UserServiceServer interface { - CreateUser(context.Context, *CreateUserRequest) (*CreateUserResponse, error) - GetUser(context.Context, *GetUserRequest) (*GetUserResponse, error) - ListUsers(context.Context, *ListUsersRequest) (*ListUsersResponse, error) - UpdateUser(context.Context, *UpdateUserRequest) (*UpdateUserResponse, error) - DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error) - mustEmbedUnimplementedUserServiceServer() -} - -// UnimplementedUserServiceServer 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 UnimplementedUserServiceServer struct{} - -func (UnimplementedUserServiceServer) CreateUser(context.Context, *CreateUserRequest) (*CreateUserResponse, error) { - return nil, status.Error(codes.Unimplemented, "method CreateUser not implemented") -} -func (UnimplementedUserServiceServer) GetUser(context.Context, *GetUserRequest) (*GetUserResponse, error) { - return nil, status.Error(codes.Unimplemented, "method GetUser not implemented") -} -func (UnimplementedUserServiceServer) ListUsers(context.Context, *ListUsersRequest) (*ListUsersResponse, error) { - return nil, status.Error(codes.Unimplemented, "method ListUsers not implemented") -} -func (UnimplementedUserServiceServer) UpdateUser(context.Context, *UpdateUserRequest) (*UpdateUserResponse, error) { - return nil, status.Error(codes.Unimplemented, "method UpdateUser not implemented") -} -func (UnimplementedUserServiceServer) DeleteUser(context.Context, *DeleteUserRequest) (*DeleteUserResponse, error) { - return nil, status.Error(codes.Unimplemented, "method DeleteUser not implemented") -} -func (UnimplementedUserServiceServer) mustEmbedUnimplementedUserServiceServer() {} -func (UnimplementedUserServiceServer) testEmbeddedByValue() {} - -// UnsafeUserServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to UserServiceServer will -// result in compilation errors. -type UnsafeUserServiceServer interface { - mustEmbedUnimplementedUserServiceServer() -} - -func RegisterUserServiceServer(s grpc.ServiceRegistrar, srv UserServiceServer) { - // If the following call panics, it indicates UnimplementedUserServiceServer 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(&UserService_ServiceDesc, srv) -} - -func _UserService_CreateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateUserRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).CreateUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_CreateUser_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).CreateUser(ctx, req.(*CreateUserRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _UserService_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).GetUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_GetUser_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).GetUser(ctx, req.(*GetUserRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _UserService_ListUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListUsersRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).ListUsers(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_ListUsers_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).ListUsers(ctx, req.(*ListUsersRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _UserService_UpdateUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateUserRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).UpdateUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_UpdateUser_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).UpdateUser(ctx, req.(*UpdateUserRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _UserService_DeleteUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteUserRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServiceServer).DeleteUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: UserService_DeleteUser_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServiceServer).DeleteUser(ctx, req.(*DeleteUserRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// UserService_ServiceDesc is the grpc.ServiceDesc for UserService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var UserService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "user.UserService", - HandlerType: (*UserServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "CreateUser", - Handler: _UserService_CreateUser_Handler, - }, - { - MethodName: "GetUser", - Handler: _UserService_GetUser_Handler, - }, - { - MethodName: "ListUsers", - Handler: _UserService_ListUsers_Handler, - }, - { - MethodName: "UpdateUser", - Handler: _UserService_UpdateUser_Handler, - }, - { - MethodName: "DeleteUser", - Handler: _UserService_DeleteUser_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "services/user-svc/user.proto", -}