Sha256: 8b17583fab056ffa3f7b50bea2bacdef4675565b575ff503beb556b986b28e36

Contents?: true

Size: 1023 Bytes

Versions: 18

Compression:

Stored size: 1023 Bytes

Contents

module CMSScanner
  # XML RPC
  class XMLRPC < InterestingFile
    # @param [ String ] method
    # @param [ Array ] params
    # @param [ Hash ] request_params
    #
    # @return [ Typhoeus::Response ]
    def call(method, params = [], request_params = {})
      NS::Browser.post(url, request_params.merge(body: request_body(method, params)))
    end

    # Might be better to use Nokogiri to create the XML body ?
    #
    # @param [ String ] method
    # @param [ Array ] params
    #
    # @return [ String ] The body of the XML RPC request
    def request_body(method, params = [])
      p_body = ''

      params.each { |p| p_body << "<param><value><string>#{p}</string></value></param>" }

      body = '<?xml version="1.0"?><methodCall>'
      body << "<methodName>#{method}</methodName>"
      body << "<params>#{p_body}</params>" unless p_body.length == 0
      body << '</methodCall>'
    end

    # Use the system.listMethods to get the list of available methods ?
    # def entries
    #
    # end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
cms_scanner-0.0.19 app/models/xml_rpc.rb
cms_scanner-0.0.18 app/models/xml_rpc.rb
cms_scanner-0.0.17 app/models/xml_rpc.rb
cms_scanner-0.0.16 app/models/xml_rpc.rb
cms_scanner-0.0.15 app/models/xml_rpc.rb
cms_scanner-0.0.14 app/models/xml_rpc.rb
cms_scanner-0.0.13 app/models/xml_rpc.rb
cms_scanner-0.0.12 app/models/xml_rpc.rb
cms_scanner-0.0.11 app/models/xml_rpc.rb
cms_scanner-0.0.10 app/models/xml_rpc.rb
cms_scanner-0.0.9 app/models/xml_rpc.rb
cms_scanner-0.0.8 app/models/xml_rpc.rb
cms_scanner-0.0.7 app/models/xml_rpc.rb
cms_scanner-0.0.6 app/models/xml_rpc.rb
cms_scanner-0.0.5 app/models/xml_rpc.rb
cms_scanner-0.0.4 app/models/xml_rpc.rb
cms_scanner-0.0.3 app/models/xml_rpc.rb
cms_scanner-0.0.2 app/models/xml_rpc.rb