Correlations: Add DeleteCorrelation HTTP API (#51801)

* Correlations: add DeleteCorrelation HTTP API

* fix error message copy

* add readonly check

* add source_uid in delete condition

* make path singular

* Revert "make path singular"

This reverts commit d15be89578e202e5cb64a3e964ee09521b72d87c.

* add tests

* fix lint errors

* fix lint errors

* change casing

* update spec

* Remove transaction

* change casing in param name in docs
This commit is contained in:
Giordano Ricci
2022-07-27 09:07:58 +01:00
committed by GitHub
parent 52989c2144
commit 9a06b00e92
11 changed files with 505 additions and 14 deletions
+46 -9
View File
@@ -8,12 +8,18 @@ import (
"testing"
"github.com/grafana/grafana/pkg/server"
"github.com/grafana/grafana/pkg/services/correlations"
"github.com/grafana/grafana/pkg/services/datasources"
"github.com/grafana/grafana/pkg/services/user"
"github.com/grafana/grafana/pkg/tests/testinfra"
"github.com/stretchr/testify/require"
)
type errorResponseBody struct {
Message string `json:"message"`
Error string `json:"error"`
}
type TestContext struct {
env server.TestEnv
t *testing.T
@@ -46,18 +52,10 @@ type PostParams struct {
func (c TestContext) Post(params PostParams) *http.Response {
c.t.Helper()
buf := bytes.NewReader([]byte(params.body))
baseUrl := fmt.Sprintf("http://%s", c.env.Server.HTTPServer.Listener.Addr())
if params.user.username != "" && params.user.password != "" {
baseUrl = fmt.Sprintf("http://%s:%s@%s", params.user.username, params.user.password, c.env.Server.HTTPServer.Listener.Addr())
}
// nolint:gosec
resp, err := http.Post(
fmt.Sprintf(
"%s%s",
baseUrl,
params.url,
),
c.getURL(params.url, params.user),
"application/json",
buf,
)
@@ -66,6 +64,37 @@ func (c TestContext) Post(params PostParams) *http.Response {
return resp
}
type DeleteParams struct {
url string
user User
}
func (c TestContext) Delete(params DeleteParams) *http.Response {
c.t.Helper()
req, err := http.NewRequest("DELETE", c.getURL(params.url, params.user), nil)
require.NoError(c.t, err)
resp, err := http.DefaultClient.Do(req)
require.NoError(c.t, err)
return resp
}
func (c TestContext) getURL(url string, user User) string {
c.t.Helper()
baseUrl := fmt.Sprintf("http://%s", c.env.Server.HTTPServer.Listener.Addr())
if user.username != "" && user.password != "" {
baseUrl = fmt.Sprintf("http://%s:%s@%s", user.username, user.password, c.env.Server.HTTPServer.Listener.Addr())
}
return fmt.Sprintf(
"%s%s",
baseUrl,
url,
)
}
func (c TestContext) createUser(cmd user.CreateUserCommand) {
c.t.Helper()
@@ -82,3 +111,11 @@ func (c TestContext) createDs(cmd *datasources.AddDataSourceCommand) {
err := c.env.SQLStore.AddDataSource(context.Background(), cmd)
require.NoError(c.t, err)
}
func (c TestContext) createCorrelation(cmd correlations.CreateCorrelationCommand) correlations.Correlation {
c.t.Helper()
correlation, err := c.env.Server.HTTPServer.CorrelationsService.CreateCorrelation(context.Background(), cmd)
require.NoError(c.t, err)
return correlation
}