inspect_ctrl.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. var 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, function(
  27. value,
  28. key
  29. ) {
  30. return { key: key, value: value };
  31. });
  32. }
  33. if (model.error.stack) {
  34. $scope.editor.index = 3;
  35. $scope.stack_trace = model.error.stack;
  36. $scope.message = model.error.message;
  37. }
  38. if (model.error.config && model.error.config.data) {
  39. $scope.editor.index = 2;
  40. if (_.isString(model.error.config.data)) {
  41. $scope.request_parameters = this.getParametersFromQueryString(
  42. model.error.config.data
  43. );
  44. } else {
  45. $scope.request_parameters = _.map(model.error.config.data, function(
  46. value,
  47. key
  48. ) {
  49. return { key: key, value: angular.toJson(value, true) };
  50. });
  51. }
  52. }
  53. };
  54. }
  55. getParametersFromQueryString(queryString) {
  56. var result = [];
  57. var parameters = queryString.split("&");
  58. for (var i = 0; i < parameters.length; i++) {
  59. var keyValue = parameters[i].split("=");
  60. if (keyValue[1].length > 0) {
  61. result.push({
  62. key: keyValue[0],
  63. value: (<any>window).unescape(keyValue[1])
  64. });
  65. }
  66. }
  67. return result;
  68. }
  69. }
  70. coreModule.controller("InspectCtrl", InspectCtrl);