fix mw no wokr for group webhook

This commit is contained in:
Pavel 2024-05-15 00:07:39 +03:00
parent 018febf728
commit 309ecbc67a
4 changed files with 36 additions and 10 deletions

@ -93,11 +93,15 @@ func Run(ctx context.Context, config initialize.Config, logger *zap.Logger) erro
Producer: producer,
})
controller := controllers.NewController(controllers.Deps{
cntrlDeps := controllers.Deps{
Service: svc,
Logger: logger,
Verify: tools.NewVerify(config.IntegrationSecret, config.IntegrationID),
})
}
controller := controllers.NewController(cntrlDeps)
webhookController := controllers.NewWebhookController(cntrlDeps)
workerMethods := workers_methods.NewWorkersMethods(workers_methods.Deps{
Repo: amoRepo,
@ -138,6 +142,7 @@ func Run(ctx context.Context, config initialize.Config, logger *zap.Logger) erro
server := http.NewServer(http.ServerConfig{
Controllers: []http.Controller{
controller,
webhookController,
},
})

@ -38,10 +38,6 @@ func (c *Controller) Register(router fiber.Router) {
router.Post("/account", c.ConnectAccount)
router.Get("/steps", c.GetStepsWithPagination)
router.Patch("/steps", c.UpdateListSteps)
//todo поменять как было GET webhook/create
router.Get("/webhook/create", c.WebhookCreate)
//todo поменять как было webhook/delete
router.Delete("/webhook/delete", c.WebhookDelete)
router.Patch("/pipelines", c.UpdateListPipelines)
router.Get("/pipelines", c.GetPipelinesWithPagination)
router.Patch("/rules/:quizID", c.ChangeQuizSettings)
@ -54,5 +50,30 @@ func (c *Controller) Register(router fiber.Router) {
}
func (c *Controller) Name() string {
return ""
return "amocrm"
}
type WebhookController struct {
service *service.Service
logger *zap.Logger
verify *tools.Verify
}
func NewWebhookController(deps Deps) *WebhookController {
return &WebhookController{
service: deps.Service,
logger: deps.Logger,
verify: deps.Verify,
}
}
func (c *WebhookController) Register(router fiber.Router) {
//todo поменять как было GET webhook/create
router.Get("/create", c.WebhookCreate)
//todo поменять как было webhook/delete
router.Delete("/delete", c.WebhookDelete)
}
func (c *WebhookController) Name() string {
return "webhook"
}

@ -11,7 +11,7 @@ import (
)
// контроллер на который редиректятся ответы по авторизации в амо
func (c *Controller) WebhookCreate(ctx *fiber.Ctx) error {
func (c *WebhookController) WebhookCreate(ctx *fiber.Ctx) error {
code := ctx.Query("code") // Authorization 20 минут
referer := ctx.Query("referer") // адрес аккаунта пользователя
state := ctx.Query("state") // строка которая передавалась в соц аус сервисе
@ -52,7 +52,7 @@ func (c *Controller) WebhookCreate(ctx *fiber.Ctx) error {
}
// todo проверить надо
func (c *Controller) WebhookDelete(ctx *fiber.Ctx) error {
func (c *WebhookController) WebhookDelete(ctx *fiber.Ctx) error {
clientUUID := ctx.Query("client_uuid")
signature := ctx.Query("signature")
amoIDStr := ctx.Query("account_id")

@ -18,7 +18,7 @@ type Server struct {
func NewServer(config ServerConfig) *Server {
app := fiber.New()
app.Use(middleware.JWTAuth())
app.Use("/amocrm", middleware.JWTAuth())
app.Use("/webhook", func(c *fiber.Ctx) error {
return c.Next()
})