Sha256: b0d540e87dae8c6a59314c7dd8a6ff8675e8102d98721f68bbfa165aae3a1a68

Contents?: true

Size: 1.87 KB

Versions: 11

Compression:

Stored size: 1.87 KB

Contents

module ThreeScaleToolbox
  module Commands
    module ImportCommand
      module OpenAPI
        class CreateServiceStep
          include Step

          ##
          # Creates service with a given system_name
          # If service already exists, update basic settings like name and description
          def call
            # Update service and update context
            self.service = Entities::Service.find_by_system_name(remote: threescale_client,
                                                                 system_name: service_system_name)
            if service.nil?
              # Create service and update context
              self.service = Entities::Service.create(remote: threescale_client,
                                                      service_params: service_settings)
              puts "Created service id: #{service.id}, name: #{service_name}"
            else
              service.update(service_settings)
              puts "Updated service id: #{service.id}, name: #{service_name}"
            end
          end

          private

          def service_system_name
            target_system_name || service_name.downcase.gsub(/[^\w]/, '_')
          end

          def service_settings
            default_service_settings.tap do |svc|
              svc['name'] = service_name
              svc['description'] = service_description
              svc['backend_version'] = api_spec.service_backend_version
              svc['system_name'] = service_system_name
              svc['deployment_option'] = 'self_managed' if !production_public_base_url.nil? || !staging_public_base_url.nil?
            end
          end

          def default_service_settings
            {}
          end

          def service_name
            api_spec.title
          end

          def service_description
            api_spec.description
          end
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
3scale_toolbox-0.19.3 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.19.2 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.19.1 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.19.0 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.18.3 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.18.2 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.18.0 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.17.1 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.17.0 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.16.0 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb
3scale_toolbox-0.15.0 lib/3scale_toolbox/commands/import_command/openapi/create_service_step.rb