| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- (function () {
- 'use strict';
- angular.module('ariaNg').factory('aria2HttpRpcService', ['$http', 'ariaNgCommonService', 'ariaNgSettingService', 'ariaNgLogService', function ($http, ariaNgCommonService, ariaNgSettingService, ariaNgLogService) {
- var rpcUrl = ariaNgSettingService.getCurrentRpcUrl();
- var method = ariaNgSettingService.getCurrentRpcHttpMethod();
- var getUrlWithQueryString = function (url, parameters) {
- if (!url || url.length < 1) {
- return url;
- }
- var queryString = '';
- for (var key in parameters) {
- if (!parameters.hasOwnProperty(key)) {
- continue;
- }
- var value = parameters[key];
- if (value === null || angular.isUndefined(value)) {
- continue;
- }
- if (queryString.length > 0) {
- queryString += '&';
- }
- if (angular.isObject(value) || angular.isArray(value)) {
- value = angular.toJson(value);
- value = ariaNgCommonService.base64Encode(value);
- value = encodeURIComponent(value);
- }
- queryString += key + '=' + value;
- }
- if (queryString.length < 1) {
- return url;
- }
- if (url.indexOf('?') < 0) {
- queryString = '?' + queryString;
- } else {
- queryString = '&' + queryString;
- }
- return url + queryString;
- };
- return {
- request: function (context) {
- if (!context) {
- return;
- }
- var requestContext = {
- url: rpcUrl,
- method: method
- };
- if (requestContext.method === 'POST') {
- requestContext.data = context.requestBody;
- } else if (requestContext.method === 'GET') {
- requestContext.url = getUrlWithQueryString(requestContext.url, context.requestBody);
- }
- ariaNgLogService.debug('[aria2HttpRpcService.request] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'request start', requestContext);
- return $http(requestContext).then(function onSuccess(response) {
- var data = response.data;
- ariaNgLogService.debug('[aria2HttpRpcService.request] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'response success', response);
- if (!data) {
- return;
- }
- if (context.connectionSuccessCallback) {
- context.connectionSuccessCallback({
- rpcUrl: rpcUrl,
- method: method
- });
- }
- if (context.successCallback) {
- context.successCallback(data.id, data.result);
- }
- }).catch(function onError(response) {
- var data = response.data;
- ariaNgLogService.debug('[aria2HttpRpcService.request] ' + (context && context.requestBody && context.requestBody.method ? context.requestBody.method + ' ' : '') + 'response error', response);
- if (!data) {
- data = {
- id: '-1',
- error: {
- // code: '-1',
- // message: 'Unknown Error',
- innerError: true
- }
- };
- if (context.connectionFailedCallback) {
- context.connectionFailedCallback({
- rpcUrl: rpcUrl,
- method: method
- });
- }
- }
- if (context.errorCallback) {
- context.errorCallback(data.id, data.error);
- }
- });
- },
- on: function (eventName, callback) {
- //Not implement
- }
- };
- }]);
- }());
|