mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2025-05-02 17:54:48 -04:00
Auth content uploads. Added a mapping function from request > filename. Added exception handling for content uploads. webclient: Only prefix the client API path on doRequest, not doBaseRequest (this would've broken the identity server auth too). Added matrixService.uploadContent. May not require mFileUpload anymore.
This commit is contained in:
parent
a18b1a649c
commit
35da1bf4a3
4 changed files with 62 additions and 31 deletions
|
@ -16,11 +16,12 @@
|
|||
|
||||
'use strict';
|
||||
|
||||
// TODO determine if this is really required as a separate service to matrixService.
|
||||
/*
|
||||
* Upload an HTML5 file to a server
|
||||
*/
|
||||
angular.module('mFileUpload', [])
|
||||
.service('mFileUpload', ['$http', '$q', function ($http, $q) {
|
||||
.service('mFileUpload', ['matrixService', '$q', function (matrixService, $q) {
|
||||
|
||||
/*
|
||||
* Upload an HTML5 file to a server and returned a promise
|
||||
|
@ -28,20 +29,18 @@ angular.module('mFileUpload', [])
|
|||
*/
|
||||
this.uploadFile = function(file) {
|
||||
var deferred = $q.defer();
|
||||
|
||||
// @TODO: This service runs with the do_POST hacky implementation of /synapse/demos/webserver.py.
|
||||
// This is temporary until we have a true file upload service
|
||||
console.log("Uploading " + file.name + "...");
|
||||
$http.post(file.name, file)
|
||||
.success(function(data, status, headers, config) {
|
||||
deferred.resolve(location.origin + data.url);
|
||||
console.log(" -> Successfully uploaded! Available at " + location.origin + data.url);
|
||||
}).
|
||||
error(function(data, status, headers, config) {
|
||||
console.log(" -> Failed to upload" + file.name);
|
||||
deferred.reject();
|
||||
});
|
||||
console.log("Uploading " + file.name + "... to /matrix/content");
|
||||
matrixService.uploadContent(file).then(
|
||||
function(response) {
|
||||
console.log(" -> Successfully uploaded! Available at " + location.origin + response.data.url);
|
||||
deferred.resolve(location.origin + response.data.url);
|
||||
},
|
||||
function(error) {
|
||||
console.log(" -> Failed to upload " + file.name);
|
||||
deferred.reject(error);
|
||||
}
|
||||
);
|
||||
|
||||
return deferred.promise;
|
||||
};
|
||||
}]);
|
||||
}]);
|
||||
|
|
|
@ -54,13 +54,14 @@ angular.module('matrixService', [])
|
|||
|
||||
params.access_token = config.access_token;
|
||||
|
||||
if (path.indexOf(prefixPath) !== 0) {
|
||||
path = prefixPath + path;
|
||||
}
|
||||
|
||||
return doBaseRequest(config.homeserver, method, path, params, data, undefined);
|
||||
};
|
||||
|
||||
var doBaseRequest = function(baseUrl, method, path, params, data, headers) {
|
||||
if (path.indexOf(prefixPath) !== 0) {
|
||||
path = prefixPath + path;
|
||||
}
|
||||
return $http({
|
||||
method: method,
|
||||
url: baseUrl + path,
|
||||
|
@ -319,6 +320,17 @@ angular.module('matrixService', [])
|
|||
return doBaseRequest(config.identityServer, "POST", path, {}, data, headers);
|
||||
},
|
||||
|
||||
uploadContent: function(file) {
|
||||
var path = "/matrix/content";
|
||||
var headers = {
|
||||
"Content-Type": undefined // undefined means angular will figure it out
|
||||
};
|
||||
var params = {
|
||||
access_token: config.access_token
|
||||
};
|
||||
return doBaseRequest(config.homeserver, "POST", path, params, file, headers);
|
||||
},
|
||||
|
||||
// start listening on /events
|
||||
getEventStream: function(from, timeout) {
|
||||
var path = "/events";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue