Add event after datasource create (#38467)

* Add event after datasource create
This commit is contained in:
Stephanie Hingtgen
2021-08-26 07:50:05 -06:00
committed by GitHub
parent 1ced2bc6df
commit 785072086c
3 changed files with 43 additions and 0 deletions

View File

@@ -54,3 +54,11 @@ type DataSourceDeleted struct {
UID string `json:"uid"`
OrgID int64 `json:"org_id"`
}
type DataSourceCreated struct {
Timestamp time.Time `json:"timestamp"`
Name string `json:"name"`
ID int64 `json:"id"`
UID string `json:"uid"`
OrgID int64 `json:"org_id"`
}

View File

@@ -214,6 +214,14 @@ func AddDataSource(cmd *models.AddDataSourceCommand) error {
}
cmd.Result = ds
sess.publishAfterCommit(&events.DataSourceCreated{
Timestamp: time.Now(),
Name: cmd.Name,
ID: ds.Id,
UID: cmd.Uid,
OrgID: cmd.OrgId,
})
return nil
})
}

View File

@@ -90,6 +90,33 @@ func TestDataAccess(t *testing.T) {
require.Error(t, err)
require.IsType(t, models.ErrDataSourceUidExists, err)
})
t.Run("fires an event when the datasource is added", func(t *testing.T) {
InitTestDB(t)
var created *events.DataSourceCreated
bus.AddEventListener(func(e *events.DataSourceCreated) error {
created = e
return nil
})
err := AddDataSource(&defaultAddDatasourceCommand)
require.NoError(t, err)
require.Eventually(t, func() bool {
return assert.NotNil(t, created)
}, time.Second, time.Millisecond)
query := models.GetDataSourcesQuery{OrgId: 10}
err = GetDataSources(&query)
require.NoError(t, err)
require.Equal(t, 1, len(query.Result))
require.Equal(t, query.Result[0].Id, created.ID)
require.Equal(t, query.Result[0].Uid, created.UID)
require.Equal(t, int64(10), created.OrgID)
require.Equal(t, "nisse", created.Name)
})
})
t.Run("UpdateDataSource", func(t *testing.T) {