]> www.infradead.org Git - pidgin-chime.git/commitdiff
Update user search to use Express API
authorDavid Woodhouse <dwmw@amazon.co.uk>
Tue, 4 Dec 2018 10:22:08 +0000 (10:22 +0000)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Tue, 4 Dec 2018 10:22:10 +0000 (10:22 +0000)
Hm, how are we supposed to find it?

chime/chime-connection-private.h
chime/chime-connection.c
chime/chime-contact.c

index 478a0116d63a6079ad7e4a7ea1963cd606770713..5c0b605abc29fc106ca877930be41e6738403caa 100644 (file)
@@ -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;
 
index bff801f7796142b8b38bee146f89cd70f3d17606..9be4eeeaf8283c6e8ecd0444641022453de8fa57 100644 (file)
@@ -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);
        }
 
index 4ef3432f8e05c7d7bdd14441a7f494f17b4eb525..84faa32703707f7650c0afb7ac0d06b27a3f1e57 100644 (file)
@@ -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");