package com.abewy.android.apps.klyph.facebook.request;
import java.util.ArrayList;
import org.json.JSONArray;
import com.abewy.android.apps.klyph.Klyph;
import com.abewy.android.apps.klyph.core.fql.serializer.PageDeserializer;
import com.abewy.android.apps.klyph.core.graph.GraphObject;
public class ElementPageRequest extends KlyphQuery
{
@Override
public boolean isMultiQuery()
{
return true;
}
@Override
public String getQuery(String id, String offset)
{
String query1 = "SELECT page_id,name,username,description,page_url,categories,is_community_page,pic_small,pic_big,pic_square,pic,pic_large,pic_cover,unread_notif_count,new_like_count,fan_count,global_brand_parent_page_id,type,website,has_added_app,general_info,can_post,checkins,is_published";
query1 += " FROM page WHERE page_id IN (";
query1 += "SELECT page_id from page_fan where uid = " + id + " LIMIT " + getOffset(offset, "0") + ", 25)";
String query2 = "SELECT id, url from square_profile_pic WHERE id IN (SELECT page_id FROM #query1) AND size = " + Klyph.getStandardImageSizeForRequest();
return multiQuery(query1, query2);
}
@Override
public ArrayList<GraphObject> handleResult(JSONArray[] result)
{
JSONArray data = result[0];
JSONArray urls = result[1];
assocData(data, urls, "page_id", "id", "pic", "url");
PageDeserializer deserializer = new PageDeserializer();
ArrayList<GraphObject> pages = (ArrayList<GraphObject>) deserializer.deserializeArray(data);
setHasMoreData(pages.size() >= 25);
return pages;
}
}