Skip to content

Commit

Permalink
Call ingest status endpoint after sending billing events
Browse files Browse the repository at this point in the history
  • Loading branch information
MauAraujo committed May 10, 2024
1 parent 27359a7 commit 87beb1a
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
25 changes: 25 additions & 0 deletions api/server/handlers/billing/ingest.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
package billing

import (
"bytes"
"encoding/json"
"fmt"
"net/http"

Expand Down Expand Up @@ -80,5 +82,28 @@ func (c *IngestEventsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
return
}

// Call the ingest check webhook
webhookUrl := c.Config().ServerConf.IngestStatusWebhookUrl
req := struct {
ProjectID uint `json:"project_id"`
}{
ProjectID: proj.ID,
}

reqBody, err := json.Marshal(req)
if err != nil {
err := telemetry.Error(ctx, span, err, "error marshalling ingest status webhook request")
c.HandleAPIError(w, r, apierrors.NewErrInternal(err))
return
}

client := &http.Client{}
resp, err := client.Post(webhookUrl, "application/json", bytes.NewBuffer(reqBody))
if err != nil || resp.StatusCode != http.StatusOK {
err := telemetry.Error(ctx, span, err, "error sending ingest status webhook request")
c.HandleAPIError(w, r, apierrors.NewErrInternal(err))
return
}

c.WriteResult(w, r, "")
}
3 changes: 3 additions & 0 deletions api/server/shared/config/env/envconfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ type ServerConf struct {
PorterCloudPlanID string `env:"PORTER_CLOUD_PLAN_ID"`
PorterStandardPlanID string `env:"PORTER_STANDARD_PLAN_ID"`

// The URL of the webhook to verify ingesting events works
IngestStatusWebhookUrl string `env:"INGEST_STATUS_WEBHOOK_URL"`

// This endpoint will be passed to the porter-agent so that
// the billing manager can query Prometheus.
PrometheusUrl string `env:"PROMETHEUS_URL"`
Expand Down

0 comments on commit 87beb1a

Please sign in to comment.