1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-11-23 17:02:25 +03:00

Clean up JSON handling in identity server requests

This commit is contained in:
Travis Ralston
2019-08-22 08:32:20 -06:00
parent 60b7252597
commit 8b9bef5cb3
2 changed files with 6 additions and 17 deletions

View File

@@ -1783,8 +1783,7 @@ MatrixBaseApis.prototype.requestEmailToken = async function(
try { try {
const response = await this._http.idServerRequest( const response = await this._http.idServerRequest(
undefined, "POST", "/validate/email/requestToken", undefined, "POST", "/validate/email/requestToken",
JSON.stringify(params), httpApi.PREFIX_IDENTITY_V2, params, httpApi.PREFIX_IDENTITY_V2, identityAccessToken,
identityAccessToken,
); );
// TODO: Fold callback into above call once v1 path below is removed // TODO: Fold callback into above call once v1 path below is removed
if (callback) callback(null, response); if (callback) callback(null, response);
@@ -1839,8 +1838,7 @@ MatrixBaseApis.prototype.submitMsisdnToken = async function(
try { try {
return await this._http.idServerRequest( return await this._http.idServerRequest(
undefined, "POST", "/validate/msisdn/submitToken", undefined, "POST", "/validate/msisdn/submitToken",
JSON.stringify(params), httpApi.PREFIX_IDENTITY_V2, params, httpApi.PREFIX_IDENTITY_V2, identityAccessToken,
identityAccessToken,
); );
} catch (err) { } catch (err) {
if (err.cors === "rejected" || err.httpStatus === 404) { if (err.cors === "rejected" || err.httpStatus === 404) {
@@ -2064,7 +2062,7 @@ MatrixBaseApis.prototype.bulkLookupThreePids = async function(
}; };
logger.warn("IS doesn't support v2, falling back to deprecated v1"); logger.warn("IS doesn't support v2, falling back to deprecated v1");
return await this._http.idServerRequest( return await this._http.idServerRequest(
undefined, "POST", "/bulk_lookup", JSON.stringify(params), undefined, "POST", "/bulk_lookup", params,
httpApi.PREFIX_IDENTITY_V1, identityAccessToken, httpApi.PREFIX_IDENTITY_V1, identityAccessToken,
); );
} }

View File

@@ -405,18 +405,14 @@ module.exports.MatrixHttpApi.prototype = {
uri: fullUri, uri: fullUri,
method: method, method: method,
withCredentials: false, withCredentials: false,
json: false, json: true, // we want a JSON response if we can
_matrix_opts: this.opts, _matrix_opts: this.opts,
headers: {}, headers: {},
}; };
if (method == 'GET') { if (method === 'GET') {
opts.qs = params; opts.qs = params;
} else if (typeof params === "object") { } else if (typeof params === "object") {
opts.json = params; opts.json = params;
} else if (typeof params === "string") {
// Assume the caller has serialised the body to JSON
opts.body = params;
opts.headers['Content-Type'] = "application/json";
} }
if (accessToken) { if (accessToken) {
opts.headers['Authorization'] = `Bearer ${accessToken}`; opts.headers['Authorization'] = `Bearer ${accessToken}`;
@@ -427,12 +423,7 @@ module.exports.MatrixHttpApi.prototype = {
opts, opts,
requestCallback(defer, callback, this.opts.onlyData), requestCallback(defer, callback, this.opts.onlyData),
); );
// ID server does not always take JSON, so we can't use requests' 'json' return defer.promise;
// option as we do with the home server, but it does return JSON, so
// parse it manually
return defer.promise.then(function(response) {
return typeof(response) === 'string' ? JSON.parse(response) : response;
});
}, },
/** /**