change init routes in server
This commit is contained in:
parent
9adc2f6465
commit
a6f1bdfb68
2
.env
2
.env
@ -5,7 +5,7 @@ HTTP_PORT="8080"
|
||||
|
||||
# MongoDB settings
|
||||
MONGO_HOST="127.0.0.1"
|
||||
MONGO_PORT="27020"
|
||||
MONGO_PORT="27021"
|
||||
MONGO_USER="test"
|
||||
MONGO_PASSWORD="test"
|
||||
MONGO_DB="admin"
|
||||
|
@ -12,7 +12,6 @@ import (
|
||||
"codeword/pkg/closer"
|
||||
"context"
|
||||
"errors"
|
||||
"github.com/twmb/franz-go/pkg/kgo"
|
||||
"go.uber.org/zap"
|
||||
"time"
|
||||
)
|
||||
@ -42,26 +41,26 @@ func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
|
||||
return err
|
||||
}
|
||||
|
||||
kafkaTariffClient, err := kgo.NewClient(
|
||||
kgo.SeedBrokers(cfg.KafkaBrokers),
|
||||
kgo.ConsumeResetOffset(kgo.NewOffset().AtStart()),
|
||||
kgo.DefaultProduceTopic(cfg.KafkaTopic),
|
||||
)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
//kafkaTariffClient, err := kgo.NewClient(
|
||||
// kgo.SeedBrokers(cfg.KafkaBrokers),
|
||||
// kgo.ConsumeResetOffset(kgo.NewOffset().AtStart()),
|
||||
// kgo.DefaultProduceTopic(cfg.KafkaTopic),
|
||||
//)
|
||||
//if err != nil {
|
||||
// return err
|
||||
//}
|
||||
|
||||
discountRpcClient, err := initialize.DiscountGRPCClient(cfg.DiscountServiceAddress)
|
||||
if err != nil {
|
||||
logger.Error("failed to connect to discount service", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
|
||||
brokers := initialize.NewBrokers(initialize.BrokersDeps{
|
||||
Logger: logger,
|
||||
TariffClient: kafkaTariffClient,
|
||||
Topic: cfg.KafkaTopic,
|
||||
})
|
||||
//discountRpcClient, err := initialize.DiscountGRPCClient(cfg.DiscountServiceAddress)
|
||||
//if err != nil {
|
||||
// logger.Error("failed to connect to discount service", zap.Error(err))
|
||||
// return err
|
||||
//}
|
||||
//
|
||||
//brokers := initialize.NewBrokers(initialize.BrokersDeps{
|
||||
// Logger: logger,
|
||||
// TariffClient: kafkaTariffClient,
|
||||
// Topic: cfg.KafkaTopic,
|
||||
//})
|
||||
|
||||
rdb, err := initialize.Redis(ctx, cfg)
|
||||
encrypt := initialize.Encrypt(cfg)
|
||||
@ -86,8 +85,8 @@ func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
|
||||
Logger: logger,
|
||||
PromoCodeRepo: promoCodeRepo,
|
||||
StatsRepo: statsRepo,
|
||||
Kafka: brokers.TariffProducer,
|
||||
DiscountClient: discountRpcClient,
|
||||
//Kafka: brokers.TariffProducer,
|
||||
//DiscountClient: discountRpcClient,
|
||||
})
|
||||
|
||||
recoveryController := recovery.NewRecoveryController(logger, recoveryService, cfg.DefaultRedirectionURL)
|
||||
@ -110,8 +109,7 @@ func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
|
||||
|
||||
server := httpserver.NewServer(httpserver.ServerConfig{
|
||||
Logger: logger,
|
||||
RecoveryController: recoveryController,
|
||||
PromoCodeController: promoCodeController,
|
||||
Controllers: []httpserver.Controller{recoveryController, promoCodeController},
|
||||
})
|
||||
|
||||
go func() {
|
||||
@ -121,6 +119,8 @@ func Run(ctx context.Context, cfg initialize.Config, logger *zap.Logger) error {
|
||||
}
|
||||
}()
|
||||
|
||||
server.ListRoutes()
|
||||
|
||||
shutdownGroup.Add(closer.CloserFunc(server.Shutdown))
|
||||
shutdownGroup.Add(closer.CloserFunc(mdb.Client().Disconnect))
|
||||
shutdownGroup.Add(closer.CloserFunc(recoveryWC.Stop))
|
||||
|
18
internal/controller/promocode/route.go
Normal file
18
internal/controller/promocode/route.go
Normal file
@ -0,0 +1,18 @@
|
||||
package promocode
|
||||
|
||||
import "github.com/gofiber/fiber/v2"
|
||||
|
||||
func (p *PromoCodeController) Register(router fiber.Router) {
|
||||
router.Post("/create", p.CreatePromoCode)
|
||||
router.Put("/edit", p.EditPromoCode)
|
||||
router.Post("/getList", p.GetList)
|
||||
router.Post("/activate", p.Activate)
|
||||
router.Delete("/:promocodeID", p.Delete)
|
||||
router.Post("/fastlink", p.CreateFastLink)
|
||||
router.Get("/stats", p.GetAllStats)
|
||||
|
||||
}
|
||||
|
||||
func (p *PromoCodeController) Name() string {
|
||||
return "promocode"
|
||||
}
|
@ -26,6 +26,10 @@ func NewRecoveryController(logger *zap.Logger, service *services.RecoveryService
|
||||
}
|
||||
}
|
||||
|
||||
func (r *RecoveryController) HandleLiveness(c *fiber.Ctx) error {
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
||||
func (r *RecoveryController) HandlePingDB(c *fiber.Ctx) error {
|
||||
startTime := time.Now()
|
||||
if err := r.service.Ping(c.Context()); err != nil {
|
||||
|
14
internal/controller/recovery/route.go
Normal file
14
internal/controller/recovery/route.go
Normal file
@ -0,0 +1,14 @@
|
||||
package recovery
|
||||
|
||||
import "github.com/gofiber/fiber/v2"
|
||||
|
||||
func (r *RecoveryController) Register(router fiber.Router) {
|
||||
router.Get("/liveness", r.HandleLiveness)
|
||||
router.Get("/readiness", r.HandlePingDB)
|
||||
router.Post("/recover", r.HandleRecoveryRequest)
|
||||
router.Get("/recover/:sign", r.HandleRecoveryLink)
|
||||
}
|
||||
|
||||
func (r *RecoveryController) Name() string {
|
||||
return ""
|
||||
}
|
@ -1,23 +1,20 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"codeword/internal/controller/promocode"
|
||||
"codeword/internal/controller/recovery"
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type ServerConfig struct {
|
||||
Logger *zap.Logger
|
||||
RecoveryController *recovery.RecoveryController
|
||||
PromoCodeController *promocode.PromoCodeController
|
||||
Controllers []Controller
|
||||
}
|
||||
|
||||
type Server struct {
|
||||
Logger *zap.Logger
|
||||
RecoveryController *recovery.RecoveryController
|
||||
PromoCodeController *promocode.PromoCodeController
|
||||
Controllers []Controller
|
||||
app *fiber.App
|
||||
}
|
||||
|
||||
@ -26,8 +23,7 @@ func NewServer(config ServerConfig) *Server {
|
||||
|
||||
s := &Server{
|
||||
Logger: config.Logger,
|
||||
RecoveryController: config.RecoveryController,
|
||||
PromoCodeController: config.PromoCodeController,
|
||||
Controllers: config.Controllers,
|
||||
app: app,
|
||||
}
|
||||
|
||||
@ -49,22 +45,22 @@ func (s *Server) Shutdown(ctx context.Context) error {
|
||||
}
|
||||
|
||||
func (s *Server) registerRoutes() {
|
||||
s.app.Get("/liveness", s.handleLiveness)
|
||||
s.app.Get("/readiness", s.RecoveryController.HandlePingDB)
|
||||
|
||||
s.app.Post("/recover", s.RecoveryController.HandleRecoveryRequest)
|
||||
s.app.Get("/recover/:sign", s.RecoveryController.HandleRecoveryLink)
|
||||
|
||||
s.app.Post("/promocode/create", s.PromoCodeController.CreatePromoCode)
|
||||
s.app.Put("/promocode/edit", s.PromoCodeController.EditPromoCode)
|
||||
s.app.Post("/promocode/getList", s.PromoCodeController.GetList)
|
||||
s.app.Post("/promocode/activate", s.PromoCodeController.Activate)
|
||||
s.app.Delete("/promocode/:promocodeID", s.PromoCodeController.Delete)
|
||||
s.app.Post("/promocode/fastlink", s.PromoCodeController.CreateFastLink)
|
||||
s.app.Get("/promocode/stats", s.PromoCodeController.GetAllStats)
|
||||
//... other
|
||||
for _, c := range s.Controllers {
|
||||
router := s.app.Group(c.Name())
|
||||
c.Register(router)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Server) handleLiveness(c *fiber.Ctx) error {
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
type Controller interface {
|
||||
Register(router fiber.Router)
|
||||
Name() string
|
||||
}
|
||||
|
||||
func (s *Server) ListRoutes() {
|
||||
fmt.Println("Registered routes:")
|
||||
for _, stack := range s.app.Stack() {
|
||||
for _, route := range stack {
|
||||
fmt.Printf("%s %s\n", route.Method, route.Path)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user