From d96b5606ff79f8d33c27ef9ca3b28f7fbf3047ee Mon Sep 17 00:00:00 2001 From: Sergey Chubaryan Date: Sun, 23 Feb 2025 20:42:45 +0300 Subject: [PATCH] add service_url field to shortlinks config --- cmd/shortlinks/conf.yml | 1 + cmd/shortlinks/config.go | 6 ++++++ cmd/shortlinks/grpc.go | 2 +- cmd/shortlinks/handlers.go | 14 +++++++++----- cmd/shortlinks/main.go | 6 ++---- 5 files changed, 19 insertions(+), 10 deletions(-) diff --git a/cmd/shortlinks/conf.yml b/cmd/shortlinks/conf.yml index fb50a15..7c8980d 100644 --- a/cmd/shortlinks/conf.yml +++ b/cmd/shortlinks/conf.yml @@ -1,3 +1,4 @@ +service_url: http://localhost:8081 http_port: 8081 grpc_port: 8082 postgres_url: "postgres://postgres:postgres@localhost:5432/postgres" \ No newline at end of file diff --git a/cmd/shortlinks/config.go b/cmd/shortlinks/config.go index a2c6036..707f44b 100644 --- a/cmd/shortlinks/config.go +++ b/cmd/shortlinks/config.go @@ -3,6 +3,7 @@ package main import "backend/pkg/config" type IConfig interface { + GetServiceUrl() string GetHttpPort() uint16 GetGrpcPort() uint16 GetPostgresUrl() string @@ -13,11 +14,16 @@ func LoadConfig(filePath string) (IConfig, error) { } type Config struct { + ServiceUrl string `yaml:"service_url" validate:"required"` HttpPort uint16 `yaml:"http_port" validate:"required"` GrpcPort uint16 `yaml:"grpc_port" validate:"required"` PostgresUrl string `yaml:"postgres_url" validate:"required"` } +func (c *Config) GetServiceUrl() string { + return c.ServiceUrl +} + func (c *Config) GetHttpPort() uint16 { return c.HttpPort } diff --git a/cmd/shortlinks/grpc.go b/cmd/shortlinks/grpc.go index c35bf71..ab23a2f 100644 --- a/cmd/shortlinks/grpc.go +++ b/cmd/shortlinks/grpc.go @@ -10,7 +10,7 @@ import ( func NewShortlinksGrpc(log logger.Logger, shortlinkService services.ShortlinkService, host string) *ShortlinksGrpc { return &ShortlinksGrpc{ - handler: NewCreateHandler(log, shortlinkService, host), + handler: NewShortlinkCreateHandler(log, shortlinkService, host), } } diff --git a/cmd/shortlinks/handlers.go b/cmd/shortlinks/handlers.go index 0af19af..450824d 100644 --- a/cmd/shortlinks/handlers.go +++ b/cmd/shortlinks/handlers.go @@ -19,10 +19,10 @@ type shortlinkCreateOutput struct { Link string `json:"link"` } -func NewCreateHandler( +func NewShortlinkCreateHandler( log logger.Logger, shortlinkService services.ShortlinkService, - host string, + serviceUrl string, ) httpserver.Handler[shortlinkCreateInput, shortlinkCreateOutput] { return func(ctx context.Context, input shortlinkCreateInput) (shortlinkCreateOutput, error) { output := shortlinkCreateOutput{} @@ -39,13 +39,17 @@ func NewCreateHandler( } return shortlinkCreateOutput{ - Link: fmt.Sprintf("%s/s/%s", host, linkId), + Link: fmt.Sprintf("%s/s/%s", serviceUrl, linkId), }, nil } } -func NewShortlinkCreateHandler(log logger.Logger, shortlinkService services.ShortlinkService, host string) gin.HandlerFunc { - return httpserver.WrapGin(log, NewCreateHandler(log, shortlinkService, host)) +func NewShortlinkCreateGinHandler( + log logger.Logger, + shortlinkService services.ShortlinkService, + serviceUrl string, +) gin.HandlerFunc { + return httpserver.WrapGin(log, NewShortlinkCreateHandler(log, shortlinkService, serviceUrl)) } func NewShortlinkResolveHandler(logger logger.Logger, shortlinkService services.ShortlinkService) gin.HandlerFunc { diff --git a/cmd/shortlinks/main.go b/cmd/shortlinks/main.go index f9765ca..28dcc8b 100644 --- a/cmd/shortlinks/main.go +++ b/cmd/shortlinks/main.go @@ -10,7 +10,6 @@ import ( "backend/pkg/cache" "backend/pkg/logger" "context" - "fmt" "sync" "github.com/gin-gonic/gin" @@ -79,7 +78,6 @@ func main() { } func RunServer(ctx context.Context, log logger.Logger, tracer trace.Tracer, conf IConfig, shortlinkService services.ShortlinkService) { - host := fmt.Sprintf("http://localhost:%d", conf.GetHttpPort()) debugMode := true if !debugMode { gin.SetMode(gin.ReleaseMode) @@ -99,13 +97,13 @@ func RunServer(ctx context.Context, log logger.Logger, tracer trace.Tracer, conf r.Use(httpserver.NewTracingMiddleware(tracer)) linkGroup := r.Group("/s") - linkGroup.POST("/new", NewShortlinkCreateHandler(log, shortlinkService, host)) + linkGroup.POST("/new", NewShortlinkCreateGinHandler(log, shortlinkService, conf.GetServiceUrl())) linkGroup.GET("/:linkId", NewShortlinkResolveHandler(log, shortlinkService)) grpcUnderlying := grpc.NewServer() shortlinks.RegisterShortlinksServer( grpcUnderlying, - NewShortlinksGrpc(log, shortlinkService, host), + NewShortlinksGrpc(log, shortlinkService, conf.GetServiceUrl()), ) httpServer := httpserver.New(