This commit is contained in:
Pavel 2024-10-02 11:54:34 +03:00
parent c4beb10b20
commit 80a89df157
5 changed files with 5 additions and 326 deletions

@ -1,243 +0,0 @@
package app
//import (
// "context"
// "errors"
// "fmt"
// "github.com/go-redis/redis/v8"
// "heruvym/dal/minio"
// "heruvym/dal/mongo"
// "heruvym/internal/tools"
// "heruvym/internal/utils/middleware"
// "heruvym/router"
// "heruvym/service"
// "net/http"
// "time"
//
// "github.com/skeris/appInit"
// tb "gopkg.in/tucnak/telebot.v2"
//
// "github.com/themakers/hlog"
// "go.uber.org/zap"
//)
//
//type App struct {
// err chan error
// logger *zap.Logger
//}
//
//const (
// ENV = "env"
// DEFAULT = "default"
//)
//
//type Options struct {
// MongoURI string `env:"BB_MONGO_URI" default:"mongodb://localhost:27017"`
// NumberPortLocal string `env:"BB_PORT" default:"1488"`
// AccountAddress string `env:"BB_AccountAddress" default:":8931"`
// LoggerDevMode bool `env:"BB_IS_PROD" default:"false"`
// MinioEndpoint string `env:"BB_MINIO_EP" default:"minio:9001"`
// MinioAccessKey string `env:"BB_MINIO_AK" default:"minio"`
// MinioSecretKey string `env:"BB_MINIO_SK" default:"miniostorage"`
// MinioRegion string `env:"S3_REGION" default:""`
// MinioToken string `env:"BB_MINIO_TOKEN" default:""`
// MongoDbTable string `env:"DATABASE_TABLE" default:"profile"`
// MongoCollections string `env:"COLLECTION_NAME" default:"profile,role"`
// TgToken string `env:"TELEGRAM_TOKEN" default:"5851043588:AAGXhigZAaNV1--n-jfS8eBgM7iZ2IDm668"`
// RedisHost string `env:"REDIS_HOST" default:"localhost:6379"`
// RedisPassword string `env:"REDIS_PASSWORD" default:""`
// RedisDB uint64 `env:"REDIS_DB" default:"0"`
// TgChatID uint64 `env:"TELEGRAM_CHAT_ID" default:"1001344671794"`
//}
//
//var (
// errInvalidOptions = errors.New("invalid options")
//)
//
//var _ appInit.CommonApp = (*App)(nil)
//
//type InfoSvcStarted struct{}
//type InfoSvcReady struct{}
//type InfoSvcShutdown struct {
// Signal string
//}
//type ErrorStoring struct {
// Err error
// Uri string
//}
//type ErrorCanNotServe struct {
// Err error
//}
//
//var zapOptions = []zap.Option{
// zap.AddCaller(),
// zap.AddCallerSkip(2),
// zap.AddStacktrace(zap.ErrorLevel),
//}
//
//func New(ctx context.Context, opts interface{}, ver appInit.Version) (appInit.CommonApp, error) {
//
// var (
// err error
// zapLogger *zap.Logger
// errChan = make(chan error)
// options Options
// ok bool
// )
// if options, ok = opts.(Options); !ok {
// return App{}, errInvalidOptions
// }
//
// if options.LoggerDevMode {
// zapLogger, err = zap.NewProduction(zapOptions...)
// if err != nil {
// return nil, err
// }
// } else {
// zapLogger, err = zap.NewDevelopment(zapOptions...)
// if err != nil {
// return nil, err
// }
// }
//
// zapLogger = zapLogger.With(
// zap.String("SvcCommit", ver.Commit),
// zap.String("SvcVersion", ver.Release),
// zap.String("SvcBuildTime", ver.BuildTime),
// )
//
// logger := hlog.New(zapLogger)
// logger.Emit(InfoSvcStarted{})
//
// database, err := mongo.New(
// ctx,
// options.MongoURI,
// "support",
// logger,
// )
// if err != nil {
// return nil, err
// }
//
// miniostore, err := minio.New(ctx, logger, options.MinioEndpoint, options.MinioAccessKey, options.MinioSecretKey, options.MinioToken, options.MinioRegion, false)
// if err != nil {
// fmt.Println(err)
// return nil, err
// }
//
// redisClient := redis.NewClient(&redis.Options{
// Addr: options.RedisHost,
// Password: options.RedisPassword,
// DB: int(options.RedisDB),
// })
//
// var newBot *tb.Bot
// newBot, err = tb.NewBot(tb.Settings{
// Token: options.TgToken,
// Verbose: false,
// ParseMode: tb.ModeHTML,
// Poller: &tb.LongPoller{
// Timeout: time.Second,
// },
// })
// if err != nil {
// //logger.Emit(json.Token(err))
// return nil, err
// }
//
// heruvym := service.New(miniostore, database, logger, newBot, -int64(options.TgChatID), redisClient)
//
// mux := router.NewRouter(map[string]http.HandlerFunc{
// "/create": heruvym.CreateTicket,
// "/subscribe": tools.SseWrapper(heruvym.GetList),
// "/ticket": tools.SseWrapper(heruvym.Subscribe),
// "/send": tools.HandlerWrapper(heruvym.PutMessage),
// "/requestScreenshot": tools.HandlerWrapper(heruvym.RequestScreenshot),
// "/sendFiles": heruvym.PutFile,
// "/sendSC": heruvym.PutSC,
// "/getTickets": tools.HandlerWrapper(heruvym.GetTickets),
// "/getMessages": tools.HandlerWrapper(heruvym.GetMessages),
// "/pick": tools.HandlerWrapper(heruvym.Pick),
// "/delegate": tools.HandlerWrapper(heruvym.Delegate),
// "/vote": tools.HandlerWrapper(heruvym.Vote),
// "/close": tools.HandlerWrapper(heruvym.CloseTicket),
// "/shown": tools.HandlerWrapper(heruvym.SetShown),
// })
//
// mw := middleware.NewMiddleware(
// logger,
// "*",
// nil,
// )
//
// mux.Use(
// func(handler http.Handler) http.Handler {
// return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// // w.Header().Set("Access-Control-Allow-Origin", r.Header["Origin"][0])
// // w.Header().Set("Access-Control-Allow-Credentials", "true")
// // w.Header().Set("Access-Control-Allow-Headers", "content-type")
// // w.Header().Set("Access-Control-Expose-Headers", "*")
// if r.Method == http.MethodOptions {
// return
// }
// handler.ServeHTTP(w, r)
// })
// },
// mw.MiddlewareLogger,
// //mw.MiddlewareOriginAccess,
// mw.MiddlewareRecovery,
// mw.MiddlewareJwt,
// mw.MiddlewareGetJwt,
// //mw.MiddlewareJwtPlug,
// //mw.MiddlewareRoleAccess,
// mw.ExtractHostMiddleware,
// )
// fmt.Println("mux")
// server := &http.Server{
// Handler: mux,
// Addr: fmt.Sprintf(":%s", options.NumberPortLocal),
// }
//
// go func() {
// defer func() {
// if err := server.Shutdown(ctx); err != nil {
// errChan <- err
// }
// }()
//
// logger.Emit(InfoSvcStarted{})
// tmplKey := "%s.key"
// tmplCrt := "%s.crt"
//
// tmplCrt = fmt.Sprintf(tmplCrt, "prod")
// tmplKey = fmt.Sprintf(tmplKey, "prod")
//
// fmt.Println("ISPROd", options.LoggerDevMode)
// if options.LoggerDevMode {
// if err := server.ListenAndServeTLS(tmplCrt, tmplKey); err != nil {
// logger.Emit(ErrorCanNotServe{
// Err: err,
// })
// errChan <- err
// }
// } else {
// fmt.Println("startserver" + options.NumberPortLocal)
// if err := server.ListenAndServe(); err != nil {
// errChan <- err
// }
// }
// }()
//
// return &App{
// logger: zapLogger,
// err: errChan,
// }, nil
//}
//
//func (a App) GetLogger() *zap.Logger {
// return a.logger
//}
//
//func (a App) GetErr() chan error {
// return a.err
//}

