mirror of
https://github.com/lorsanstand/HomeOps-Hub.git
synced 2026-06-19 16:45:15 +03:00
refractor: hub conn
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
.env
|
||||||
@@ -1,4 +1,9 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
|
import "github.com/lorsanstand/HomeOps-Hub/internal/hub/app"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
start := app.NewApp()
|
||||||
|
|
||||||
|
start.Run()
|
||||||
}
|
}
|
||||||
|
|||||||
+41
-1
@@ -1,11 +1,51 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net"
|
||||||
|
|
||||||
|
pb "github.com/lorsanstand/HomeOps-Hub/api/gen/homeops"
|
||||||
|
grpcserv "github.com/lorsanstand/HomeOps-Hub/internal/hub/grpc"
|
||||||
"github.com/lorsanstand/HomeOps-Hub/internal/shared/config"
|
"github.com/lorsanstand/HomeOps-Hub/internal/shared/config"
|
||||||
|
"github.com/lorsanstand/HomeOps-Hub/internal/shared/log"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
|
"google.golang.org/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
type App struct {
|
type App struct {
|
||||||
cfg *config.Config
|
cfg *config.Config
|
||||||
log *zerolog.Logger
|
log zerolog.Logger
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewApp() *App {
|
||||||
|
cfg, err := config.NewConfig()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Errorf("failed get config: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
logger := log.NewLogger(cfg)
|
||||||
|
|
||||||
|
return &App{cfg: cfg, log: logger}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *App) Run() {
|
||||||
|
address := fmt.Sprintf("http://0.0.0.0:%v", a.cfg.Port)
|
||||||
|
|
||||||
|
lis, err := net.Listen("tcp", fmt.Sprintf(":%v", a.cfg.Port))
|
||||||
|
if err != nil {
|
||||||
|
a.log.Error().Err(err).Msg("failed started listen")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
grpcServer := grpc.NewServer()
|
||||||
|
pb.RegisterHubServer(grpcServer, grpcserv.NewServer())
|
||||||
|
|
||||||
|
a.log.Info().Str("address", address).Msg("server started")
|
||||||
|
|
||||||
|
err = grpcServer.Serve(lis)
|
||||||
|
if err != nil {
|
||||||
|
a.log.Error().Err(err).Msg("failed started grpc server")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,15 +3,19 @@ package grpc
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/lorsanstand/HomeOps-Hub/api/gen/homeops"
|
pb "github.com/lorsanstand/HomeOps-Hub/api/gen/homeops"
|
||||||
"google.golang.org/protobuf/types/known/emptypb"
|
"google.golang.org/protobuf/types/known/emptypb"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Server struct {
|
type Server struct {
|
||||||
homeops.UnimplementedHubServer
|
pb.UnimplementedHubServer
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Server) Ping(ctx context.Context, _ *emptypb.Empty) (*homeops.PongResponse, error) {
|
func NewServer() *Server {
|
||||||
return &homeops.PongResponse{Pong: "Huiiii"}, nil
|
return &Server{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Server) Ping(ctx context.Context, _ *emptypb.Empty) (*pb.PongResponse, error) {
|
||||||
|
return &pb.PongResponse{Pong: "Pong"}, nil
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,13 +9,14 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
DBHost string `env:"DB_HOST" env-required:"true"`
|
DBHost string `env:"DB_HOST"`
|
||||||
DBPort int `env:"DB_PORT" env-required:"true"`
|
DBPort int `env:"DB_PORT"`
|
||||||
DBPassword string `env:"DB_PASS" env-required:"true"`
|
DBPassword string `env:"DB_PASS"`
|
||||||
DBUser string `env:"DB_USER" env-required:"true"`
|
DBUser string `env:"DB_USER"`
|
||||||
DBName string `env:"DB_NAME" env-required:"true"`
|
DBName string `env:"DB_NAME"`
|
||||||
LogLevel string `env:"LOG_LEVEL" env-default:"INFO"`
|
LogLevel string `env:"LOG_LEVEL" env-default:"INFO"`
|
||||||
Mode string `env:"MODE" env-default:"DEV"`
|
Mode string `env:"MODE" env-default:"DEV"`
|
||||||
|
Port int `env:"PORT" env-default:"9000"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewConfig() (*Config, error) {
|
func NewConfig() (*Config, error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user