apiService.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. jsTimeline: true,
  10. device: settings.device,
  11. waitForSelector: settings.waitForSelector,
  12. cookie: settings.cookie,
  13. authUser: settings.authUser,
  14. authPass: settings.authPass,
  15. };
  16. if (settings.waitForSelector && settings.waitForSelector !== '') {
  17. runObject.waitForSelector = settings.waitForSelector;
  18. }
  19. if (settings.cookie && settings.cookie !== '') {
  20. runObject.cookie = settings.cookie;
  21. }
  22. if (settings.authUser && settings.authUser !== '' && settings.authPass && settings.authPass !== '') {
  23. runObject.authUser = settings.authUser;
  24. runObject.authPass = settings.authPass;
  25. }
  26. Runs.save(runObject, function(data) {
  27. $location.path('/queue/' + data.runId);
  28. }, function(response) {
  29. if (response.status === 429) {
  30. alert('Too many requests, you reached the max number of requests allowed in 24h');
  31. } else {
  32. alert('An error occured...');
  33. }
  34. });
  35. },
  36. relaunchTest: function(result) {
  37. this.launchTest(result.params.url, result.params.options);
  38. }
  39. };
  40. }]);