inspect_ctrl.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import angular from 'angular';
  2. import _ from 'lodash';
  3. import $ from 'jquery';
  4. import coreModule from '../core_module';
  5. export class InspectCtrl {
  6. /** @ngInject */
  7. constructor($scope, $sanitize) {
  8. const model = $scope.inspector;
  9. $scope.init = function() {
  10. $scope.editor = { index: 0 };
  11. if (!model.error) {
  12. return;
  13. }
  14. if (_.isString(model.error.data)) {
  15. $scope.response = $('<div>' + model.error.data + '</div>').text();
  16. } else if (model.error.data) {
  17. if (model.error.data.response) {
  18. $scope.response = $sanitize(model.error.data.response);
  19. } else {
  20. $scope.response = angular.toJson(model.error.data, true);
  21. }
  22. } else if (model.error.message) {
  23. $scope.message = model.error.message;
  24. }
  25. if (model.error.config && model.error.config.params) {
  26. $scope.request_parameters = _.map(model.error.config.params, (value, key) => {
  27. return { key: key, value: value };
  28. });
  29. }
  30. if (model.error.stack) {
  31. $scope.editor.index = 3;
  32. $scope.stack_trace = model.error.stack;
  33. $scope.message = model.error.message;
  34. }
  35. if (model.error.config && model.error.config.data) {
  36. $scope.editor.index = 2;
  37. if (_.isString(model.error.config.data)) {
  38. $scope.request_parameters = this.getParametersFromQueryString(model.error.config.data);
  39. } else {
  40. $scope.request_parameters = _.map(model.error.config.data, (value, key) => {
  41. return { key: key, value: angular.toJson(value, true) };
  42. });
  43. }
  44. }
  45. };
  46. }
  47. getParametersFromQueryString(queryString) {
  48. const result = [];
  49. const parameters = queryString.split('&');
  50. for (let i = 0; i < parameters.length; i++) {
  51. const keyValue = parameters[i].split('=');
  52. if (keyValue[1].length > 0) {
  53. result.push({
  54. key: keyValue[0],
  55. value: (window as any).unescape(keyValue[1]),
  56. });
  57. }
  58. }
  59. return result;
  60. }
  61. }
  62. coreModule.controller('InspectCtrl', InspectCtrl);