check sse good

This commit is contained in:
Pavel 2024-10-01 16:15:39 +03:00
parent eba2e48bc4
commit a4782cb630
6 changed files with 41 additions and 19 deletions

@ -126,6 +126,8 @@ func Run(ctx context.Context, cfg initialize.Config, build Build) error {
} }
}() }()
srv.ListRoutes()
shutdownGroup.Add(closer.CloserFunc(srv.Shutdown)) shutdownGroup.Add(closer.CloserFunc(srv.Shutdown))
//shutdownGroup.Add(closer.CloserFunc(adminServer.Shutdown)) //shutdownGroup.Add(closer.CloserFunc(adminServer.Shutdown))
//shutdownGroup.Add(closer.CloserFunc(grpcServer.Stop)) //shutdownGroup.Add(closer.CloserFunc(grpcServer.Stop))

@ -17,7 +17,6 @@ func (t *TicketController) Register(router fiber.Router) {
router.Post("/vote", t.Vote) router.Post("/vote", t.Vote)
router.Post("/close", t.CloseTicket) router.Post("/close", t.CloseTicket)
router.Post("/shown", t.SetShown) router.Post("/shown", t.SetShown)
} }
func (t *TicketController) Name() string { func (t *TicketController) Name() string {

@ -7,21 +7,26 @@ import (
) )
type Config struct { type Config struct {
MongoURI string `env:"BB_MONGO_URI" envDefault:"mongodb://localhost:27017"` MongoHost string `env:"MONGO_HOST" envDefault:"127.0.0.1"`
MongoPort string `env:"MONGO_PORT" envDefault:"27020"`
MongoUser string `env:"MONGO_USER" envDefault:"test"`
MongoPassword string `env:"MONGO_PASSWORD" envDefault:"test"`
MongoDatabase string `env:"MONGO_DB" envDefault:"admin"`
MongoAuth string `env:"MONGO_AUTH" envDefault:"admin"`
NumberPortLocal string `env:"BB_PORT" envDefault:"1488"` NumberPortLocal string `env:"BB_PORT" envDefault:"1488"`
AccountAddress string `env:"BB_AccountAddress" envDefault:":8931"` AccountAddress string `env:"BB_AccountAddress" envDefault:":8931"`
LoggerDevMode bool `env:"BB_IS_PROD" envDefault:"false"` LoggerDevMode bool `env:"BB_IS_PROD" envDefault:"false"`
MinioEndpoint string `env:"BB_MINIO_EP" envDefault:"minio:9001"` MinioEndpoint string `env:"BB_MINIO_EP" envDefault:"localhost:9005"`
MinioAccessKey string `env:"BB_MINIO_AK" envDefault:"minio"` MinioAccessKey string `env:"BB_MINIO_AK" envDefault:"admin"`
MinioSecretKey string `env:"BB_MINIO_SK" envDefault:"miniostorage"` MinioSecretKey string `env:"BB_MINIO_SK" envDefault:"admin123"`
MinioRegion string `env:"S3_REGION" envDefault:""` MinioRegion string `env:"S3_REGION" envDefault:""`
MinioToken string `env:"BB_MINIO_TOKEN" envDefault:""` MinioToken string `env:"BB_MINIO_TOKEN" envDefault:""`
MongoDbTable string `env:"DATABASE_TABLE" envDefault:"profile"` MongoDbTable string `env:"DATABASE_TABLE" envDefault:"profile"`
MongoCollections string `env:"COLLECTION_NAME" envDefault:"profile,role"` MongoCollections string `env:"COLLECTION_NAME" envDefault:"profile,role"`
TgToken string `env:"TELEGRAM_TOKEN" envDefault:"5851043588:AAGXhigZAaNV1--n-jfS8eBgM7iZ2IDm668"` TgToken string `env:"TELEGRAM_TOKEN" envDefault:"7127966184:AAG1steOCH4wDvHRe9QcsXJPS4dWRyRYsqg"`
RedisHost string `env:"REDIS_HOST" envDefault:"localhost:6379"` RedisHost string `env:"REDIS_HOST" envDefault:"localhost:6379"`
RedisPassword string `env:"REDIS_PASSWORD" envDefault:""` RedisPassword string `env:"REDIS_PASSWORD" envDefault:"admin"`
RedisDB int `env:"REDIS_DB" envDefault:"0"` RedisDB int `env:"REDIS_DB" envDefault:"2"`
TgChatID uint64 `env:"TELEGRAM_CHAT_ID" envDefault:"1001344671794"` TgChatID uint64 `env:"TELEGRAM_CHAT_ID" envDefault:"1001344671794"`
HTTPHost string `env:"HTTP_HOST" envDefault:"localhost"` HTTPHost string `env:"HTTP_HOST" envDefault:"localhost"`
HTTPPort string `env:"HTTP_PORT" envDefault:"3000"` HTTPPort string `env:"HTTP_PORT" envDefault:"3000"`

@ -2,24 +2,37 @@ package initialize
import ( import (
"context" "context"
"fmt"
"go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options" mdb "penahub.gitlab.yandexcloud.net/backend/penahub_common/mongo"
"time" "time"
) )
func MongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) { func MongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) {
dbConfig := &mdb.Configuration{
Host: cfg.MongoHost,
Port: cfg.MongoPort,
User: cfg.MongoUser,
Password: cfg.MongoPassword,
DatabaseName: cfg.MongoDatabase,
Auth: cfg.MongoAuth,
}
newCtx, cancel := context.WithTimeout(ctx, 10*time.Second) newCtx, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel() defer cancel()
clientOptions := options.Client().ApplyURI(cfg.MongoURI)
client, err := mongo.Connect(newCtx, clientOptions) mongoDeps := &mdb.ConnectDeps{
if err != nil { Configuration: dbConfig,
return nil, fmt.Errorf("failed to connect to MongoDB: %w", err) Timeout: 10 * time.Second,
} }
err = client.Ping(newCtx, nil)
db, err := mdb.Connect(newCtx, mongoDeps)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to ping MongoDB: %w", err) return nil, err
} }
db := client.Database(cfg.MongoDbTable) err = db.Client().Ping(newCtx, nil)
if err != nil {
return nil, err
}
return db, nil return db, nil
} }

@ -25,7 +25,10 @@ type Server struct {
func NewServer(config ServerConfig) *Server { func NewServer(config ServerConfig) *Server {
app := fiber.New() app := fiber.New()
app.Use(config.MW.ExtractHostMiddleware, config.MW.MiddlewareLogger, config.MW.MiddlewareJwt, config.MW.MiddlewareRecovery, config.MW.MiddlewareGetJwt, config.MW.MiddlewareOriginAccess) app.Use(config.MW.MiddlewareLogger)
app.Use(config.MW.MiddlewareOriginAccess)
app.Use(config.MW.MiddlewareJwt)
app.Use(config.MW.ExtractHostMiddleware)
s := &Server{ s := &Server{
Logger: config.Logger, Logger: config.Logger,

@ -39,7 +39,7 @@ func SseWrapper(emitter DataEmitter) fiber.Handler {
return ctx.Status(fiber.StatusUnauthorized).SendString("no token") return ctx.Status(fiber.StatusUnauthorized).SendString("no token")
} }
ctx.Status(fiber.StatusOK).Context().SetBodyStreamWriter(func(w *bufio.Writer) { ctx.Context().SetBodyStreamWriter(func(w *bufio.Writer) {
pingTicker := time.NewTicker(5 * time.Second) pingTicker := time.NewTicker(5 * time.Second)
defer pingTicker.Stop() defer pingTicker.Stop()
defer close(dE) defer close(dE)