refractor: hub conn

This commit is contained in:
2026-04-04 21:16:39 +03:00
parent 02f6bb6813
commit 602175481f
5 changed files with 61 additions and 10 deletions
+1
View File
@@ -0,0 +1 @@
.env
+5
View File
@@ -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
View File
@@ -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
}
} }
+8 -4
View File
@@ -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
} }
+6 -5
View File
@@ -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) {