flow_service.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. var app = angular.module('sentinelDashboardApp');
  2. app.service('GatewayFlowService', ['$http', function ($http) {
  3. this.queryRules = function (app, ip, port) {
  4. var param = {
  5. app: app,
  6. ip: ip,
  7. port: port
  8. };
  9. return $http({
  10. url: '/gateway/flow/list.json',
  11. params: param,
  12. method: 'GET'
  13. });
  14. };
  15. this.newRule = function (rule) {
  16. return $http({
  17. url: '/gateway/flow/new.json',
  18. data: rule,
  19. method: 'POST'
  20. });
  21. };
  22. this.saveRule = function (rule) {
  23. return $http({
  24. url: '/gateway/flow/save.json',
  25. data: rule,
  26. method: 'POST'
  27. });
  28. };
  29. this.deleteRule = function (rule) {
  30. var param = {
  31. id: rule.id,
  32. app: rule.app
  33. };
  34. return $http({
  35. url: '/gateway/flow/delete.json',
  36. params: param,
  37. method: 'POST'
  38. });
  39. };
  40. this.checkRuleValid = function (rule) {
  41. if (rule.resource === undefined || rule.resource === '') {
  42. alert('API名称不能为空');
  43. return false;
  44. }
  45. if (rule.paramItem != null) {
  46. if (rule.paramItem.parseStrategy == 2 ||
  47. rule.paramItem.parseStrategy == 3 ||
  48. rule.paramItem.parseStrategy == 4) {
  49. if (rule.paramItem.fieldName === undefined || rule.paramItem.fieldName === '') {
  50. alert('当参数属性为Header、URL参数、Cookie时,参数名称不能为空');
  51. return false;
  52. }
  53. if (rule.paramItem.pattern === '') {
  54. alert('匹配串不能为空');
  55. return false;
  56. }
  57. }
  58. }
  59. if (rule.count === undefined || rule.count < 0) {
  60. alert((rule.grade === 1 ? 'QPS阈值' : '线程数') + '必须大于等于 0');
  61. return false;
  62. }
  63. return true;
  64. };
  65. }]);