mirror of
https://github.com/grafana/grafana.git
synced 2024-12-01 13:09:22 -06:00
371d7850a5
* refactor: renaming of files from database to store * refactor: make service account store private - moves store interface to manager package - adds an interface to the ProvideAPI constructor - refactors tests to use the store when necessary - adds mocks for the new interface implementations in the tests package * wip * refactor: make fakestore in service * wip * wip * wip * working tests * trailing whitespaces * Update pkg/services/serviceaccounts/api/api.go * Update pkg/services/serviceaccounts/tests/common.go * Update pkg/services/serviceaccounts/tests/common.go * refactor: doc string for retriever * fix import unused * remove: serviceaccount from featuretoggle * added: back legacy serviceaccounts feature toggle * added: docs * refactor: make query for the SearchQuery * add: validation of service input fields * add validation
53 lines
1.6 KiB
Go
53 lines
1.6 KiB
Go
package retriever
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/grafana/pkg/infra/db"
|
|
"github.com/grafana/grafana/pkg/infra/kvstore"
|
|
"github.com/grafana/grafana/pkg/infra/log"
|
|
"github.com/grafana/grafana/pkg/services/apikey"
|
|
"github.com/grafana/grafana/pkg/services/org"
|
|
"github.com/grafana/grafana/pkg/services/serviceaccounts"
|
|
"github.com/grafana/grafana/pkg/services/serviceaccounts/database"
|
|
"github.com/grafana/grafana/pkg/services/user"
|
|
)
|
|
|
|
// ServiceAccountRetriever is the service that retrieves service accounts.
|
|
// At the time of writing, this service is only used by the service accounts permissions service
|
|
// to avoid cyclic dependency between the ServiceAccountService and the ServiceAccountPermissionsService
|
|
type ServiceAccountRetriever interface {
|
|
RetrieveServiceAccount(ctx context.Context, orgID, serviceAccountID int64) (*serviceaccounts.ServiceAccountProfileDTO, error)
|
|
}
|
|
|
|
// ServiceAccountRetriever is the service that manages service accounts.
|
|
type Service struct {
|
|
store *database.ServiceAccountsStoreImpl
|
|
logger log.Logger
|
|
}
|
|
|
|
func ProvideService(
|
|
store db.DB,
|
|
apiKeyService apikey.Service,
|
|
kvStore kvstore.KVStore,
|
|
userService user.Service,
|
|
orgService org.Service,
|
|
) *Service {
|
|
serviceAccountsStore := database.ProvideServiceAccountsStore(
|
|
nil,
|
|
store,
|
|
apiKeyService,
|
|
kvStore,
|
|
userService,
|
|
orgService,
|
|
)
|
|
return &Service{
|
|
store: serviceAccountsStore,
|
|
logger: log.New("serviceaccountretriever"),
|
|
}
|
|
}
|
|
|
|
func (s *Service) RetrieveServiceAccount(ctx context.Context, orgID, serviceAccountID int64) (*serviceaccounts.ServiceAccountProfileDTO, error) {
|
|
return s.store.RetrieveServiceAccount(ctx, orgID, serviceAccountID)
|
|
}
|