/soc/2015/nakulgulati/main: a85f2e4fe1b4: hangouts: api - hangou...

[email protected]
Newsgroups gmane.comp.gnome.gaim.cvs
Message-ID <[email protected]>
Changeset: a85f2e4fe1b4035f3abc8d3f8a346ca82a261fcc
Author:	 Nakul Gulati
Date:	 2015-08-03 15:54 +0800
Branch:	 hangouts
URL: https://hg.pidgin.im/soc/2015/nakulgulati/main/rev/a85f2e4fe1b4

Description:

hangouts: api - hangouts_api_request changes

diffstat:

 libpurple/protocols/hangouts/api.c |  45 +++++++++++++++++--------------------
 libpurple/protocols/hangouts/api.h |   5 +--
 2 files changed, 23 insertions(+), 27 deletions(-)

diffs (158 lines):

diff --git a/libpurple/protocols/hangouts/api.c b/libpurple/protocols/hangouts/api.c
--- a/libpurple/protocols/hangouts/api.c
+++ b/libpurple/protocols/hangouts/api.c
@@ -67,6 +67,8 @@ struct _HangoutsApiPrivate
 struct _HangoutsApiHttpInfo
 {
   PurpleHttpCallback callback;
+  gchar *endpoint;
+  gchar *method;
 };
 
 static void
@@ -377,12 +379,11 @@ hangouts_api_get_request_header (Hangout
 
 void
 hangouts_api_request (HangoutsApi *api, const HangoutsApiHttpInfo *info,
-		      gchar *url_endpoint, gboolean use_json,
-		      gchar *request_body)
+		      gboolean use_json, gchar *request_body)
 {
 
   HangoutsApiPrivate *priv = api->priv;
-  gchar *url = g_strconcat (HANGOUTS_API_BASE_URL, url_endpoint, "?alt=json");
+  gchar *url = g_strconcat (HANGOUTS_API_BASE_URL, info->endpoint, "?alt=json");
   PurpleHttpRequest *request;
 
   request = purple_http_request_new (url);
@@ -396,7 +397,7 @@ hangouts_api_request (HangoutsApi *api, 
     }
 
   purple_http_request_header_add (request, "content-type", content_type);
-  purple_http_request_set_method (request, "POST");
+  purple_http_request_set_method (request, info->method);
   purple_http_request_set_contents (request, request_body, -1);
   purple_http_request (priv->gc, request, info->callback, api);
 }
@@ -411,16 +412,15 @@ hangouts_api_getselfinfo_cb (PurpleHttpC
 void
 hangouts_api_getselfinfo (HangoutsApi *api)
 {
-  static const HangoutsApiHttpInfo *info =
-    { hangouts_api_getselfinfo_cb };
+  static const HangoutsApiHttpInfo info =
+    { hangouts_api_getselfinfo_cb, "contacts/selfinfo", "POST" };
 
-  gchar *url_endpoint, *header, *body;
+  gchar *header, *body;
 
-  url_endpoint = "contacts/selfinfo";
   header = hangouts_api_get_request_header (api);
   body = g_strdup_printf ("[%s,[], []]", header);
 
-  hangouts_api_request (api, info, url_endpoint, TRUE, body);
+  hangouts_api_request (api, &info, TRUE, body);
 }
 
 static void
@@ -433,14 +433,13 @@ hangouts_api_syncallevents_cb (PurpleHtt
 void
 hangouts_api_syncallevents (HangoutsApi *api)
 {
-  static const HangoutsApiHttpInfo *info =
-    { hangouts_api_syncallevents_cb };
+  static const HangoutsApiHttpInfo info =
+    { hangouts_api_syncallevents_cb, "conversations/syncallnewevents", "POST" };
 
-  gchar *url_endpoint, *header, *body;
+  gchar *header, *body;
   GTimeVal *time_stamp;
 
   time_stamp = api->priv->last_sync_timestamp;
-  url_endpoint = "conversations/syncallnewevents";
   header = hangouts_api_get_request_header (api);
   body = g_strdup_printf ("["
 			  "%s, "
@@ -454,7 +453,7 @@ hangouts_api_syncallevents (HangoutsApi 
 			  "]",
 			  header, g_time_val_to_iso8601 (time_stamp));
 
-  hangouts_api_request (api, info, url_endpoint, FALSE, body);
+  hangouts_api_request (api, &info, FALSE, body);
 }
 
 static void
@@ -471,14 +470,13 @@ hangouts_api_sendchatmessage (HangoutsAp
 			      HangoutsOffTheRecordStatus otr_status)
 {
   //TODO: segments should be in the protojson format
-  static const HangoutsApiHttpInfo *info =
-    { hangouts_api_sendchatmessage_cb };
+  static const HangoutsApiHttpInfo info =
+    { hangouts_api_sendchatmessage_cb, "conversations/sendchatmessage", "POST" };
 
   guint32 client_generated_id;
-  gchar *url_endpoint, *image_info, *body, *header;
+  gchar *image_info, *body, *header;
 
   client_generated_id = g_random_int_range (0, G_MAXINT32);
-  url_endpoint = "conversations/sendchatmessage";
   header = hangouts_api_get_request_header (api);
   image_info = "None";
 
@@ -500,7 +498,7 @@ hangouts_api_sendchatmessage (HangoutsAp
 			  header, segments, image_info, conversation_id,
 			  client_generated_id, otr_status);
 
-  hangouts_api_request (api, info, url_endpoint, FALSE, body);
+  hangouts_api_request (api, &info, FALSE, body);
 }
 
 static void
@@ -515,13 +513,12 @@ void
 hangouts_api_setactiveclient (HangoutsApi *api, gboolean is_active,
 			      gchar *timeout_sec)
 {
-  static const HangoutsApiHttpInfo *info =
-    { hangouts_api_setactiveclient_cb };
+  static const HangoutsApiHttpInfo info =
+    { hangouts_api_setactiveclient_cb, "clients/setactiveclient", "POST" };
 
-  gchar *url_endpoint, *is_active_flag, *body, *header;
+  gchar *is_active_flag, *body, *header;
   HangoutsApiPrivate *priv;
 
-  url_endpoint = "clients/setactiveclient";
   header = hangouts_api_get_request_header (api);
   priv = api->priv;
   is_active_flag = "False";
@@ -539,6 +536,6 @@ hangouts_api_setactiveclient (HangoutsAp
 			  header, is_active_flag, priv->email, priv->client_id,
 			  timeout_sec);
 
-  hangouts_api_request (api, info, url_endpoint, FALSE, body);
+  hangouts_api_request (api, &info, FALSE, body);
 }
 
diff --git a/libpurple/protocols/hangouts/api.h b/libpurple/protocols/hangouts/api.h
--- a/libpurple/protocols/hangouts/api.h
+++ b/libpurple/protocols/hangouts/api.h
@@ -82,7 +82,7 @@ void
 hangouts_api_fetch_login_cookies (HangoutsApi *api);
 
 void
-hangouts_api_get_private_token(HangoutsApi *api);
+hangouts_api_get_private_token (HangoutsApi *api);
 
 void
 hangouts_api_get_chat_init (HangoutsApi *api);
@@ -92,8 +92,7 @@ hangouts_api_get_request_header (Hangout
 
 void
 hangouts_api_request (HangoutsApi *api, const HangoutsApiHttpInfo *info,
-		      gchar *url_endpoint, gboolean use_json,
-		      gchar *request_body);
+		      gboolean use_json, gchar *request_body);
 
 void
 hangouts_api_getselfinfo (HangoutsApi *api);

_______________________________________________
Commits mailing list
[email protected]
https://pidgin.im/cgi-bin/mailman/listinfo/commits
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.