mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 00:53:21 +00:00 
			
		
		
		
	GUACAMOLE-526: Wrap HTTP response in Error object only if it's an actual HTTP response object.
This commit is contained in:
		| @@ -21,27 +21,47 @@ | |||||||
|  * Service for converting $http promises that pass the entire response into |  * Service for converting $http promises that pass the entire response into | ||||||
|  * promises that pass only the data from that response. |  * promises that pass only the data from that response. | ||||||
|  */ |  */ | ||||||
| angular.module('rest').factory('requestService', ['$q', '$http', 'Error', | angular.module('rest').factory('requestService', ['$injector', | ||||||
|         function requestService($q, $http, Error) { |         function requestService($injector) { | ||||||
|  |  | ||||||
|  |     // Required services | ||||||
|  |     var $http = $injector.get('$http'); | ||||||
|  |  | ||||||
|  |     // Required types | ||||||
|  |     var Error = $injector.get('Error'); | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Given a configuration object formatted for the $http service, returns |      * Given a configuration object formatted for the $http service, returns | ||||||
|      * a promise that will resolve or reject with only the data from the $http |      * a promise that will resolve or reject with the data from the HTTP | ||||||
|      * response. |      * response. If the promise is rejected due to the HTTP response indicating | ||||||
|  |      * failure, the promise will be rejected strictly with an instance of an | ||||||
|  |      * @link{Error} object. | ||||||
|      * |      * | ||||||
|      * @param {Object} object |      * @param {Object} object | ||||||
|      *   Configuration object for $http service call. |      *   Configuration object for $http service call. | ||||||
|      * |      * | ||||||
|      * @returns {Promise} |      * @returns {Promise.<Object>} | ||||||
|      *   A promise that will resolve or reject with the data from the response |      *   A promise that will resolve with the data from the HTTP response for | ||||||
|      *   to the $http call. |      *   the underlying $http call if successful, or reject with an @link{Error} | ||||||
|  |      *   describing the failure. | ||||||
|      */ |      */ | ||||||
|     var wrappedHttpCall = function wrappedHttpCall(object) { |     var service = function wrapHttpServiceCall(object) { | ||||||
|         return $http(object).then( |         return $http(object).then( | ||||||
|             function success(request) { return request.data; }, |             function success(response) { return response.data; }, | ||||||
|             function failure(request) { throw new Error(request.data); } |             function failure(response) { | ||||||
|  |  | ||||||
|  |                 // Wrap true error responses from $http within REST Error objects | ||||||
|  |                 if (response.data) | ||||||
|  |                     throw new Error(response.data); | ||||||
|  |  | ||||||
|  |                 // The value provided is not actually a response object from | ||||||
|  |                 // the $http service | ||||||
|  |                 throw response; | ||||||
|  |  | ||||||
|  |             } | ||||||
|         ); |         ); | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|     return wrappedHttpCall; |     return service; | ||||||
|  |  | ||||||
| }]); | }]); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user