github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/open_resource_discovery/interfaces.go (about) 1 package ord 2 3 import ( 4 "context" 5 6 "github.com/kyma-incubator/compass/components/director/pkg/graphql" 7 8 "github.com/kyma-incubator/compass/components/director/pkg/resource" 9 10 "github.com/kyma-incubator/compass/components/director/internal/model" 11 ) 12 13 // WebhookService is responsible for the service-layer Webhook operations. 14 // 15 //go:generate mockery --name=WebhookService --output=automock --outpkg=automock --case=underscore --disable-version-string 16 type WebhookService interface { 17 ListByWebhookType(ctx context.Context, webhookType model.WebhookType) ([]*model.Webhook, error) 18 ListForApplication(ctx context.Context, applicationID string) ([]*model.Webhook, error) 19 ListForApplicationGlobal(ctx context.Context, applicationID string) ([]*model.Webhook, error) 20 ListForApplicationTemplate(ctx context.Context, applicationTemplateID string) ([]*model.Webhook, error) 21 EnrichWebhooksWithTenantMappingWebhooks(in []*graphql.WebhookInput) ([]*graphql.WebhookInput, error) 22 Create(ctx context.Context, owningResourceID string, in model.WebhookInput, objectType model.WebhookReferenceObjectType) (string, error) 23 Delete(ctx context.Context, id string, objectType model.WebhookReferenceObjectType) error 24 } 25 26 // ApplicationService is responsible for the service-layer Application operations. 27 // 28 //go:generate mockery --name=ApplicationService --output=automock --outpkg=automock --case=underscore --disable-version-string 29 type ApplicationService interface { 30 Get(ctx context.Context, id string) (*model.Application, error) 31 ListAllByApplicationTemplateID(ctx context.Context, applicationTemplateID string) ([]*model.Application, error) 32 Update(ctx context.Context, id string, in model.ApplicationUpdateInput) error 33 } 34 35 // BundleService is responsible for the service-layer Bundle operations. 36 // 37 //go:generate mockery --name=BundleService --output=automock --outpkg=automock --case=underscore --disable-version-string 38 type BundleService interface { 39 CreateBundle(ctx context.Context, resourceType resource.Type, resourceID string, in model.BundleCreateInput, bndlHash uint64) (string, error) 40 UpdateBundle(ctx context.Context, resourceType resource.Type, id string, in model.BundleUpdateInput, bndlHash uint64) error 41 Delete(ctx context.Context, resourceType resource.Type, id string) error 42 ListByApplicationIDNoPaging(ctx context.Context, appID string) ([]*model.Bundle, error) 43 ListByApplicationTemplateVersionIDNoPaging(ctx context.Context, appTemplateVersionID string) ([]*model.Bundle, error) 44 } 45 46 // BundleReferenceService is responsible for the service-layer BundleReference operations. 47 // 48 //go:generate mockery --name=BundleReferenceService --output=automock --outpkg=automock --case=underscore --disable-version-string 49 type BundleReferenceService interface { 50 GetBundleIDsForObject(ctx context.Context, objectType model.BundleReferenceObjectType, objectID *string) ([]string, error) 51 } 52 53 // APIService is responsible for the service-layer API operations. 54 // 55 //go:generate mockery --name=APIService --output=automock --outpkg=automock --case=underscore --disable-version-string 56 type APIService interface { 57 Create(ctx context.Context, resourceType resource.Type, resourceID string, bundleID, packageID *string, in model.APIDefinitionInput, spec []*model.SpecInput, targetURLsPerBundle map[string]string, apiHash uint64, defaultBundleID string) (string, error) 58 UpdateInManyBundles(ctx context.Context, resourceType resource.Type, id string, in model.APIDefinitionInput, specIn *model.SpecInput, defaultTargetURLPerBundle map[string]string, defaultTargetURLPerBundleToBeCreated map[string]string, bundleIDsToBeDeleted []string, apiHash uint64, defaultBundleID string) error 59 Delete(ctx context.Context, resourceType resource.Type, id string) error 60 ListByApplicationID(ctx context.Context, appID string) ([]*model.APIDefinition, error) 61 ListByApplicationTemplateVersionID(ctx context.Context, appTemplateVersionID string) ([]*model.APIDefinition, error) 62 } 63 64 // EventService is responsible for the service-layer Event operations. 65 // 66 //go:generate mockery --name=EventService --output=automock --outpkg=automock --case=underscore --disable-version-string 67 type EventService interface { 68 Create(ctx context.Context, resourceType resource.Type, resourceID string, bundleID, packageID *string, in model.EventDefinitionInput, specs []*model.SpecInput, bundleIDs []string, eventHash uint64, defaultBundleID string) (string, error) 69 UpdateInManyBundles(ctx context.Context, resourceType resource.Type, id string, in model.EventDefinitionInput, specIn *model.SpecInput, bundleIDsFromBundleReference, bundleIDsForCreation, bundleIDsForDeletion []string, eventHash uint64, defaultBundleID string) error 70 Delete(ctx context.Context, resourceType resource.Type, id string) error 71 ListByApplicationID(ctx context.Context, appID string) ([]*model.EventDefinition, error) 72 ListByApplicationTemplateVersionID(ctx context.Context, appTemplateVersionID string) ([]*model.EventDefinition, error) 73 } 74 75 // SpecService is responsible for the service-layer Specification operations. 76 // 77 //go:generate mockery --name=SpecService --output=automock --outpkg=automock --case=underscore --disable-version-string 78 type SpecService interface { 79 CreateByReferenceObjectID(ctx context.Context, in model.SpecInput, resourceType resource.Type, objectType model.SpecReferenceObjectType, objectID string) (string, error) 80 CreateByReferenceObjectIDWithDelayedFetchRequest(ctx context.Context, in model.SpecInput, resourceType resource.Type, objectType model.SpecReferenceObjectType, objectID string) (string, *model.FetchRequest, error) 81 DeleteByReferenceObjectID(ctx context.Context, resourceType resource.Type, objectType model.SpecReferenceObjectType, objectID string) error 82 GetByID(ctx context.Context, id string, objectType model.SpecReferenceObjectType) (*model.Spec, error) 83 ListFetchRequestsByReferenceObjectIDs(ctx context.Context, tenant string, objectIDs []string, objectType model.SpecReferenceObjectType) ([]*model.FetchRequest, error) 84 ListFetchRequestsByReferenceObjectIDsGlobal(ctx context.Context, objectIDs []string, objectType model.SpecReferenceObjectType) ([]*model.FetchRequest, error) 85 UpdateSpecOnly(ctx context.Context, spec model.Spec) error 86 UpdateSpecOnlyGlobal(ctx context.Context, spec model.Spec) error 87 ListIDByReferenceObjectID(ctx context.Context, resourceType resource.Type, objectType model.SpecReferenceObjectType, objectID string) ([]string, error) 88 GetByIDGlobal(ctx context.Context, id string) (*model.Spec, error) 89 } 90 91 // FetchRequestService is responsible for executing specification fetch requests. 92 // 93 //go:generate mockery --name=FetchRequestService --output=automock --outpkg=automock --case=underscore --disable-version-string 94 type FetchRequestService interface { 95 FetchSpec(ctx context.Context, fr *model.FetchRequest) (*string, *model.FetchRequestStatus) 96 Update(ctx context.Context, fr *model.FetchRequest) error 97 UpdateGlobal(ctx context.Context, fr *model.FetchRequest) error 98 } 99 100 // PackageService is responsible for the service-layer Package operations. 101 // 102 //go:generate mockery --name=PackageService --output=automock --outpkg=automock --case=underscore --disable-version-string 103 type PackageService interface { 104 Create(ctx context.Context, resourceType resource.Type, resourceID string, in model.PackageInput, pkgHash uint64) (string, error) 105 Update(ctx context.Context, resourceType resource.Type, id string, in model.PackageInput, pkgHash uint64) error 106 Delete(ctx context.Context, resourceType resource.Type, id string) error 107 ListByApplicationID(ctx context.Context, appID string) ([]*model.Package, error) 108 ListByApplicationTemplateVersionID(ctx context.Context, appTemplateVersionID string) ([]*model.Package, error) 109 } 110 111 // ProductService is responsible for the service-layer Product operations. 112 // 113 //go:generate mockery --name=ProductService --output=automock --outpkg=automock --case=underscore --disable-version-string 114 type ProductService interface { 115 Create(ctx context.Context, resourceType resource.Type, resourceID string, in model.ProductInput) (string, error) 116 Update(ctx context.Context, resourceType resource.Type, id string, in model.ProductInput) error 117 Delete(ctx context.Context, resourceType resource.Type, id string) error 118 ListByApplicationID(ctx context.Context, appID string) ([]*model.Product, error) 119 ListByApplicationTemplateVersionID(ctx context.Context, appID string) ([]*model.Product, error) 120 } 121 122 // GlobalProductService is responsible for the service-layer operations for Global Product (with NULL app_id) without tenant isolation. 123 // 124 //go:generate mockery --name=GlobalProductService --output=automock --outpkg=automock --case=underscore --disable-version-string 125 type GlobalProductService interface { 126 CreateGlobal(ctx context.Context, in model.ProductInput) (string, error) 127 UpdateGlobal(ctx context.Context, id string, in model.ProductInput) error 128 DeleteGlobal(ctx context.Context, id string) error 129 ListGlobal(ctx context.Context) ([]*model.Product, error) 130 } 131 132 // VendorService is responsible for the service-layer Vendor operations. 133 // 134 //go:generate mockery --name=VendorService --output=automock --outpkg=automock --case=underscore --disable-version-string 135 type VendorService interface { 136 Create(ctx context.Context, resourceType resource.Type, resourceID string, in model.VendorInput) (string, error) 137 Update(ctx context.Context, resourceType resource.Type, id string, in model.VendorInput) error 138 Delete(ctx context.Context, resourceType resource.Type, id string) error 139 ListByApplicationID(ctx context.Context, appID string) ([]*model.Vendor, error) 140 ListByApplicationTemplateVersionID(ctx context.Context, appTemplateVersionID string) ([]*model.Vendor, error) 141 } 142 143 // GlobalVendorService is responsible for the service-layer operations for Global Vendors (with NULL app_id) without tenant isolation. 144 // 145 //go:generate mockery --name=GlobalVendorService --output=automock --outpkg=automock --case=underscore --disable-version-string 146 type GlobalVendorService interface { 147 CreateGlobal(ctx context.Context, in model.VendorInput) (string, error) 148 UpdateGlobal(ctx context.Context, id string, in model.VendorInput) error 149 DeleteGlobal(ctx context.Context, id string) error 150 ListGlobal(ctx context.Context) ([]*model.Vendor, error) 151 } 152 153 // TombstoneService is responsible for the service-layer Tombstone operations. 154 // 155 //go:generate mockery --name=TombstoneService --output=automock --outpkg=automock --case=underscore --disable-version-string 156 type TombstoneService interface { 157 Create(ctx context.Context, resourceType resource.Type, resourceID string, in model.TombstoneInput) (string, error) 158 Update(ctx context.Context, resourceType resource.Type, id string, in model.TombstoneInput) error 159 ListByApplicationID(ctx context.Context, appID string) ([]*model.Tombstone, error) 160 ListByApplicationTemplateVersionID(ctx context.Context, appID string) ([]*model.Tombstone, error) 161 } 162 163 // TenantService missing godoc 164 // 165 //go:generate mockery --name=TenantService --output=automock --outpkg=automock --case=underscore --disable-version-string 166 type TenantService interface { 167 GetLowestOwnerForResource(ctx context.Context, resourceType resource.Type, objectID string) (string, error) 168 GetTenantByID(ctx context.Context, id string) (*model.BusinessTenantMapping, error) 169 } 170 171 // ApplicationTemplateVersionService is responsible for the service-layer Application Template Version operations 172 // 173 //go:generate mockery --name=ApplicationTemplateVersionService --output=automock --outpkg=automock --case=underscore --disable-version-string 174 type ApplicationTemplateVersionService interface { 175 GetByAppTemplateIDAndVersion(ctx context.Context, id, version string) (*model.ApplicationTemplateVersion, error) 176 ListByAppTemplateID(ctx context.Context, appTemplateID string) ([]*model.ApplicationTemplateVersion, error) 177 Create(ctx context.Context, appTemplateID string, item *model.ApplicationTemplateVersionInput) (string, error) 178 Update(ctx context.Context, id, appTemplateID string, in model.ApplicationTemplateVersionInput) error 179 } 180 181 // ApplicationTemplateService is responsible for the service-layer Application Template operations 182 // 183 //go:generate mockery --name=ApplicationTemplateService --output=automock --outpkg=automock --case=underscore --disable-version-string 184 type ApplicationTemplateService interface { 185 Get(ctx context.Context, id string) (*model.ApplicationTemplate, error) 186 } 187 188 // WebhookConverter is responsible for converting webhook structs 189 // 190 //go:generate mockery --name=WebhookConverter --output=automock --outpkg=automock --case=underscore --disable-version-string 191 type WebhookConverter interface { 192 InputFromGraphQL(in *graphql.WebhookInput) (*model.WebhookInput, error) 193 }