Skip to main content

I'm trying to work with the call log API and ensure I retrieve all the possible data. According to the docs, the result has a paging object that MAY return totalPages or totalElements. In all of my calls to the call log, I never see these values. Given that, how do I know when to stop fetching data?

To test I tried to paginate 2 items at a time. My call log has 4 items in it so I figured this would let me test fetching two pages. On the first request, the paging result has pageStart of 0, which means the first record is index 0. I then fetch my next page, the same. My code then fetches a third page, which is wrong of course, and I see pageStart now has a value of 2, which doesn't make sense as it should be an array of 2 values.

So *in theory*, I could say if pageStart > what my page max should be (well using 0 based indexes) then it means to stop, but is that right?


Just a quick answer, I recommend you to use the navigation object to navigate thru reading your call log.


This was meant to be a comment on the last user's response, but comments have a max set of chars.

I tried that, but in my testing the URLs didn't make sense. Consider - this is the result I get after fetching my second page, which is the last:


navigation {
nextPage: {
uri: 'https://platform.devtest.ringcentral.com/restapi/v1.0/account/272299004/extension/272299004/call-log?view=Detailed&direction=Inbound&showBlocked=true&withRecording=false&dateFrom=2020-01-01T00:00:00.000Z&page=3&perPage=2'
},
previousPage: {
uri: 'https://platform.devtest.ringcentral.com/restapi/v1.0/account/272299004/extension/272299004/call-log?view=Detailed&direction=Inbound&showBlocked=true&withRecording=false&dateFrom=2020-01-01T00:00:00.000Z&page=1&perPage=2'
},
firstPage: {
uri: 'https://platform.devtest.ringcentral.com/restapi/v1.0/account/272299004/extension/272299004/call-log?view=Detailed&direction=Inbound&showBlocked=true&withRecording=false&dateFrom=2020-01-01T00:00:00.000Z&page=1&perPage=2'
},
lastPage: {
uri: 'https://platform.devtest.ringcentral.com/restapi/v1.0/account/272299004/extension/272299004/call-log?view=Detailed&direction=Inbound&showBlocked=true&withRecording=false&dateFrom=2020-01-01T00:00:00.000Z&page=1&perPage=2'
}
}

Notice how firstPage and lastPage have, as far as I can see, the exact same URL. nextPage doesn't indicate it won't return anything.

Here's what I get after fetching my first page.

navigation {
nextPage: {
uri: 'https://platform.devtest.ringcentral.com/restapi/v1.0/account/272299004/extension/272299004/call-log?view=Detailed&direction=Inbound&showBlocked=true&withRecording=false&dateFrom=2020-01-01T00:00:00.000Z&page=2&perPage=2'
},
firstPage: {
uri: 'https://platform.devtest.ringcentral.com/restapi/v1.0/account/272299004/extension/272299004/call-log?view=Detailed&direction=Inbound&showBlocked=true&withRecording=false&dateFrom=2020-01-01T00:00:00.000Z&page=1&perPage=2'
},
lastPage: {
uri: 'https://platform.devtest.ringcentral.com/restapi/v1.0/account/272299004/extension/272299004/call-log?view=Detailed&direction=Inbound&showBlocked=true&withRecording=false&dateFrom=2020-01-01T00:00:00.000Z&page=1&perPage=2'
}
}

In this case, nextPage would work, but lastPage is the same as firstPage again.


Reply