niki/paymentapp/delivery/grpc/server.go

38 lines
771 B
Go

package grpc
import (
"fmt"
"net"
paymentpb "git.gocasts.ir/ebhomengo/niki/paymentapp/protobuf"
"git.gocasts.ir/ebhomengo/niki/pkg/grpc"
)
type PaymentGrpcServer struct {
server *grpc.RPCServer
handler *Handler
}
func NewPaymentGrpcServer(server *grpc.RPCServer, handler *Handler) PaymentGrpcServer {
return PaymentGrpcServer{
server: server,
handler: handler,
}
}
func (s PaymentGrpcServer) Serve() error {
listener, err := net.Listen(s.server.Config.NetworkType, fmt.Sprintf(":%d", s.server.Config.Port))
if err != nil {
return err
}
paymentpb.RegisterPaymentServiceServer(s.server.Server, s.handler)
if err := s.server.Server.Serve(listener); err != nil {
return err
}
return nil
}
func (s PaymentGrpcServer) Stop() {
s.server.Stop()
}