Sha256: a7b2415a7b70a679034abd6a98d63934750ceecc6909f1458adbb603474fc9a4

Contents?: true

Size: 1.38 KB

Versions: 20

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

require 'json'

module Diffend
  # Module responsible for fetching diffend verdict on local context
  module RequestVerdict
    # Exceptions that we handle when there is a resolve issue
    RESOLVE_EXCEPTIONS = [
      ::Bundler::GemNotFound,
      ::Bundler::GitError,
      ::Bundler::PermissionError,
      ::Bundler::VersionConflict
    ].freeze

    class << self
      # @param config [Diffend::Config]
      # @param definition [::Bundler::Definition] definition for your source
      def call(config, definition)
        payload = Diffend::LocalContext.call(config, definition)

        response = Diffend::Request.call(
          build_request_object(config, payload)
        )

        JSON.parse(response.body)
      rescue *RESOLVE_EXCEPTIONS
        raise ::Diffend::Errors::DependenciesResolveException
      rescue StandardError => e
        Diffend::HandleErrors::Report.call(
          exception: e,
          payload: payload || {},
          config: config,
          message: :unhandled_exception,
          report: true
        )
      end

      # @param config [Diffend::Config]
      # @param payload [Hash]
      #
      # @return [Diffend::RequestObject]
      def build_request_object(config, payload)
        Diffend::RequestObject.new(
          config,
          config.commands_url,
          payload,
          :post
        )
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
diffend-monitor-0.2.51 lib/diffend/request_verdict.rb
diffend-0.2.51 lib/diffend/request_verdict.rb
diffend-monitor-0.2.50 lib/diffend/request_verdict.rb
diffend-0.2.50 lib/diffend/request_verdict.rb
diffend-monitor-0.2.49 lib/diffend/request_verdict.rb
diffend-0.2.49 lib/diffend/request_verdict.rb
diffend-monitor-0.2.48 lib/diffend/request_verdict.rb
diffend-0.2.48 lib/diffend/request_verdict.rb
diffend-0.2.47 lib/diffend/request_verdict.rb
diffend-monitor-0.2.46 lib/diffend/request_verdict.rb
diffend-0.2.46 lib/diffend/request_verdict.rb
diffend-0.2.45 lib/diffend/request_verdict.rb
diffend-monitor-0.2.44 lib/diffend/request_verdict.rb
diffend-0.2.44 lib/diffend/request_verdict.rb
diffend-monitor-0.2.43 lib/diffend/request_verdict.rb
diffend-0.2.43 lib/diffend/request_verdict.rb
diffend-monitor-0.2.42 lib/diffend/request_verdict.rb
diffend-0.2.42 lib/diffend/request_verdict.rb
diffend-monitor-0.2.41 lib/diffend/request_verdict.rb
diffend-0.2.41 lib/diffend/request_verdict.rb