Sha256: 73250bb1bd2e7e7d3617c18863161e6443af656b27d1b72b89d3e70ce7c8aaef

Contents?: true

Size: 1.59 KB

Versions: 36

Compression:

Stored size: 1.59 KB

Contents

require 'open-uri'

module Deliver
  # A wrapper around the Apple iTunes Search API to access app information like
  # the app identifier of an app.
  class ItunesSearchApi

    # Fetch all information you can get from a specific AppleID of an app
    # @param id (int) The AppleID of the given app. This usually consists of 9 digits.
    # @return (Hash) the response of the first result from Apple (https://itunes.apple.com/lookup?id=284882215)
    # @example Response of Facebook App: https://itunes.apple.com/lookup?id=284882215
    #  { 
    #   ...
    #   artistName: "Facebook, Inc.",
    #   price: 0,
    #   version: "14.9",
    #   ...
    #  }
    def self.fetch(id)
      # Example: https://itunes.apple.com/lookup?id=284882215
      fetch_url("https://itunes.apple.com/lookup?id=#{id.to_s}")
    end

    def self.fetch_by_identifier(app_identifier)
      # Example: http://itunes.apple.com/lookup?bundleId=net.sunapps.1
      fetch_url("https://itunes.apple.com/lookup?bundleId=#{app_identifier}")
    end
      

    # This method only fetches the bundle identifier of a given app
    # @param id (int) The AppleID of the given app. This usually consists of 9 digits.
    # @return (String) the Bundle identifier of the app
    def self.fetch_bundle_identifier(id)
      self.fetch(id)['bundleId']
    end

    private
      def self.fetch_url(url)
        response = JSON.parse(open(url).read)
        return nil if response['resultCount'] == 0

        return response['results'].first
      rescue
        Helper.log.error "Could not find object '#{url}' using the iTunes API"
        nil
      end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
deliver-0.7.10 lib/deliver/itunes_search_api.rb
deliver-0.7.9 lib/deliver/itunes_search_api.rb
deliver-0.7.8 lib/deliver/itunes_search_api.rb
deliver-0.7.7 lib/deliver/itunes_search_api.rb
deliver-0.7.6 lib/deliver/itunes_search_api.rb
deliver-0.7.5 lib/deliver/itunes_search_api.rb
deliver-0.7.4 lib/deliver/itunes_search_api.rb
deliver-0.7.3 lib/deliver/itunes_search_api.rb
deliver-0.7.2 lib/deliver/itunes_search_api.rb
deliver-0.7.1 lib/deliver/itunes_search_api.rb
deliver-0.7.0 lib/deliver/itunes_search_api.rb
deliver-0.6.0 lib/deliver/itunes_search_api.rb
deliver-0.5.0 lib/deliver/itunes_search_api.rb
deliver-0.4.2 lib/deliver/itunes_search_api.rb
deliver-0.4.1 lib/deliver/itunes_search_api.rb
deliver-0.4.0 lib/deliver/itunes_search_api.rb
deliver-0.4.0.beta1 lib/deliver/itunes_search_api.rb
deliver-0.3.7 lib/deliver/itunes_search_api.rb
deliver-0.3.7.beta2 lib/deliver/itunes_search_api.rb
deliver-0.3.7.beta1 lib/deliver/itunes_search_api.rb