Sha256: 4a2fecfc825ec93eb63b6b357e2bf3cdcf05b6c4748f4b2f74bbc51139f62f4d

Contents?: true

Size: 704 Bytes

Versions: 2

Compression:

Stored size: 704 Bytes

Contents

# frozen_string_literal: true

module AppStoreConnectApi
  class ApiError < StandardError
    attr_reader :errors

    def initialize(errors)
      @errors = errors
      super 'App Store Connect API request failed'
    end

    def code
      errors.first[:code]
    end

    def status
      errors.first[:status].to_i
    end

    def details
      errors.map { |e| [e[:title], e[:detail]] }.flatten.uniq
    end

    def associated_errors
      associated_errors = errors.map { |error| error.dig :meta, :associated_errors }.compact
      return [] if associated_errors.blank?

      associated_errors.map { |error_hash| error_hash.map { |_, errors| errors.pluck :detail } }.flatten
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rocleung_as_api_client-1.0.0 lib/app_store_connect_api/api_error.rb
rocleung_as_api_client-0.38.0 lib/app_store_connect_api/api_error.rb