package delivery import ( "context" "gorm.io/gorm" "sneak.berlin/go/webhooker/internal/database" ) // logTarget is a fire-and-forget target that logs the entire // inbound webhook — the full request body and headers, plus // the method, content type, and the webhook and entrypoint // ids — then records a single successful attempt. type logTarget struct { eng *Engine } // Deliver implements Target. func (t *logTarget) Deliver( _ context.Context, webhookDB *gorm.DB, d *database.Delivery, _ *Task, _ Scheduler, ) { t.eng.log.Info( "webhook event delivered to log target", "delivery_id", d.ID, "event_id", d.EventID, "target_id", d.TargetID, "target_name", d.Target.Name, "webhook_id", d.Event.WebhookID, "entrypoint_id", d.Event.EntrypointID, "method", d.Event.Method, "content_type", d.Event.ContentType, "headers", d.Event.Headers, "body", d.Event.Body, ) t.eng.recordResult( webhookDB, d, 1, true, 0, "", "", 0, ) t.eng.updateDeliveryStatus( webhookDB, d, database.DeliveryStatusDelivered, ) }