mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: ErrOrgNameTaken error at org insert instead of SQL error (#69325)
* Add ErrOrgNameTaken check to org insert * Add tests for ErrOrgNameTaken
This commit is contained in:
parent
a482795a96
commit
81551a4cb4
@ -74,26 +74,32 @@ func (ss *sqlStore) Get(ctx context.Context, orgID int64) (*org.Org, error) {
|
||||
return &orga, nil
|
||||
}
|
||||
|
||||
func (ss *sqlStore) Insert(ctx context.Context, org *org.Org) (int64, error) {
|
||||
func (ss *sqlStore) Insert(ctx context.Context, orga *org.Org) (int64, error) {
|
||||
var orgID int64
|
||||
var err error
|
||||
err = ss.db.WithDbSession(ctx, func(sess *db.Session) error {
|
||||
if _, err = sess.Insert(org); err != nil {
|
||||
if isNameTaken, err := isOrgNameTaken(orga.Name, orga.ID, sess); err != nil {
|
||||
return err
|
||||
} else if isNameTaken {
|
||||
return org.ErrOrgNameTaken
|
||||
}
|
||||
|
||||
if _, err = sess.Insert(orga); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
orgID = org.ID
|
||||
orgID = orga.ID
|
||||
|
||||
if org.ID != 0 {
|
||||
if orga.ID != 0 {
|
||||
// it sets the setval in the sequence
|
||||
if err := ss.dialect.PostInsertId("org", sess.Session); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
sess.PublishAfterCommit(&events.OrgCreated{
|
||||
Timestamp: org.Created,
|
||||
Id: org.ID,
|
||||
Name: org.Name,
|
||||
Timestamp: orga.Created,
|
||||
Id: orga.ID,
|
||||
Name: orga.Name,
|
||||
})
|
||||
return nil
|
||||
})
|
||||
|
@ -48,6 +48,16 @@ func TestIntegrationOrgDataAccess(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("insert with org name taken", func(t *testing.T) {
|
||||
_, err := orgStore.Insert(context.Background(), &org.Org{
|
||||
Version: 1,
|
||||
Name: "test1",
|
||||
Created: time.Now(),
|
||||
Updated: time.Now(),
|
||||
})
|
||||
require.Error(t, err, org.ErrOrgNameTaken)
|
||||
})
|
||||
|
||||
t.Run("org inserted with next available org ID", func(t *testing.T) {
|
||||
orgID, err := orgStore.Insert(context.Background(), &org.Org{
|
||||
ID: 55,
|
||||
@ -61,6 +71,14 @@ func TestIntegrationOrgDataAccess(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
})
|
||||
|
||||
t.Run("update with org name taken", func(t *testing.T) {
|
||||
err := orgStore.Update(context.Background(), &org.UpdateOrgCommand{
|
||||
OrgId: 55,
|
||||
Name: "test1",
|
||||
})
|
||||
require.Error(t, err, org.ErrOrgNameTaken)
|
||||
})
|
||||
|
||||
t.Run("delete by user", func(t *testing.T) {
|
||||
err := orgStore.DeleteUserFromAll(context.Background(), 1)
|
||||
require.NoError(t, err)
|
||||
|
Loading…
Reference in New Issue
Block a user