diff options
| -rw-r--r-- | facebook/facebook-api.c | 37 | 
1 files changed, 26 insertions, 11 deletions
| diff --git a/facebook/facebook-api.c b/facebook/facebook-api.c index 184cb89..c0dde22 100644 --- a/facebook/facebook-api.c +++ b/facebook/facebook-api.c @@ -2001,24 +2001,15 @@ fb_api_contact(FbApi *api, FbId uid)      fb_api_http_query(api, FB_API_QUERY_CONTACT, bldr, fb_api_cb_contact);  } -static void -fb_api_cb_contacts(FbHttpRequest *req, gpointer data) +static GSList * +fb_api_cb_contacts_nodes(FbApi *api, JsonNode *root, GSList *users)  { -    const gchar *cursor;      const gchar *str; -    FbApi *api = data;      FbApiPrivate *priv = api->priv;      FbApiUser *user;      FbId uid;      FbJsonValues *values; -    gboolean complete;      GError *err = NULL; -    GSList *users = NULL; -    JsonNode *root; - -    if (!fb_api_http_chk(api, req, &root)) { -        return; -    }      values = fb_json_values_new(root);      fb_json_values_add(values, FB_JSON_TYPE_STR, FALSE, @@ -2055,6 +2046,30 @@ fb_api_cb_contacts(FbHttpRequest *req, gpointer data)      g_object_unref(values); +    return users; +} + +static void +fb_api_cb_contacts(FbHttpRequest *req, gpointer data) +{ +    const gchar *cursor; +    const gchar *str; +    FbApi *api = data; +    FbApiPrivate *priv = api->priv; +    FbApiUser *user; +    FbId uid; +    FbJsonValues *values; +    gboolean complete; +    GError *err = NULL; +    GSList *users = NULL; +    JsonNode *root; + +    if (!fb_api_http_chk(api, req, &root)) { +        return; +    } + +    users = fb_api_cb_contacts_nodes(api, root, users); +      values = fb_json_values_new(root);      fb_json_values_add(values, FB_JSON_TYPE_STR, FALSE,                         "$.viewer.messenger_contacts.page_info.end_cursor"); | 
