mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Copy org sqlstore methods to org store (#55825)
* Chore: Copy org sqlstore methods to org store * Remove GetByName, add some tests * Rename GetByNameHandler to GetByName * Fix fake name
This commit is contained in:
parent
527c00dae5
commit
edcf359473
@ -12,8 +12,7 @@ type Service interface {
|
||||
UpdateOrg(context.Context, *UpdateOrgCommand) error
|
||||
Search(context.Context, *SearchOrgsQuery) ([]*OrgDTO, error)
|
||||
GetByID(context.Context, *GetOrgByIdQuery) (*Org, error)
|
||||
GetByNameHandler(context.Context, *GetOrgByNameQuery) (*Org, error)
|
||||
GetByName(string) (*Org, error)
|
||||
GetByName(context.Context, *GetOrgByNameQuery) (*Org, error)
|
||||
CreateWithMember(context.Context, *CreateOrgCommand) (*Org, error)
|
||||
UpdateAddress(context.Context, *UpdateOrgAddressCommand) error
|
||||
Delete(context.Context, *DeleteOrgCommand) error
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/org"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
@ -103,69 +102,12 @@ func (s *Service) Search(ctx context.Context, query *org.SearchOrgsQuery) ([]*or
|
||||
return s.store.Search(ctx, query)
|
||||
}
|
||||
|
||||
// TODO: remove wrapper around sqlstore
|
||||
func (s *Service) GetByID(ctx context.Context, query *org.GetOrgByIdQuery) (*org.Org, error) {
|
||||
q := &models.GetOrgByIdQuery{Id: query.ID}
|
||||
err := s.sqlStore.GetOrgById(ctx, q)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &org.Org{
|
||||
ID: q.Result.Id,
|
||||
Version: q.Result.Version,
|
||||
Name: q.Result.Name,
|
||||
Address1: q.Result.Address1,
|
||||
Address2: q.Result.Address2,
|
||||
City: q.Result.City,
|
||||
ZipCode: q.Result.ZipCode,
|
||||
State: q.Result.State,
|
||||
Country: q.Result.Country,
|
||||
Created: q.Result.Created,
|
||||
Updated: q.Result.Updated,
|
||||
}, nil
|
||||
return s.store.GetByID(ctx, query)
|
||||
}
|
||||
|
||||
// TODO: remove wrapper around sqlstore
|
||||
func (s *Service) GetByNameHandler(ctx context.Context, query *org.GetOrgByNameQuery) (*org.Org, error) {
|
||||
q := &models.GetOrgByNameQuery{Name: query.Name}
|
||||
err := s.sqlStore.GetOrgByNameHandler(ctx, q)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &org.Org{
|
||||
ID: q.Result.Id,
|
||||
Version: q.Result.Version,
|
||||
Name: q.Result.Name,
|
||||
Address1: q.Result.Address1,
|
||||
Address2: q.Result.Address2,
|
||||
City: q.Result.City,
|
||||
ZipCode: q.Result.ZipCode,
|
||||
State: q.Result.State,
|
||||
Country: q.Result.Country,
|
||||
Created: q.Result.Created,
|
||||
Updated: q.Result.Updated,
|
||||
}, nil
|
||||
}
|
||||
|
||||
// TODO: remove wrapper around sqlstore
|
||||
func (s *Service) GetByName(name string) (*org.Org, error) {
|
||||
orga, err := s.sqlStore.GetOrgByName(name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &org.Org{
|
||||
ID: orga.Id,
|
||||
Version: orga.Version,
|
||||
Name: orga.Name,
|
||||
Address1: orga.Address1,
|
||||
Address2: orga.Address2,
|
||||
City: orga.City,
|
||||
ZipCode: orga.ZipCode,
|
||||
State: orga.State,
|
||||
Country: orga.Country,
|
||||
Created: orga.Created,
|
||||
Updated: orga.Updated,
|
||||
}, nil
|
||||
func (s *Service) GetByName(ctx context.Context, query *org.GetOrgByNameQuery) (*org.Org, error) {
|
||||
return s.store.GetByName(ctx, query)
|
||||
}
|
||||
|
||||
// TODO: refactor service to call store CRUD method
|
||||
|
@ -120,6 +120,14 @@ func (f *FakeOrgStore) GetOrgUsers(ctx context.Context, query *org.GetOrgUsersQu
|
||||
return f.ExpectedOrgUsers, f.ExpectedError
|
||||
}
|
||||
|
||||
func (f *FakeOrgStore) GetByID(ctx context.Context, query *org.GetOrgByIdQuery) (*org.Org, error) {
|
||||
return f.ExpectedOrg, f.ExpectedError
|
||||
}
|
||||
|
||||
func (f *FakeOrgStore) GetByName(ctx context.Context, query *org.GetOrgByNameQuery) (*org.Org, error) {
|
||||
return f.ExpectedOrg, f.ExpectedError
|
||||
}
|
||||
|
||||
func (f *FakeOrgStore) SearchOrgUsers(ctx context.Context, query *org.SearchOrgUsersQuery) (*org.SearchOrgUsersQueryResult, error) {
|
||||
return f.ExpectedSearchOrgUsersQueryResult, f.ExpectedError
|
||||
}
|
||||
|
@ -39,6 +39,8 @@ type store interface {
|
||||
AddOrgUser(context.Context, *org.AddOrgUserCommand) error
|
||||
UpdateOrgUser(context.Context, *org.UpdateOrgUserCommand) error
|
||||
GetOrgUsers(context.Context, *org.GetOrgUsersQuery) ([]*org.OrgUserDTO, error)
|
||||
GetByID(context.Context, *org.GetOrgByIdQuery) (*org.Org, error)
|
||||
GetByName(context.Context, *org.GetOrgByNameQuery) (*org.Org, error)
|
||||
SearchOrgUsers(context.Context, *org.SearchOrgUsersQuery) (*org.SearchOrgUsersQueryResult, error)
|
||||
RemoveOrgUser(context.Context, *org.RemoveOrgUserCommand) error
|
||||
}
|
||||
@ -518,6 +520,25 @@ func (ss *sqlStore) GetOrgUsers(ctx context.Context, query *org.GetOrgUsersQuery
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (ss *sqlStore) GetByID(ctx context.Context, query *org.GetOrgByIdQuery) (*org.Org, error) {
|
||||
var orga org.Org
|
||||
err := ss.db.WithDbSession(ctx, func(dbSession *sqlstore.DBSession) error {
|
||||
exists, err := dbSession.ID(query.ID).Get(&orga)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !exists {
|
||||
return models.ErrOrgNotFound
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &orga, nil
|
||||
}
|
||||
|
||||
func (ss *sqlStore) SearchOrgUsers(ctx context.Context, query *org.SearchOrgUsersQuery) (*org.SearchOrgUsersQueryResult, error) {
|
||||
result := org.SearchOrgUsersQueryResult{
|
||||
OrgUsers: make([]*org.OrgUserDTO, 0),
|
||||
@ -600,6 +621,25 @@ func (ss *sqlStore) SearchOrgUsers(ctx context.Context, query *org.SearchOrgUser
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
func (ss *sqlStore) GetByName(ctx context.Context, query *org.GetOrgByNameQuery) (*org.Org, error) {
|
||||
var orga org.Org
|
||||
err := ss.db.WithDbSession(ctx, func(dbSession *sqlstore.DBSession) error {
|
||||
exists, err := dbSession.Where("name=?", query.Name).Get(&orga)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !exists {
|
||||
return models.ErrOrgNotFound
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &orga, nil
|
||||
}
|
||||
|
||||
func (ss *sqlStore) RemoveOrgUser(ctx context.Context, cmd *org.RemoveOrgUserCommand) error {
|
||||
return ss.db.WithTransactionalDbSession(ctx, func(sess *sqlstore.DBSession) error {
|
||||
// check if user exists
|
||||
|
@ -119,7 +119,7 @@ func TestIntegrationOrgDataAccess(t *testing.T) {
|
||||
query := &org.SearchOrgsQuery{IDs: ids}
|
||||
result, err := orgStore.Search(context.Background(), query)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, len(result), 3)
|
||||
assert.Equal(t, 3, len(result))
|
||||
})
|
||||
|
||||
t.Run("Given we have organizations, we can limit and paginate search", func(t *testing.T) {
|
||||
@ -135,7 +135,7 @@ func TestIntegrationOrgDataAccess(t *testing.T) {
|
||||
result, err := orgStore.Search(context.Background(), query)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, len(result), 3)
|
||||
assert.Equal(t, 3, len(result))
|
||||
})
|
||||
|
||||
t.Run("Should be able to limit search", func(t *testing.T) {
|
||||
@ -143,7 +143,7 @@ func TestIntegrationOrgDataAccess(t *testing.T) {
|
||||
result, err := orgStore.Search(context.Background(), query)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, len(result), 1)
|
||||
assert.Equal(t, 1, len(result))
|
||||
})
|
||||
|
||||
t.Run("Should be able to limit and paginate search", func(t *testing.T) {
|
||||
@ -151,7 +151,23 @@ func TestIntegrationOrgDataAccess(t *testing.T) {
|
||||
result, err := orgStore.Search(context.Background(), query)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, len(result), 1)
|
||||
assert.Equal(t, 1, len(result))
|
||||
})
|
||||
|
||||
t.Run("Get org by ID", func(t *testing.T) {
|
||||
query := &org.GetOrgByIdQuery{ID: 1}
|
||||
result, err := orgStore.GetByID(context.Background(), query)
|
||||
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "Orga #1", result.Name)
|
||||
})
|
||||
|
||||
t.Run("Get org by handler name", func(t *testing.T) {
|
||||
query := &org.GetOrgByNameQuery{Name: "Orga #1"}
|
||||
result, err := orgStore.GetByName(context.Background(), query)
|
||||
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(1), result.ID)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
@ -52,11 +52,7 @@ func (f *FakeOrgService) GetByID(ctx context.Context, query *org.GetOrgByIdQuery
|
||||
return f.ExpectedOrg, f.ExpectedError
|
||||
}
|
||||
|
||||
func (f *FakeOrgService) GetByNameHandler(ctx context.Context, query *org.GetOrgByNameQuery) (*org.Org, error) {
|
||||
return f.ExpectedOrg, f.ExpectedError
|
||||
}
|
||||
|
||||
func (f *FakeOrgService) GetByName(name string) (*org.Org, error) {
|
||||
func (f *FakeOrgService) GetByName(ctx context.Context, query *org.GetOrgByNameQuery) (*org.Org, error) {
|
||||
return f.ExpectedOrg, f.ExpectedError
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user