12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- var apiService = angular.module('apiService', []);
- apiService.factory('API', ['$location', 'Runs', 'Results', function($location, Runs, Results) {
- return {
- launchTest: function(url, settings) {
- var runObject = {
- url: url,
- waitForResponse: false,
- screenshot: true,
- device: settings.device,
- waitForSelector: settings.waitForSelector,
- proxy: settings.proxy,
- cookie: settings.cookie,
- authUser: settings.authUser,
- authPass: settings.authPass,
- blockDomain: settings.blockDomain,
- allowedDomains: settings.allowedDomains,
- noExternals: settings.noExternals
- };
-
- if (settings.domainsBlockOrAllow === 'block') {
- runObject.blockDomain = this.parseDomains(settings.domains);
- } else if (settings.domainsBlockOrAllow === 'allow') {
- var allowedDomains = this.parseDomains(settings.domains);
- if (allowedDomains.length > 0) {
- runObject.allowDomain = allowedDomains;
- } else {
- runObject.noExternals = true;
- }
- }
- Runs.save(runObject, function(data) {
- $location.path('/queue/' + data.runId);
- }, function(response) {
- if (response.status === 429) {
- alert('Too many requests, you reached the max number of requests allowed in 24h');
- } else if (response.status === 403) {
- alert('This particular query was blocked due to spamming. If you think it\'s an error, please open an issue on GitHub.');
- } else {
- alert('An error occured...');
- }
- });
- },
- relaunchTest: function(result) {
- this.launchTest(result.params.url, result.params.options);
- },
- parseDomains: function(textareaContent) {
- var lines = textareaContent.split('\n');
-
- function removeEmptyLines (line) {
- return line.trim() !== '';
- }
- // Remove empty lines
- return lines.filter(removeEmptyLines).join(',');
- }
- };
- }]);
|