Class: Packages::TerraformModule::CreatePackageService
- Inherits:
-
CreatePackageService
- Object
- BaseService
- CreatePackageService
- Packages::TerraformModule::CreatePackageService
- Includes:
- Gitlab::Utils::StrongMemoize
- Defined in:
- app/services/packages/terraform_module/create_package_service.rb
Constant Summary collapse
- EMPTY_VERSION_ERROR =
ServiceResponse.error(message: 'Version is empty.', reason: :bad_request).freeze
- NAMESPACE_DUPLICATION_ERROR =
ServiceResponse.error( message: 'A module with the same name already exists in the namespace.', reason: :forbidden ).freeze
- PROJECT_DUPLICATION_ERROR =
ServiceResponse.error( message: 'A module with the same name & version already exists in the project.', reason: :forbidden ).freeze
Constants inherited from CreatePackageService
CreatePackageService::ERROR_RESPONSE_PACKAGE_PROTECTED
Constants inherited from BaseService
BaseService::UnauthorizedError
Instance Attribute Summary
Attributes inherited from BaseService
#current_user, #params, #project
Instance Method Summary collapse
Methods inherited from BaseService
Methods included from BaseServiceUtility
#deny_visibility_level, #event_service, #log_error, #log_info, #notification_service, #system_hook_service, #todo_service, #visibility_level
Methods included from Gitlab::Allowable
Constructor Details
This class inherits a constructor from BaseService
Instance Method Details
#execute ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/services/packages/terraform_module/create_package_service.rb', line 18 def execute return EMPTY_VERSION_ERROR if params[:module_version].blank? return NAMESPACE_DUPLICATION_ERROR if duplicates_not_allowed? && current_package_exists_elsewhere? return PROJECT_DUPLICATION_ERROR if current_package_version_exists? package, package_file = ApplicationRecord.transaction { create_terraform_module_package! } ::Packages::TerraformModule::ProcessPackageFileWorker.perform_async(package_file.id) ServiceResponse.success(payload: { package: package }) rescue ActiveRecord::RecordInvalid => e ServiceResponse.error(message: e., reason: :unprocessable_entity) end |