drone/registry/app/api/controller/metadata/controller.go

72 lines
2.4 KiB
Go

// Copyright 2023 Harness, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package metadata
import (
"github.com/harness/gitness/app/auth/authz"
corestore "github.com/harness/gitness/app/store"
urlprovider "github.com/harness/gitness/app/url"
"github.com/harness/gitness/audit"
storagedriver "github.com/harness/gitness/registry/app/driver"
"github.com/harness/gitness/registry/app/store"
"github.com/harness/gitness/store/database/dbtx"
)
// APIController simple struct.
type APIController struct {
ArtifactStore store.ArtifactRepository
RegistryRepository store.RegistryRepository
UpstreamProxyStore store.UpstreamProxyConfigRepository
TagStore store.TagRepository
ManifestStore store.ManifestRepository
CleanupPolicyStore store.CleanupPolicyRepository
spaceStore corestore.SpaceStore
tx dbtx.Transactor
StorageDriver storagedriver.StorageDriver
URLProvider urlprovider.Provider
Authorizer authz.Authorizer
AuditService audit.Service
}
func NewAPIController(
repositoryStore store.RegistryRepository,
upstreamProxyStore store.UpstreamProxyConfigRepository,
tagStore store.TagRepository,
manifestStore store.ManifestRepository,
cleanupPolicyStore store.CleanupPolicyRepository,
artifactStore store.ArtifactRepository,
driver storagedriver.StorageDriver,
spaceStore corestore.SpaceStore,
tx dbtx.Transactor,
urlProvider urlprovider.Provider,
authorizer authz.Authorizer,
auditService audit.Service,
) *APIController {
return &APIController{
RegistryRepository: repositoryStore,
UpstreamProxyStore: upstreamProxyStore,
TagStore: tagStore,
ManifestStore: manifestStore,
CleanupPolicyStore: cleanupPolicyStore,
ArtifactStore: artifactStore,
spaceStore: spaceStore,
StorageDriver: driver,
tx: tx,
URLProvider: urlProvider,
Authorizer: authorizer,
AuditService: auditService,
}
}