delete base user log data and movw mw to common pj
This commit is contained in:
parent
0576d3d45f
commit
314186e921
4
go.mod
4
go.mod
@ -14,11 +14,11 @@ require (
|
||||
github.com/stretchr/testify v1.8.4
|
||||
github.com/twmb/franz-go v1.15.4
|
||||
go.mongodb.org/mongo-driver v1.13.1
|
||||
go.uber.org/zap v1.26.0
|
||||
go.uber.org/zap v1.27.0
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac
|
||||
google.golang.org/grpc v1.60.1
|
||||
google.golang.org/protobuf v1.32.0
|
||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d
|
||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240607142502-8257e6c4aa5a
|
||||
)
|
||||
|
||||
require (
|
||||
|
3
go.sum
3
go.sum
@ -161,6 +161,7 @@ go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
|
||||
go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI=
|
||||
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
|
||||
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
|
||||
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
@ -287,5 +288,7 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d h1:gbaDt35HMDqOK84WYmDIlXMI7rstUcRqNttaT6Kx1do=
|
||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240202120244-c4ef330cfe5d/go.mod h1:lTmpjry+8evVkXWbEC+WMOELcFkRD1lFMc7J09mOndM=
|
||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240607142502-8257e6c4aa5a h1:dGW8ErUVdwGJBq6uc5AHYn6Yt10CDNkMIpV+yrDDTLs=
|
||||
penahub.gitlab.yandexcloud.net/backend/penahub_common v0.0.0-20240607142502-8257e6c4aa5a/go.mod h1:+bPxq2wfW5S1gd+83vZYmHm33AE7nEBfznWS8AM1TKE=
|
||||
penahub.gitlab.yandexcloud.net/external/trashlog.git v0.1.2-0.20240523172059-9bbe8a9faa31 h1:WlRVJnzU0sti+qBq/JTCgFPU0RoxIqGHu7hzDirxE2k=
|
||||
penahub.gitlab.yandexcloud.net/external/trashlog.git v0.1.2-0.20240523172059-9bbe8a9faa31/go.mod h1:3ml0dAGT8U8RhpevKBfRgG6yKZum8EI2uJxAb2WCIy4=
|
||||
|
@ -9,7 +9,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"go.uber.org/zap"
|
||||
"strings"
|
||||
"penahub.gitlab.yandexcloud.net/backend/penahub_common/log_mw"
|
||||
)
|
||||
|
||||
type Deps struct {
|
||||
@ -31,7 +31,7 @@ func NewPromoCodeController(deps Deps) *PromoCodeController {
|
||||
|
||||
func (p *PromoCodeController) CreatePromoCode(c *fiber.Ctx) error {
|
||||
userID := middleware.ExtractUserID(c)
|
||||
hlogger := middleware.ExtractLogger(c)
|
||||
hlogger := log_mw.ExtractLogger(c)
|
||||
var req models.PromoCode
|
||||
if err := c.BodyParser(&req); err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Invalid request payload"})
|
||||
@ -79,10 +79,6 @@ func (p *PromoCodeController) CreatePromoCode(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
hlogger.Emit(models.InfoPromocodeCreated{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: createdPromoCode.ID.String(),
|
||||
CtxUserID: userID,
|
||||
KeyType: keyType,
|
||||
@ -98,7 +94,7 @@ func (p *PromoCodeController) CreatePromoCode(c *fiber.Ctx) error {
|
||||
|
||||
func (p *PromoCodeController) EditPromoCode(c *fiber.Ctx) error {
|
||||
userID := middleware.ExtractUserID(c)
|
||||
hlogger := middleware.ExtractLogger(c)
|
||||
hlogger := log_mw.ExtractLogger(c)
|
||||
|
||||
var req models.ReqEditPromoCode
|
||||
if err := c.BodyParser(&req); err != nil {
|
||||
@ -147,10 +143,6 @@ func (p *PromoCodeController) EditPromoCode(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
hlogger.Emit(models.InfoPromocodeUpdated{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: editedPromoCode.ID.String(),
|
||||
CtxUserID: userID,
|
||||
KeyType: keyType,
|
||||
@ -184,7 +176,7 @@ func (p *PromoCodeController) GetList(c *fiber.Ctx) error {
|
||||
|
||||
func (p *PromoCodeController) Activate(c *fiber.Ctx) error {
|
||||
userID := middleware.ExtractUserID(c)
|
||||
hlogger := middleware.ExtractLogger(c)
|
||||
hlogger := log_mw.ExtractLogger(c)
|
||||
fmt.Println("SKER1", userID)
|
||||
if userID == "" {
|
||||
return c.Status(fiber.StatusUnauthorized).JSON(fiber.Map{"error": "failed to get jwt payload"})
|
||||
@ -212,20 +204,13 @@ func (p *PromoCodeController) Activate(c *fiber.Ctx) error {
|
||||
return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": "PromoCode already activated"})
|
||||
case errors.Is(err, repository.ErrPromoCodeExpired):
|
||||
hlogger.Emit(models.InfoPromocodeDeadlined{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: promocode.ID.String(),
|
||||
|
||||
CtxID: promocode.ID.String(),
|
||||
})
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": err.Error()})
|
||||
case errors.Is(err, repository.ErrPromoCodeExhausted):
|
||||
hlogger.Emit(models.InfoPromocodeExhausted{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: promocode.ID.String(),
|
||||
CtxID: promocode.ID.String(),
|
||||
})
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "PromoCode exhausted"})
|
||||
default:
|
||||
@ -235,20 +220,12 @@ func (p *PromoCodeController) Activate(c *fiber.Ctx) error {
|
||||
|
||||
if req.Codeword != "" {
|
||||
hlogger.Emit(models.InfoPromocodeActivated{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: promocode.ID.String(),
|
||||
CtxUserID: userID,
|
||||
CtxCode: req.Codeword,
|
||||
CtxID: promocode.ID.String(),
|
||||
CtxUserID: userID,
|
||||
CtxCode: req.Codeword,
|
||||
})
|
||||
} else if req.FastLink != "" {
|
||||
hlogger.Emit(models.InfoFastlinkActivated{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: promocode.ID.String(),
|
||||
CtxUserID: userID,
|
||||
CtxPromocodeID: req.FastLink,
|
||||
@ -260,7 +237,7 @@ func (p *PromoCodeController) Activate(c *fiber.Ctx) error {
|
||||
|
||||
func (p *PromoCodeController) Delete(c *fiber.Ctx) error {
|
||||
userID := middleware.ExtractUserID(c)
|
||||
hlogger := middleware.ExtractLogger(c)
|
||||
hlogger := log_mw.ExtractLogger(c)
|
||||
|
||||
promoCodeID := c.Params("promocodeID")
|
||||
if promoCodeID == "" {
|
||||
@ -279,12 +256,8 @@ func (p *PromoCodeController) Delete(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
hlogger.Emit(models.InfoPromocodeDeleted{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: promoCodeID,
|
||||
CtxUserID: userID,
|
||||
CtxID: promoCodeID,
|
||||
CtxUserID: userID,
|
||||
})
|
||||
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
@ -292,7 +265,7 @@ func (p *PromoCodeController) Delete(c *fiber.Ctx) error {
|
||||
|
||||
func (p *PromoCodeController) CreateFastLink(c *fiber.Ctx) error {
|
||||
userID := middleware.ExtractUserID(c)
|
||||
hlogger := middleware.ExtractLogger(c)
|
||||
hlogger := log_mw.ExtractLogger(c)
|
||||
|
||||
var req struct {
|
||||
PromoCodeID string `json:"id"`
|
||||
@ -317,10 +290,6 @@ func (p *PromoCodeController) CreateFastLink(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
hlogger.Emit(models.InfoFastlinkCreated{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: fastLink,
|
||||
CtxPromocodeID: req.PromoCodeID,
|
||||
CtxUserID: userID,
|
||||
|
@ -4,13 +4,12 @@ import (
|
||||
"codeword/internal/models"
|
||||
"codeword/internal/repository"
|
||||
"codeword/internal/services"
|
||||
"codeword/internal/utils/middleware"
|
||||
"encoding/base64"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"go.uber.org/zap"
|
||||
"strings"
|
||||
"penahub.gitlab.yandexcloud.net/backend/penahub_common/log_mw"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -56,7 +55,7 @@ func (r *RecoveryController) HandlePingDB(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
func (r *RecoveryController) HandleRecoveryRequest(c *fiber.Ctx) error {
|
||||
hlogger := middleware.ExtractLogger(c)
|
||||
hlogger := log_mw.ExtractLogger(c)
|
||||
var req models.RecoveryRequest
|
||||
if err := c.BodyParser(&req); err != nil {
|
||||
r.logger.Error("Failed to parse recovery request", zap.Error(err))
|
||||
@ -115,10 +114,6 @@ func (r *RecoveryController) HandleRecoveryRequest(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
hlogger.Emit(models.InfoPasswordRestorationRequested{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: id,
|
||||
CtxUserID: user.ID.Hex(),
|
||||
CtxReturnURL: r.recoveryURL + signWithID,
|
||||
@ -129,7 +124,7 @@ func (r *RecoveryController) HandleRecoveryRequest(c *fiber.Ctx) error {
|
||||
}
|
||||
|
||||
func (r *RecoveryController) HandleRecoveryLink(c *fiber.Ctx) error {
|
||||
hlogger := middleware.ExtractLogger(c)
|
||||
hlogger := log_mw.ExtractLogger(c)
|
||||
sign := c.Params("sign")
|
||||
|
||||
record, err := r.service.GetRecoveryRecord(c.Context(), sign)
|
||||
@ -167,12 +162,8 @@ func (r *RecoveryController) HandleRecoveryLink(c *fiber.Ctx) error {
|
||||
})
|
||||
|
||||
hlogger.Emit(models.InfoPasswordRestored{
|
||||
CtxUserIP: c.IP(),
|
||||
CtxUserPort: c.Port(),
|
||||
KeyDomain: strings.Join(c.Subdomains(), "/"),
|
||||
KeyPath: c.Path(),
|
||||
CtxID: record.ID.String(),
|
||||
CtxUserID: record.UserID,
|
||||
CtxID: record.ID.String(),
|
||||
CtxUserID: record.UserID,
|
||||
})
|
||||
|
||||
return c.Redirect(record.SignUrl + "?auth=" + tokens["accessToken"])
|
||||
|
@ -12,4 +12,3 @@ type RefreshResponse struct {
|
||||
|
||||
const AuthJWTDecodedUserIDKey = "userID"
|
||||
const AuthJWTDecodedAccessTokenKey = "access-token"
|
||||
const LoggerKey = "logger"
|
||||
|
@ -19,10 +19,6 @@ type AllFields struct {
|
||||
}
|
||||
|
||||
type InfoPromocodeCreated struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник созданного промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
KeyType string //привилегия или скидка. или и то и другое, смотря что заполнено
|
||||
@ -33,27 +29,15 @@ type InfoPromocodeCreated struct {
|
||||
CtxCode string
|
||||
}
|
||||
type InfoFastlinkCreated struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник созданного промокода
|
||||
CtxPromocodeID string //айдишник созданного промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
}
|
||||
type InfoPromocodeDeleted struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник созданного промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
CtxID string //айдишник созданного промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
}
|
||||
type InfoPromocodeUpdated struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
KeyType string //привилегия или скидка. или и то и другое, смотря что заполнено
|
||||
@ -64,52 +48,28 @@ type InfoPromocodeUpdated struct {
|
||||
CtxCode string
|
||||
}
|
||||
type InfoPromocodeActivated struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
CtxCode string
|
||||
CtxID string //айдишник промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
CtxCode string
|
||||
}
|
||||
type InfoFastlinkActivated struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
CtxPromocodeID string //айдишник созданного промокода
|
||||
}
|
||||
type InfoPromocodeExhausted struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник промокода
|
||||
CtxID string //айдишник промокода
|
||||
}
|
||||
type InfoPromocodeDeadlined struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник промокода
|
||||
CtxID string //айдишник промокода
|
||||
}
|
||||
type InfoPasswordRestorationRequested struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
CtxReturnURL string // ссылка на восстановление пароля
|
||||
CtxEmail string
|
||||
}
|
||||
type InfoPasswordRestored struct {
|
||||
CtxUserIP string
|
||||
CtxUserPort string
|
||||
KeyDomain string
|
||||
KeyPath string
|
||||
CtxID string //айдишник промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
CtxID string //айдишник промокода
|
||||
CtxUserID string //айдишник юзера из токена
|
||||
}
|
||||
|
@ -7,6 +7,7 @@ import (
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/themakers/hlog"
|
||||
"go.uber.org/zap"
|
||||
"penahub.gitlab.yandexcloud.net/backend/penahub_common/log_mw"
|
||||
)
|
||||
|
||||
type ServerConfig struct {
|
||||
@ -24,7 +25,7 @@ type Server struct {
|
||||
|
||||
func NewServer(config ServerConfig) *Server {
|
||||
app := fiber.New()
|
||||
app.Use(middleware.ContextLogger(config.Hlogger))
|
||||
app.Use(log_mw.ContextLogger(config.Hlogger))
|
||||
app.Use("/promocode", middleware.NewAuthenticator(config.JWT))
|
||||
s := &Server{
|
||||
Logger: config.Logger,
|
||||
|
@ -1,19 +0,0 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"codeword/internal/models"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/themakers/hlog"
|
||||
)
|
||||
|
||||
func ContextLogger(logger hlog.Logger) fiber.Handler {
|
||||
return func(c *fiber.Ctx) error {
|
||||
c.Locals(models.LoggerKey, logger)
|
||||
return c.Next()
|
||||
}
|
||||
}
|
||||
|
||||
func ExtractLogger(c *fiber.Ctx) hlog.Logger {
|
||||
logger := c.Context().UserValue(models.LoggerKey).(hlog.Logger)
|
||||
return logger
|
||||
}
|
Loading…
Reference in New Issue
Block a user