Sha256: e9f3ce85293bcd68847ce24cf4b3ac0e687d8c993eed88eecfeaf5e0a9831edb

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 KB

Contents

module Exchangemarketplace
  class Client
    URL = "https://exchangemarketplace.com"

    attr_reader :last_response

    def shops(page: 1)
      @last_response = client.get "/shops.json", page: page
      @last_response.body["shops"].map do |shop|
        shop_record = shop["shopifyShopRecord"]

        record = Record.new(
          average_monthly_revenue: shop_record["averageMonthlyRevenue"],
          average_monthly_traffic: shop_record["averageMonthlyTraffic"]
        )

        Shop.new(
          id:                       shop["id"],
          title:                    shop["title"],
          price:                    shop["salePrice"],
          handle:                   shop["handle"],
          sold:                     shop["sold"],
          inventory_value:          shop["inventoryValue"],
          average_profit_per_month: shop["averageProfitPerMonth"],
          contest:                  shop["isContest"],
          private:                  shop["isPrivate"],
          starter_shop:             shop["starterShop"],
          shop_domain:              shop["shopDomain"],
          overall_profit_margins:   shop["overallProfitMargins"],
          record:                   record
        )
      end
    end

    private

    def client
      @client ||= Faraday.new(url: URL) do |conn|
        conn.response :json, content_type: /\bjson$/
        conn.adapter Faraday.default_adapter
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
exchangemarketplace-0.1.0 lib/exchangemarketplace/client.rb