Commit 9ec1f0c4 authored by Jose Ernesto Suarez's avatar Jose Ernesto Suarez

Merge branch 'fix/coql-pagination' into 'master'

Fix/coql pagination

See merge request !3
parents 88f34a8f 6ffbb2c2
.DS_Store .DS_Store
zoholib-*.gem zoholib*.gem
TO-DO v0.0.5b:
\ No newline at end of file - Se corrige la el motodo de consulta coql para poder recibir mas de 200 registros.
\ No newline at end of file
# frozen_string_literal: true # frozen_string_literal: true
module Wedoops module Wedoops
module Zoholib module Zoholib
VERSION = '0.0.4b' VERSION = '0.0.5b'
end end
end end
\ No newline at end of file
...@@ -130,8 +130,8 @@ module Wedoops ...@@ -130,8 +130,8 @@ module Wedoops
# ojo, maxrecords no tiene en cuenta cuantos registros se descaargan # ojo, maxrecords no tiene en cuenta cuantos registros se descaargan
# en cada ocasion por lo que puede devolver registros de mas # en cada ocasion por lo que puede devolver registros de mas
# como resto de la llamada anterior # como resto de la llamada anterior
page=1 #page=1
maxrecords=-1 #maxrecords=-1
result = Hash.new result = Hash.new
result[:data] = Array.new result[:data] = Array.new
params.delete(:page) if params.has_key?(:page) params.delete(:page) if params.has_key?(:page)
...@@ -140,24 +140,30 @@ module Wedoops ...@@ -140,24 +140,30 @@ module Wedoops
params.delete(:max_records) params.delete(:max_records)
end end
loop do loop do
params.merge!(page: page) #params.merge!(page: page)
response=self.query(coql) response=self.query(build_offset(coql,result[:data].size))
return response if response[:status] == "error" return response if response[:status] == "error"
if response[:info][:more_records] == true #pp response
page+=1
result[:data].concat(response[:data]) result[:data].concat(response[:data])
break if maxrecords > 0 && result[:data].size >= maxrecords break unless response[:info][:more_records]
else
break
end
@logger.debug("#{result[:data].size} records") @logger.debug("#{result[:data].size} records")
@logger.debug("#{result[:data].last} ") @logger.debug("#{result[:data].last} ")
end end
return result return result
end end
private private
def build_offset(query,offset=0)
# las consultas de COQL no paginan, trabajan con offsets
@logger.debug("Generando el offset")
uplimit = 200
#+ offset
query_offset = "#{query} LIMIT #{offset},#{uplimit}"
@logger.debug(query_offset)
return query_offset
end
def build_header def build_header
{:headers => { "Authorization" => "Zoho-oauthtoken #{@token}"}} {:headers => { "Authorization" => "Zoho-oauthtoken #{@token}"}}
end end
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment