You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-28 05:03:59 +03:00
Bake in support for promises.
This means we can specify the SDK's dependency on Q to make setting things up significantly easier.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
* This is an internal module. See {@link MatrixHttpApi} for the public class.
|
||||
* @module http-api
|
||||
*/
|
||||
|
||||
var q = require("q");
|
||||
var utils = require("./utils");
|
||||
|
||||
/*
|
||||
@@ -162,36 +162,39 @@ module.exports.MatrixHttpApi.prototype = {
|
||||
"Expected callback to be a function but got " + typeof callback
|
||||
);
|
||||
}
|
||||
|
||||
return this.opts.request(
|
||||
{
|
||||
uri: uri,
|
||||
method: method,
|
||||
withCredentials: false,
|
||||
qs: queryParams,
|
||||
body: data,
|
||||
json: true,
|
||||
headers: HEADERS,
|
||||
_matrix_opts: this.opts
|
||||
},
|
||||
requestCallback(callback)
|
||||
var defer = q.defer();
|
||||
this.opts.request(
|
||||
{
|
||||
uri: uri,
|
||||
method: method,
|
||||
withCredentials: false,
|
||||
qs: queryParams,
|
||||
body: data,
|
||||
json: true,
|
||||
headers: HEADERS,
|
||||
_matrix_opts: this.opts
|
||||
},
|
||||
requestCallback(defer, callback)
|
||||
);
|
||||
return defer.promise;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var requestCallback = function(userDefinedCallback) {
|
||||
if (!userDefinedCallback) {
|
||||
return undefined;
|
||||
}
|
||||
var requestCallback = function(defer, userDefinedCallback) {
|
||||
userDefinedCallback = userDefinedCallback || function(){};
|
||||
|
||||
return function(err, response, body) {
|
||||
if (err) {
|
||||
return userDefinedCallback(err);
|
||||
if (!err && response.statusCode >= 400) {
|
||||
err = new module.exports.MatrixError(body);
|
||||
}
|
||||
if (response.statusCode >= 400) {
|
||||
return userDefinedCallback(new Error(body));
|
||||
|
||||
if (err) {
|
||||
defer.reject(err);
|
||||
userDefinedCallback(err);
|
||||
}
|
||||
else {
|
||||
defer.resolve(body);
|
||||
userDefinedCallback(null, body);
|
||||
}
|
||||
};
|
||||
@@ -212,4 +215,4 @@ module.exports.MatrixError = function MatrixError(errorJson) {
|
||||
this.data = errorJson;
|
||||
}
|
||||
module.exports.MatrixError.prototype = Object.create(Error.prototype);
|
||||
module.exports.MatrixError.prototype.constructor = MatrixError;
|
||||
module.exports.MatrixError.prototype.constructor = module.exports.MatrixError;
|
||||
Reference in New Issue
Block a user