diff --git a/api/integration.go b/api/integration.go
index 0a14c26e8..835be0fad 100644
--- a/api/integration.go
+++ b/api/integration.go
@@ -161,7 +161,7 @@ func ReceiveIntegration(w http.ResponseWriter, r *http.Request) {
continue
}
- RunIntegration(integration, project, r)
+ RunIntegration(integration, project, r, payload)
}
w.WriteHeader(http.StatusNoContent)
@@ -227,7 +227,7 @@ func MatchCompare(value interface{}, method db.IntegrationMatchMethodType, expec
}
}
-func RunIntegration(integration db.Integration, project db.Project, r *http.Request) {
+func RunIntegration(integration db.Integration, project db.Project, r *http.Request, payload []byte) {
log.Info(fmt.Sprintf("Running integration %d", integration.ID))
@@ -241,9 +241,8 @@ func RunIntegration(integration db.Integration, project db.Project, r *http.Requ
extractValues = append(extractValues, extractValuesForExtractor...)
- var extractedResults = Extract(extractValues, r)
+ var extractedResults = Extract(extractValues, r, payload)
- // XXX: LOG AN EVENT HERE
environmentJSONBytes, err := json.Marshal(extractedResults)
if err != nil {
log.Error(err)
@@ -252,9 +251,10 @@ func RunIntegration(integration db.Integration, project db.Project, r *http.Requ
var environmentJSONString = string(environmentJSONBytes)
var taskDefinition = db.Task{
- TemplateID: integration.TemplateID,
- ProjectID: integration.ProjectID,
- Environment: environmentJSONString,
+ TemplateID: integration.TemplateID,
+ ProjectID: integration.ProjectID,
+ Environment: environmentJSONString,
+ IntegrationID: &integration.ID,
}
_, err = helpers.TaskPool(r).AddTask(taskDefinition, nil, integration.ProjectID)
@@ -264,7 +264,7 @@ func RunIntegration(integration db.Integration, project db.Project, r *http.Requ
}
}
-func Extract(extractValues []db.IntegrationExtractValue, r *http.Request) (result map[string]string) {
+func Extract(extractValues []db.IntegrationExtractValue, r *http.Request, payload []byte) (result map[string]string) {
result = make(map[string]string)
for _, extractValue := range extractValues {
@@ -272,19 +272,12 @@ func Extract(extractValues []db.IntegrationExtractValue, r *http.Request) (resul
case db.IntegrationExtractHeaderValue:
result[extractValue.Variable] = r.Header.Get(extractValue.Key)
case db.IntegrationExtractBodyValue:
- bodyBytes, err := io.ReadAll(r.Body)
- if err != nil {
- log.Fatal(err)
- return
- }
- var body = string(bodyBytes)
-
switch extractValue.BodyDataType {
case db.IntegrationBodyDataJSON:
- result[extractValue.Variable] =
- fmt.Sprintf("%v", gojsonq.New().JSONString(body).Find(extractValue.Key))
+ var extractedResult = fmt.Sprintf("%v", gojsonq.New().JSONString(string(payload)).Find(extractValue.Key))
+ result[extractValue.Variable] = extractedResult
case db.IntegrationBodyDataString:
- result[extractValue.Variable] = body
+ result[extractValue.Variable] = string(payload)
}
}
}
diff --git a/db/Migration.go b/db/Migration.go
index 3bc33b199..fb0324ebf 100644
--- a/db/Migration.go
+++ b/db/Migration.go
@@ -66,6 +66,7 @@ func GetMigrations() []Migration {
{Version: "2.9.61"},
{Version: "2.9.62"},
{Version: "2.9.70"},
+ {Version: "2.9.97"},
}
}
diff --git a/db/Task.go b/db/Task.go
index 5fde1456a..0231a0704 100644
--- a/db/Task.go
+++ b/db/Task.go
@@ -20,6 +20,8 @@ type Task struct {
DryRun bool `db:"dry_run" json:"dry_run"`
Diff bool `db:"diff" json:"diff"`
+ IntegrationID *int `db:"integration_id" json:"integration_id"`
+
// override variables
Playbook string `db:"playbook" json:"playbook"`
Environment string `db:"environment" json:"environment"`
diff --git a/db/sql/migrations/v2.9.97.sql b/db/sql/migrations/v2.9.97.sql
new file mode 100644
index 000000000..c156fa8ff
--- /dev/null
+++ b/db/sql/migrations/v2.9.97.sql
@@ -0,0 +1 @@
+alter table `task` add `integration_id` int null references project__integration(`id`) on delete set null;
\ No newline at end of file
diff --git a/web/src/components/TaskLogView.vue b/web/src/components/TaskLogView.vue
index 0e2060a27..e71d00836 100644
--- a/web/src/components/TaskLogView.vue
+++ b/web/src/components/TaskLogView.vue
@@ -23,10 +23,13 @@