Add http server
diff --git a/core/kg/server/grpc_server.go b/core/kg/server/grpc_server.go
index c36c7d2..bc3b05f 100644
--- a/core/kg/server/grpc_server.go
+++ b/core/kg/server/grpc_server.go
@@ -1,29 +1,32 @@
package server
import (
+ "fmt"
"net"
"os"
"github.com/giolekva/pcloud/core/kg/log"
+ "github.com/giolekva/pcloud/core/kg/model"
"github.com/giolekva/pcloud/core/kg/store"
"google.golang.org/grpc"
)
-const listenerPort = ":9081"
-
// GRPCServerImpl grpc server implementation
type GRPCServerImpl struct {
- Log *log.Logger
- srv *grpc.Server
- store store.Store
+ Log *log.Logger
+ srv *grpc.Server
+ config *model.Config
+ store store.Store
}
var _ Server = &GRPCServerImpl{}
// NewGRPCServer creates new GRPC Server
-func NewGRPCServer(logger *log.Logger) Server {
+func NewGRPCServer(logger *log.Logger, config *model.Config, store store.Store) Server {
a := &GRPCServerImpl{
- Log: logger,
+ Log: logger,
+ config: config,
+ store: store,
}
pwd, _ := os.Getwd()
@@ -31,14 +34,14 @@
return a
}
-// Start method starts an app
+// Start method starts a grpc server
func (a *GRPCServerImpl) Start() error {
a.Log.Info("Starting GRPC Server...")
// settings := model.NewConfig().SqlSettings
// a.store = sqlstore.New(settings)
- lis, err := net.Listen("tcp", listenerPort)
+ lis, err := net.Listen("tcp", fmt.Sprintf(":%d", a.config.GRPCSettings.Port))
if err != nil {
a.Log.Error("failed to listen: %v", log.Err(err))
return err
@@ -46,17 +49,18 @@
a.srv = grpc.NewServer()
- a.Log.Info("GRPC Server is listening on", log.String("port", listenerPort))
+ a.Log.Info("GRPC Server is listening on", log.Int("port", a.config.GRPCSettings.Port))
if err := a.srv.Serve(lis); err != nil {
- a.Log.Error("failed to serve: %v", log.Err(err))
+ a.Log.Error("failed to serve rpc: %v", log.Err(err))
return err
}
return nil
}
-// Shutdown method shuts server down
+// Shutdown method shuts grpc server down
func (a *GRPCServerImpl) Shutdown() error {
a.Log.Info("Stopping GRPC Server...")
a.srv.GracefulStop()
+ a.Log.Info("GRPC Server stopped")
return nil
}