4
go.mod

@ -9,7 +9,6 @@ require (
github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/dgrijalva/jwt-go v3.2.0+incompatible
github.com/go-redis/redis/v8 v8.11.5 github.com/go-redis/redis/v8 v8.11.5
github.com/gofiber/fiber/v2 v2.51.0 github.com/gofiber/fiber/v2 v2.51.0
github.com/gorilla/mux v1.8.0
github.com/joho/godotenv v1.5.1 github.com/joho/godotenv v1.5.1
github.com/minio/minio-go/v7 v7.0.43 github.com/minio/minio-go/v7 v7.0.43
github.com/rs/xid v1.4.0 github.com/rs/xid v1.4.0
@ -22,6 +21,7 @@ require (
gopkg.in/telebot.v3 v3.3.8 gopkg.in/telebot.v3 v3.3.8
gopkg.in/tucnak/telebot.v2 v2.5.0 gopkg.in/tucnak/telebot.v2 v2.5.0
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240804072029-436a9f848461 penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240804072029-436a9f848461
penahub.gitlab.yandexcloud.net/external/trashlog v0.1.6-0.20240915070307-5111f41445b3
) )
require ( require (
@ -70,6 +70,4 @@ require (
google.golang.org/protobuf v1.28.0 // indirect google.golang.org/protobuf v1.28.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect
penahub.gitlab.yandexcloud.net/devops/linters/golang.git v0.0.0-20240827173819-1561c532e463 // indirect
penahub.gitlab.yandexcloud.net/external/trashlog v0.1.6-0.20240915070307-5111f41445b3 // indirect
) )

10
go.sum

@ -77,6 +77,7 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk=
github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4=
github.com/caarlos0/env/v8 v8.0.0 h1:POhxHhSpuxrLMIdvTGARuZqR4Jjm8AYmoi/JKlcScs0= github.com/caarlos0/env/v8 v8.0.0 h1:POhxHhSpuxrLMIdvTGARuZqR4Jjm8AYmoi/JKlcScs0=
github.com/caarlos0/env/v8 v8.0.0/go.mod h1:7K4wMY9bH0esiXSSHlfHLX5xKGQMnkH5Fk4TDSSSzfo= github.com/caarlos0/env/v8 v8.0.0/go.mod h1:7K4wMY9bH0esiXSSHlfHLX5xKGQMnkH5Fk4TDSSSzfo=
@ -241,8 +242,6 @@ github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/Oth
github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM=
github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c=
github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0= github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0=
@ -371,7 +370,10 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas=
github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I=
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
github.com/pioz/faker v1.7.2 h1:fterUcYCbMJ4TgFN8DSqhlwkgbSn9DfsQM1cadbPPw0=
github.com/pioz/faker v1.7.2/go.mod h1:xSpay5w/oz1a6+ww0M3vfpe40pSIykeUPeWEc3TvVlc=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@ -1008,10 +1010,6 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240804072029-436a9f848461 h1:Qfgv2eitRRtbM4/THFi1ZopdkurTItYpE/j/IEL1/ws= penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240804072029-436a9f848461 h1:Qfgv2eitRRtbM4/THFi1ZopdkurTItYpE/j/IEL1/ws=
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240804072029-436a9f848461/go.mod h1:+bPxq2wfW5S1gd+83vZYmHm33AE7nEBfznWS8AM1TKE= penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240804072029-436a9f848461/go.mod h1:+bPxq2wfW5S1gd+83vZYmHm33AE7nEBfznWS8AM1TKE=
penahub.gitlab.yandexcloud.net/devops/linters/golang.git v0.0.0-20240827173819-1561c532e463 h1:Pz86cnhDTWNd+4nICjGtbNnIRjIIGnyOxn5iRx0qVKY=
penahub.gitlab.yandexcloud.net/devops/linters/golang.git v0.0.0-20240827173819-1561c532e463/go.mod h1:i7M72RIpkSjcQtHID6KKj9RT/EYZ1rxS6tIPKWa/BSY=
penahub.gitlab.yandexcloud.net/external/trashlog v0.1.6-0.20240827173635-78ce9878c387 h1:G+GIhkkvUsM9No2rf2D4kvQ2ExTw9KxlA8vsSnC0ywU=
penahub.gitlab.yandexcloud.net/external/trashlog v0.1.6-0.20240827173635-78ce9878c387/go.mod h1:30nezjpGpZuNThbQOCULIfa79RoJ5sray593jhfVP/Q=
penahub.gitlab.yandexcloud.net/external/trashlog v0.1.6-0.20240915070307-5111f41445b3 h1:ORXNLpt4WerSOPkgDcpXisexEkKHjOA3PJ2ojQOZyyQ= penahub.gitlab.yandexcloud.net/external/trashlog v0.1.6-0.20240915070307-5111f41445b3 h1:ORXNLpt4WerSOPkgDcpXisexEkKHjOA3PJ2ojQOZyyQ=
penahub.gitlab.yandexcloud.net/external/trashlog v0.1.6-0.20240915070307-5111f41445b3/go.mod h1:30nezjpGpZuNThbQOCULIfa79RoJ5sray593jhfVP/Q= penahub.gitlab.yandexcloud.net/external/trashlog v0.1.6-0.20240915070307-5111f41445b3/go.mod h1:30nezjpGpZuNThbQOCULIfa79RoJ5sray593jhfVP/Q=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=

@ -129,11 +129,7 @@ func Run(ctx context.Context, cfg initialize.Config, build Build) error {
srv.ListRoutes() srv.ListRoutes()
shutdownGroup.Add(closer.CloserFunc(srv.Shutdown)) shutdownGroup.Add(closer.CloserFunc(srv.Shutdown))
//shutdownGroup.Add(closer.CloserFunc(adminServer.Shutdown))
//shutdownGroup.Add(closer.CloserFunc(grpcServer.Stop))
shutdownGroup.Add(closer.CloserFunc(mdb.Client().Disconnect)) shutdownGroup.Add(closer.CloserFunc(mdb.Client().Disconnect))
//shutdownGroup.Add(closer.CloserFunc(recoveryWC.Stop))
//shutdownGroup.Add(closer.CloserFunc(purgeWC.Stop))
<-ctx.Done() <-ctx.Done()

@ -1,70 +0,0 @@
package middleware
import (
"github.com/gofiber/fiber/v2"
"github.com/rs/xid"
"heruvym/internal/utils/jwt_adapter"
"strings"
"time"
)
func JwtPlug(c *fiber.Ctx) error {
adapter := &jwt_adapter.JwtAdapter{Id: "604b79aced1d431b9e911f56"}
adapter.SetUserID("604b79aced1d431b9e911f56")
c.Locals("adapter", adapter)
c.Locals("role", "admin")
return c.Next()
}
// todo оказывается то что и хттп я переписал, ну надо убрать потом думаю
func Jwt(c *fiber.Ctx) error {
var (
token, role string
adapter *jwt_adapter.JwtAdapter
err error
)
switch c.Get("Referer") {
case "admin.pena.digital":
role = "admin"
default:
role = "user"
}
c.Locals(jwt_adapter.RoleKey, role)
token = c.Cookies(jwt_adapter.DefaultHeaderKey)
if token == "" {
token = strings.Replace(c.Get(jwt_adapter.DefaultHeaderKey), "Bearer ", "", -1)
}
// Если jwt не обнаружен, ищем sessionKey
token = c.Get(sessionKey)
if token == "" {
session := c.Cookies(sessionKey)
if token == "" {
id := xid.New().String()
adapter = &jwt_adapter.JwtAdapter{Id: id}
c.Cookie(&fiber.Cookie{
Name: sessionKey,
Value: id,
Expires: time.Now().Add(time.Hour * 24 * 30),
})
} else {
adapter = &jwt_adapter.JwtAdapter{Id: session}
}
} else {
adapter, err = jwt_adapter.Decode(token)
}
if err != nil {
return c.SendStatus(fiber.StatusUnauthorized)
}
c.Locals("adapter", adapter)
return c.Next()
}