Skip to content

Commit

Permalink
automatic error reporting fiber
Browse files Browse the repository at this point in the history
  • Loading branch information
dawkaka committed Mar 25, 2024
1 parent 28463bd commit a0c9c39
Showing 1 changed file with 26 additions and 7 deletions.
33 changes: 26 additions & 7 deletions fiber.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package apitoolkit

import (
"context"
"errors"
"time"

fiber "github.com/gofiber/fiber/v2"
Expand All @@ -22,17 +23,35 @@ func (c *Client) FiberMiddleware(ctx *fiber.Ctx) error {
newCtx = context.WithValue(newCtx, CurrentRequestMessageID, msgID)
ctx.SetUserContext(newCtx)

start := time.Now()

if err := ctx.Next(); err != nil {
return err
}

respHeaders := map[string][]string{}
for k, v := range ctx.GetRespHeaders() {
respHeaders[k] = v
}

start := time.Now()
defer func() {
if err := recover(); err != nil {
if _, ok := err.(error); !ok {
err = errors.New(err.(string))
}
ReportError(ctx.UserContext(), err.(error))
payload := c.buildFastHTTPPayload(GoFiberSDKType, start,
ctx.Context(), 500,
ctx.Request().Body(), ctx.Response().Body(), respHeaders,
ctx.AllParams(), ctx.Route().Path,
c.config.RedactHeaders, c.config.RedactRequestBody, c.config.RedactResponseBody,
errorList,
msgID,
nil,
string(ctx.Context().Referer()),
)
c.PublishMessage(ctx.Context(), payload)
panic(err)
}
}()

err := ctx.Next()

payload := c.buildFastHTTPPayload(GoFiberSDKType, start,
ctx.Context(), ctx.Response().StatusCode(),
ctx.Request().Body(), ctx.Response().Body(), respHeaders,
Expand All @@ -45,5 +64,5 @@ func (c *Client) FiberMiddleware(ctx *fiber.Ctx) error {
)

c.PublishMessage(ctx.Context(), payload)
return nil
return err
}

0 comments on commit a0c9c39

Please sign in to comment.