Passing in the computed ids and the idSpec would allow the implementer
to do what they wanted.  This also solves the problem of the
TOP_FRIENDS sort -- currently there's no way to determine this since
we don't know if it's the top friends for the owner/viewer given
OWNER_FRIENDS or VIEWER_FRIENDS.



On 4/6/08 8:29 AM, "Cassie" <[EMAIL PROTECTED]> wrote:

> The js api supports paging, sorting and filtering. See this page:
> http://code.google.com/apis/opensocial/docs/0.7/reference/opensocial.DataReque
> st.PeopleRequestFields.html
> 
> The java api supports pagination for the PeopleService for this function:
> 
> public ResponseItem<ApiCollection<Person>> getPeople(List<String> ids,
>       SortOrder sortOrder, FilterType filter, int first, int max,
>       Set<String> profileDetails, GadgetToken token);
> 
> It just doesn't support pagination for the getIds function. We could
> add pagination to the getIds function but then that function would
> need to know how to sort. But if it needs to know how to sort then it
> has to have activity, profile and data info. That doesn't seem like a
> really good pattern though.
> 
> One possible way to do things would be to get rid of the getIds
> function and to have each getPeople, getActivities, getData call
> translate the idSpec into a list of ids itself. That eliminates some
> of the nice separation that we currently have though.
> 
> So, I'm not sure how we want to handle this. Feel free to propose a solution.
> Thanks.
> 
> - Cassie
> 
> 
> On Sat, Apr 5, 2008 at 5:41 AM, Raymond Auge <[EMAIL PROTECTED]> wrote:
>> 
>>  There should be some way if providing an integer total from the backend to
>> the front end... returning a list of 10,000,000 ids is simply not
>> acceptable...
>> 
>>  Now, I'm fairly certain that no one will ever have 10,000,000 friends... (I
>> certainly don't :) ). BUT... it's more an issue of scalability... It is
>> certainly conceivable that I have thousands of events... and it'd be nice to
>> be able to get that number without ever having to get them all...
>> 
>>  These services need methods to return the total for a given userId.
>> 
>>  org.apache.shindig.social.opensocial.ActivitiesService
>>  org.apache.shindig.social.opensocial.PeopleService
>> 
>>  This method needs paging support...
>> 
>>  List<String>
>> org.apache.shindig.social.opensocial.PeopleService.getIds(IdSpec idSpec,
>> GadgetToken token) throws JSONException
>> 
>>  This method needs paging support:
>> 
>>  ResponseItem<List<Activity>>
>> org.apache.shindig.social.opensocial.ActivitiesService.getActivities(List<Str
>> ing>
>> userIds, GadgetToken token)
>> 
>>  I think this missing functionality extends all the way to the front end JS
>> API.
>> 
>>  AGAIN... maybe I'm just not understanding it all correctly. If so, can
>> someone explain it to me?
>> 
>>  Ray
>> 
>> 
>> 
>>  On Fri, 2008-04-04 at 23:22 -0400, Raymond Auge wrote:
>>  Suppose for example I have 10,000,000 Friends... I certainly don't want
>> to ever present them all in the UI... secondly, thought I can specify
>> that I want one page from "first" to "first + max", but that does not
>> provide me with any way to tell the UI that there are 10,000,000, so
>> that I can display the total and/or produce a page list...
>> 
>> So, like I said, I might just be missing something and/or not
>> understanding the usage of the API (at least from the backend
>> perspective)???
>> 
>> It's simply wrong to have to produce the total based on returning the
>> total result set and then pruning out the desired page.
>> 
>> i.e. How can I get the total number of "friends" WITHOUT returning them
>> all from the DB? This doesn't seem possible through any of the methods
>> in the backend service tier.
>> 
>> 
>> Ray
>> 
>> On Fri, 2008-04-04 at 10:13 +0200, Cassie wrote:
>> 
>>> Which entities are you talking about?
>>> 
>>> - Cassie
>>> 
>>> 
>>> On Fri, Apr 4, 2008 at 2:05 AM, Raymond Auge <[EMAIL PROTECTED]> wrote:
>>>> Hello All,
>>>> 
>>>> There does not appear to be a way to return the total number of some
>>>> entity through any of the APIs.
>>>> 
>>>> I only see a way of returning a list of entities. Not the total count
>>>> (which I'd need in order to build some pagination).
>>>> 
>>>> Perhaps I missed something?
>>>> 
>>>> Raymond Augé
>>>> Software Engineer
>>>> Liferay, Inc.
>>>> Enterprise. Open Source. For Life.
>>>> 
>>> 
>> 
>> Raymond Augé
>> Software Engineer
>> Liferay, Inc.
>> Enterprise. Open Source. For Life.
>> 
>> 
>>  Raymond Augé
>>  Software Engineer
>>  Liferay, Inc.
>>  Enterprise. Open Source. For Life.

Reply via email to