flow_service_v2.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. var app = angular.module('sentinelDashboardApp');
  2. app.service('FlowServiceV2', ['$http', function ($http) {
  3. this.queryMachineRules = function (app, ip, port) {
  4. var param = {
  5. app: app,
  6. ip: ip,
  7. port: port
  8. };
  9. return $http({
  10. url: '/v2/flow/rules',
  11. params: param,
  12. method: 'GET'
  13. });
  14. };
  15. this.newRule = function (rule) {
  16. return $http({
  17. url: '/v2/flow/rule',
  18. data: rule,
  19. method: 'POST'
  20. });
  21. };
  22. this.saveRule = function (rule) {
  23. return $http({
  24. url: '/v2/flow/rule/' + rule.id,
  25. data: rule,
  26. method: 'PUT'
  27. });
  28. };
  29. this.deleteRule = function (rule) {
  30. return $http({
  31. url: '/v2/flow/rule/' + rule.id,
  32. method: 'DELETE'
  33. });
  34. };
  35. function notNumberAtLeastZero(num) {
  36. return num === undefined || num === '' || isNaN(num) || num < 0;
  37. }
  38. function notNumberGreaterThanZero(num) {
  39. return num === undefined || num === '' || isNaN(num) || num <= 0;
  40. }
  41. this.checkRuleValid = function (rule) {
  42. if (rule.resource === undefined || rule.resource === '') {
  43. alert('资源名称不能为空');
  44. return false;
  45. }
  46. if (rule.count === undefined || rule.count < 0) {
  47. alert('限流阈值必须大于等于 0');
  48. return false;
  49. }
  50. if (rule.strategy === undefined || rule.strategy < 0) {
  51. alert('无效的流控模式');
  52. return false;
  53. }
  54. if (rule.strategy == 1 || rule.strategy == 2) {
  55. if (rule.refResource === undefined || rule.refResource == '') {
  56. alert('请填写关联资源或入口');
  57. return false;
  58. }
  59. }
  60. if (rule.controlBehavior === undefined || rule.controlBehavior < 0) {
  61. alert('无效的流控整形方式');
  62. return false;
  63. }
  64. if (rule.controlBehavior == 1 && notNumberGreaterThanZero(rule.warmUpPeriodSec)) {
  65. alert('预热时长必须大于 0');
  66. return false;
  67. }
  68. if (rule.controlBehavior == 2 && notNumberGreaterThanZero(rule.maxQueueingTimeMs)) {
  69. alert('排队超时时间必须大于 0');
  70. return false;
  71. }
  72. if (rule.clusterMode && (rule.clusterConfig === undefined || rule.clusterConfig.thresholdType === undefined)) {
  73. alert('集群限流配置不正确');
  74. return false;
  75. }
  76. return true;
  77. };
  78. }]);