initial commit
This commit is contained in:
50
servers/grpc/server/server.go
Normal file
50
servers/grpc/server/server.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
|
||||
"git.coopgo.io/coopgo-platform/solidarity-transport/handler"
|
||||
"git.coopgo.io/coopgo-platform/solidarity-transport/servers/grpc/proto/gen"
|
||||
"github.com/rs/zerolog/log"
|
||||
"github.com/spf13/viper"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/reflection"
|
||||
)
|
||||
|
||||
type SolidarityTransportServerImpl struct {
|
||||
Handler *handler.Handler
|
||||
|
||||
gen.UnimplementedSolidarityTransportServer
|
||||
}
|
||||
|
||||
func NewSolidarityTransportServer(handler *handler.Handler) *SolidarityTransportServerImpl {
|
||||
return &SolidarityTransportServerImpl{
|
||||
Handler: handler,
|
||||
}
|
||||
}
|
||||
|
||||
func Run(done chan error, cfg *viper.Viper, handler *handler.Handler) {
|
||||
var (
|
||||
dev_env = cfg.GetBool("dev_env")
|
||||
address = ":" + cfg.GetString("services.grpc.port")
|
||||
)
|
||||
|
||||
server := grpc.NewServer()
|
||||
|
||||
gen.RegisterSolidarityTransportServer(server, NewSolidarityTransportServer(handler))
|
||||
l, err := net.Listen("tcp", address)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("could not register solidarity transport grpc server")
|
||||
return
|
||||
}
|
||||
|
||||
if dev_env {
|
||||
reflection.Register(server)
|
||||
}
|
||||
|
||||
if err := server.Serve(l); err != nil {
|
||||
fmt.Println("gRPC service ended")
|
||||
done <- err
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user