feat: 初始提交云印享付费打印服务后端
This commit is contained in:
92
cloudprint-backend/internal/grpc/server.go
Normal file
92
cloudprint-backend/internal/grpc/server.go
Normal file
@@ -0,0 +1,92 @@
|
||||
package grpc
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
|
||||
"github.com/cloudprint/cloudprint-backend/internal/grpc/interceptor"
|
||||
pb "github.com/cloudprint/cloudprint-backend/proto/generated"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/reflection"
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
grpcServer *grpc.Server
|
||||
port int
|
||||
}
|
||||
|
||||
type ServerOption func(*Server)
|
||||
|
||||
func WithPort(port int) ServerOption {
|
||||
return func(s *Server) {
|
||||
s.port = port
|
||||
}
|
||||
}
|
||||
|
||||
func NewServer(opts ...ServerOption) *Server {
|
||||
s := &Server{
|
||||
port: 8080,
|
||||
}
|
||||
for _, opt := range opts {
|
||||
opt(s)
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
func (s *Server) RegisterServices(grpcServer *grpc.Server) {
|
||||
// Services will be registered here
|
||||
// This is a placeholder for the actual service registration
|
||||
}
|
||||
|
||||
func (s *Server) Start() error {
|
||||
lis, err := net.Listen("tcp", fmt.Sprintf(":%d", s.port))
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to listen: %v", err)
|
||||
}
|
||||
|
||||
s.grpcServer = grpc.NewServer(
|
||||
grpc.UnaryInterceptor(interceptor.AuthInterceptor{}.UnaryServerInterceptor()),
|
||||
)
|
||||
|
||||
// Register reflection service for debugging
|
||||
reflection.Register(s.grpcServer)
|
||||
|
||||
if err := s.grpcServer.Serve(lis); err != nil {
|
||||
return fmt.Errorf("failed to serve: %v", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Server) Stop() {
|
||||
if s.grpcServer != nil {
|
||||
s.grpcServer.GracefulStop()
|
||||
}
|
||||
}
|
||||
|
||||
// Register all gRPC services
|
||||
func RegisterServices(grpcServer *grpc.Server) {
|
||||
// AuthService
|
||||
// pb.RegisterAuthServiceServer(grpcServer, authServiceServer)
|
||||
|
||||
// FileService
|
||||
// pb.RegisterFileServiceServer(grpcServer, fileServiceServer)
|
||||
|
||||
// OrderService
|
||||
// pb.RegisterOrderServiceServer(grpcServer, orderServiceServer)
|
||||
|
||||
// PrintService
|
||||
// pb.RegisterPrintServiceServer(grpcServer, printServiceServer)
|
||||
|
||||
// LibraryService
|
||||
// pb.RegisterLibraryServiceServer(grpcServer, libraryServiceServer)
|
||||
|
||||
// PriceService
|
||||
// pb.RegisterPriceServiceServer(grpcServer, priceServiceServer)
|
||||
|
||||
// PayService
|
||||
// pb.RegisterPayServiceServer(grpcServer, payServiceServer)
|
||||
|
||||
// AdminService
|
||||
// pb.RegisterAdminServiceServer(grpcServer, adminServiceServer)
|
||||
}
|
||||
Reference in New Issue
Block a user