-
This commit is contained in:
parent
c4beb10b20
commit
80a89df157
243
app/app.go
243
app/app.go
@ -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
4
go.mod
@ -9,7 +9,6 @@ require (
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
||||
github.com/go-redis/redis/v8 v8.11.5
|
||||
github.com/gofiber/fiber/v2 v2.51.0
|
||||
github.com/gorilla/mux v1.8.0
|
||||
github.com/joho/godotenv v1.5.1
|
||||
github.com/minio/minio-go/v7 v7.0.43
|
||||
github.com/rs/xid v1.4.0
|
||||
@ -22,6 +21,7 @@ require (
|
||||
gopkg.in/telebot.v3 v3.3.8
|
||||
gopkg.in/tucnak/telebot.v2 v2.5.0
|
||||
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 (
|
||||
@ -70,6 +70,4 @@ require (
|
||||
google.golang.org/protobuf v1.28.0 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // 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
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.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||
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/caarlos0/env/v8 v8.0.0 h1:POhxHhSpuxrLMIdvTGARuZqR4Jjm8AYmoi/JKlcScs0=
|
||||
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.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/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/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
||||
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/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/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/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.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
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=
|
||||
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/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/go.mod h1:30nezjpGpZuNThbQOCULIfa79RoJ5sray593jhfVP/Q=
|
||||
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()
|
||||
|
||||
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(recoveryWC.Stop))
|
||||
//shutdownGroup.Add(closer.CloserFunc(purgeWC.Stop))
|
||||
|
||||
<-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()
|
||||
}
|
Loading…
Reference in New Issue
Block a user