lukaszraczylo/wykop-ruby

View on GitHub
lib/wykop/operations/search.rb

Summary

Maintainability
A
1 hr
Test Coverage
module Wykop
  module Operations
    class Search
      # Documentation: http://www.wykop.pl/dla-programistow/dokumentacja/#info6_6_1
      def initialize(client)
        @client = client
        @request = Wykop::Operations::Request.new(@client)
      end

      def search_index( p = {} )
        if ! p.has_key?(:page); p[:page] = 0; end
        return @request.execute(replace_url( { :banana => 'search', :potato => 'index', :page => p[:page] } ), { 'q' => p[:q] })
      end

      def search_entries( p = {} )
        if ! p.has_key?(:page); p[:page] = 0; end
        return @request.execute(replace_url( { :banana => 'search', :potato => 'entries', :page => p[:page] } ), { 'q' => p[:q] })
      end

      def search_profiles( p = {} )
        if ! p.has_key?(:page); p[:page] = 0; end
        return @request.execute(replace_url( { :banana => 'search', :potato => 'profiles', :page => p[:page] } ), { 'q' => p[:q] })
      end

      def search_links( p = {} )
        if ! p.has_key?(:page); p[:page] = 0; end
        p.delete(:page)
        return @request.execute(replace_url( { :banana => 'search', :potato => 'links', :page => p[:page] } ), p)
      end

      def replace_url( p = {} )
        standard_url = "#{@client.configuration.api_host}/banana/potato/appkey,#{@client.configuration.app_user_key}/userkey,#{@client.user_info['userkey']}/paged"
        if ! p.has_key?(:page)
          standard_url = standard_url.gsub(/\/paged/, '')
        else
          standard_url = standard_url.gsub(/paged/, "page,#{p[:page]}")
        end
        return standard_url.gsub(/banana/, p[:banana]).gsub(/potato/, p[:potato])
      end
    end
  end
end