Sha256: b1f4a837b27fec5bddcbf3ce7522692135f573db5ab7d2a01829a4a58b837060

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

module Script
  module Layers
    module Application
      class PushScript
        class << self
          def call(ctx:, language:, extension_point_type:, script_name:, api_key:, force:)
            extension_point = ExtensionPoints.get(type: extension_point_type)
            script = Infrastructure::ScriptRepository.new.get_script(language, extension_point_type, script_name)
            ProjectDependencies
              .install(ctx: ctx, language: language, extension_point: extension_point, script_name: script_name)
            BuildScript.call(ctx: ctx, script: script)
            push_script(ctx, script, api_key, force)
          end

          private

          def push_script(ctx, script, api_key, force)
            compiled_type = Infrastructure::ScriptBuilder.for(script).compiled_type
            Infrastructure::PushPackageRepository.new
              .get_push_package(script, compiled_type)
              .push(Infrastructure::ScriptService.new(ctx: ctx), api_key, force)
            ctx.puts(ctx.message('script.application.pushed'))
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shopify-cli-0.9.1 lib/project_types/script/layers/application/push_script.rb
shopify-cli-0.9.0 lib/project_types/script/layers/application/push_script.rb