Sha256: cc96975be9e5ceb28daf217da4547f550c979555cac98e0b68703178f194580c

Contents?: true

Size: 930 Bytes

Versions: 11

Compression:

Stored size: 930 Bytes

Contents

# frozen_string_literal: true
require 'shopify_cli'

module Extension
  module Tasks
    class CreateExtension < ShopifyCli::Task
      include UserErrors

      GRAPHQL_FILE = 'extension_create'

      RESPONSE_FIELD = %w(data extensionCreate)
      REGISTRATION_FIELD = 'extensionRegistration'

      def call(context:, api_key:, type:, title:, config:, extension_context: nil)
        input = {
          api_key: api_key,
          type: type,
          title: title,
          config: JSON.generate(config),
          extension_context: extension_context,
        }

        response = ShopifyCli::PartnersAPI.query(context, GRAPHQL_FILE, **input).dig(*RESPONSE_FIELD)
        context.abort(context.message('tasks.errors.parse_error')) if response.nil?

        abort_if_user_errors(context, response)
        Converters::RegistrationConverter.from_hash(context, response.dig(REGISTRATION_FIELD))
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
shopify-cli-1.6.0 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.5.0 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.4.1 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.4.0 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.3.1 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.3.0 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.2.0 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.1.2 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.1.1 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.1.0 lib/project_types/extension/tasks/create_extension.rb
shopify-cli-1.0.5 lib/project_types/extension/tasks/create_extension.rb