apiService.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. var apiService = angular.module('apiService', []);
  2. apiService.factory('API', ['$location', 'Runs', 'Results', function($location, Runs, Results) {
  3. return {
  4. launchTest: function(url, settings) {
  5. var runObject = {
  6. url: url,
  7. waitForResponse: false,
  8. screenshot: true,
  9. device: settings.device,
  10. waitForSelector: settings.waitForSelector,
  11. proxy: settings.proxy,
  12. cookie: settings.cookie,
  13. authUser: settings.authUser,
  14. authPass: settings.authPass,
  15. blockDomain: settings.blockDomain,
  16. allowedDomains: settings.allowedDomains,
  17. noExternals: settings.noExternals
  18. };
  19. if (settings.domainsBlockOrAllow === 'block') {
  20. runObject.blockDomain = this.parseDomains(settings.domains);
  21. } else if (settings.domainsBlockOrAllow === 'allow') {
  22. var allowedDomains = this.parseDomains(settings.domains);
  23. if (allowedDomains.length > 0) {
  24. runObject.allowDomain = allowedDomains;
  25. } else {
  26. runObject.noExternals = true;
  27. }
  28. }
  29. Runs.save(runObject, function(data) {
  30. $location.path('/queue/' + data.runId);
  31. }, function(response) {
  32. if (response.status === 429) {
  33. alert('Too many requests, you reached the max number of requests allowed in 24h');
  34. } else if (response.status === 403) {
  35. alert('This particular query was blocked due to spamming. If you think it\'s an error, please open an issue on GitHub.');
  36. } else {
  37. alert('An error occured...');
  38. }
  39. });
  40. },
  41. relaunchTest: function(result) {
  42. this.launchTest(result.params.url, result.params.options);
  43. },
  44. parseDomains: function(textareaContent) {
  45. var lines = textareaContent.split('\n');
  46. function removeEmptyLines (line) {
  47. return line.trim() !== '';
  48. }
  49. // Remove empty lines
  50. return lines.filter(removeEmptyLines).join(',');
  51. }
  52. };
  53. }]);