MCPcopy Index your code
hub / github.com/NdoleStudio/httpsms / Event

Method Event

api/pkg/handlers/lemonsqueezy_handler.go:48–66  ·  view source on GitHub ↗

Event handles lemonsqueezy events

(c fiber.Ctx)

Source from the content-addressed store, hash-verified

46
47// Event handles lemonsqueezy events
48func (h *LemonsqueezyHandler) Event(c fiber.Ctx) error {
49 ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
50 defer span.End()
51
52 signature := c.Get("X-Signature")
53 if errors := h.validator.ValidateEvent(ctx, signature, c.Body()); len(errors) != 0 {
54 msg := fmt.Sprintf("validation errors [%s], while storing request [%s] and signature [%s]", spew.Sdump(errors), c.Body(), signature)
55 ctxLogger.Warn(stacktrace.NewError(msg))
56 return h.responseUnprocessableEntity(c, errors, "validation errors while storing lemonsqueezy event")
57 }
58
59 if err := h.handleRequest(ctx, c); err != nil {
60 msg := fmt.Sprintf("cannot handle lemonsqueezy event [%s]", c.Body())
61 ctxLogger.Error(stacktrace.Propagate(err, msg))
62 return h.responseInternalServerError(c)
63 }
64
65 return h.responseNoContent(c, "event consumed successfully")
66}
67
68func (h *LemonsqueezyHandler) handleRequest(ctx context.Context, c fiber.Ctx) error {
69 eventName := c.Get("X-Event-Name")

Callers

nothing calls this directly

Calls 9

handleRequestMethod · 0.95
ValidateEventMethod · 0.80
responseNoContentMethod · 0.80
GetMethod · 0.65
WarnMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected