From: David Woodhouse Date: Tue, 4 Dec 2018 10:22:08 +0000 (+0000) Subject: Update user search to use Express API X-Git-Tag: v1.2~7 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=14f559de71f83f6ece4fb1269add36f1c9dbd670;p=pidgin-chime.git Update user search to use Express API Hm, how are we supposed to find it? --- diff --git a/chime/chime-connection-private.h b/chime/chime-connection-private.h index 478a011..5c0b605 100644 --- a/chime/chime-connection-private.h +++ b/chime/chime-connection-private.h @@ -128,6 +128,8 @@ typedef struct { const gchar *contacts_url; const gchar *messaging_url; const gchar *conference_url; + const gchar *feature_url; + gchar *express_url; SoupSession *soup_sess; diff --git a/chime/chime-connection.c b/chime/chime-connection.c index bff801f..9be4eee 100644 --- a/chime/chime-connection.c +++ b/chime/chime-connection.c @@ -63,6 +63,7 @@ chime_connection_finalize(GObject *object) g_free(priv->session_token); g_free(priv->device_token); g_free(priv->server); + g_free(priv->express_url); chime_connection_log(self, CHIME_LOGLVL_MISC, "Connection finalized: %p\n", self); @@ -401,6 +402,7 @@ static gboolean parse_regnode(ChimeConnection *self, JsonNode *regnode) JsonObject *obj = json_node_get_object(priv->reg_node); JsonNode *node, *sess_node = json_object_get_member(obj, "Session"); const gchar *sess_tok; + char *express_url, *p; if (!sess_node) return FALSE; @@ -461,6 +463,20 @@ static gboolean parse_regnode(ChimeConnection *self, JsonNode *regnode) if (!parse_string(node, "RestUrl", &priv->conference_url)) return FALSE; + node = json_object_get_member(obj, "Feature"); + if (!parse_string(node, "RestUrl", &priv->feature_url)) + return FALSE; + + /* Ick. How are we supposed to discover this? */ + express_url = g_strdup(priv->feature_url); + p = strstr(express_url, "feature"); + if (!p) { + g_free(express_url); + return FALSE; + } + memcpy(p, "express", 7); + priv->express_url = express_url; + return TRUE; } @@ -707,6 +723,8 @@ static void renew_cb(ChimeConnection *self, SoupMessage *msg, while ( (cmsg = g_queue_pop_head(priv->msgs_pending_auth)) ) { soup_message_headers_replace(cmsg->msg->request_headers, "Cookie", cookie_hdr); + soup_message_headers_replace(cmsg->msg->request_headers, + "X-Chime-Auth-Token", cookie_hdr); chime_connection_log(self, CHIME_LOGLVL_MISC, "Requeued %p to %s\n", cmsg->msg, soup_uri_get_path(soup_message_get_uri(cmsg->msg))); g_object_ref(self); @@ -817,6 +835,7 @@ chime_connection_queue_http_request(ChimeConnection *self, JsonNode *node, if (priv->session_token) { gchar *cookie = g_strdup_printf("_aws_wt_session=%s", priv->session_token); soup_message_headers_append(cmsg->msg->request_headers, "Cookie", cookie); + soup_message_headers_append(cmsg->msg->request_headers, "X-Chime-Auth-Token", cookie); g_free(cookie); } diff --git a/chime/chime-contact.c b/chime/chime-contact.c index 4ef3432..84faa32 100644 --- a/chime/chime-contact.c +++ b/chime/chime-contact.c @@ -849,7 +849,7 @@ void chime_connection_autocomplete_contact_async(ChimeConnection *cxn, GTask *task = g_task_new(cxn, cancellable, callback, user_data); - SoupURI *uri = soup_uri_new_printf(priv->contacts_url, "/registered_auto_completes"); + SoupURI *uri = soup_uri_new_printf(priv->express_url, "/bazl/contact-auto-completes"); JsonBuilder *jb = json_builder_new(); jb = json_builder_begin_object(jb); jb = json_builder_set_member_name(jb, "q");