Correlations: Return 200 instead of 404 for empt correlation lists (#55242)

* return 200 instead of 404 for empty correlations list

* handle empty list response & improve consistency
This commit is contained in:
Giordano Ricci
2022-09-20 11:13:33 +01:00
committed by GitHub
parent d014a3a09b
commit d815e2cb56
8 changed files with 82 additions and 112 deletions
+3 -3
View File
@@ -224,7 +224,7 @@ func (s *CorrelationsService) getCorrelationHandler(c *models.ReqContext) respon
return response.Error(http.StatusNotFound, "Source data source not found", err)
}
return response.Error(http.StatusInternalServerError, "Failed to update correlation", err)
return response.Error(http.StatusInternalServerError, "Failed to get correlation", err)
}
return response.JSON(http.StatusOK, correlation)
@@ -270,7 +270,7 @@ func (s *CorrelationsService) getCorrelationsBySourceUIDHandler(c *models.ReqCon
return response.Error(http.StatusNotFound, "Source data source not found", err)
}
return response.Error(http.StatusInternalServerError, "Failed to update correlation", err)
return response.Error(http.StatusInternalServerError, "Failed to get correlations", err)
}
return response.JSON(http.StatusOK, correlations)
@@ -309,7 +309,7 @@ func (s *CorrelationsService) getCorrelationsHandler(c *models.ReqContext) respo
return response.Error(http.StatusNotFound, "No correlation found", err)
}
return response.Error(http.StatusInternalServerError, "Failed to update correlation", err)
return response.Error(http.StatusInternalServerError, "Failed to get correlations", err)
}
return response.JSON(http.StatusOK, correlations)
-8
View File
@@ -192,10 +192,6 @@ func (s CorrelationsService) getCorrelationsBySourceUID(ctx context.Context, cmd
return []Correlation{}, err
}
if len(correlations) == 0 {
return []Correlation{}, ErrCorrelationNotFound
}
return correlations, nil
}
@@ -209,10 +205,6 @@ func (s CorrelationsService) getCorrelations(ctx context.Context, cmd GetCorrela
return []Correlation{}, err
}
if len(correlations) == 0 {
return []Correlation{}, ErrCorrelationNotFound
}
return correlations, nil
}
@@ -42,21 +42,21 @@ func TestIntegrationReadCorrelation(t *testing.T) {
t.Run("Get all correlations", func(t *testing.T) {
// Running this here before creating a correlation in order to test this path.
t.Run("If no correlation exists it should return 404", func(t *testing.T) {
t.Run("If no correlation exists it should return 200", func(t *testing.T) {
res := ctx.Get(GetParams{
url: "/api/datasources/correlations",
user: adminUser,
})
require.Equal(t, http.StatusNotFound, res.StatusCode)
require.Equal(t, http.StatusOK, res.StatusCode)
responseBody, err := io.ReadAll(res.Body)
require.NoError(t, err)
var response errorResponseBody
var response []correlations.Correlation
err = json.Unmarshal(responseBody, &response)
require.NoError(t, err)
require.Equal(t, "No correlation found", response.Message)
require.Len(t, response, 0)
require.NoError(t, res.Body.Close())
})
@@ -183,21 +183,21 @@ func TestIntegrationReadCorrelation(t *testing.T) {
require.NoError(t, res.Body.Close())
})
t.Run("If no correlation exists it should return 404", func(t *testing.T) {
t.Run("If no correlation exists it should return 200", func(t *testing.T) {
res := ctx.Get(GetParams{
url: fmt.Sprintf("/api/datasources/uid/%s/correlations", dsWithoutCorrelations.Uid),
user: adminUser,
})
require.Equal(t, http.StatusNotFound, res.StatusCode)
require.Equal(t, http.StatusOK, res.StatusCode)
responseBody, err := io.ReadAll(res.Body)
require.NoError(t, err)
var response errorResponseBody
var response []correlations.Correlation
err = json.Unmarshal(responseBody, &response)
require.NoError(t, err)
require.Equal(t, "No correlation found", response.Message)
require.Len(t, response, 0)
require.NoError(t, res.Body.Close())
})