Simon Grossenbacher před 3 roky
rodič
revize
444a94eb5e
8 změnil soubory, kde provedl 100 přidání a 22 odebrání
  1. 11 11
      Example Config.rdproj
  2. binární
      RESTDebugger.exe
  3. 2 2
      prj/RESTDebugger.dproj
  4. binární
      prj/RESTDebugger.res
  5. 4 0
      src/_frmMain.dfm
  6. 61 2
      src/_frmMain.pas
  7. 21 7
      src/_frmVariables.dfm
  8. 1 0
      src/_frmVariables.pas

+ 11 - 11
Example Config.rdproj

@@ -1,6 +1,6 @@
 {
 	"Presets": {
-		"LastUsed": "292047e733934bc48429c4d746cae53a",
+		"LastUsed": "faf2be76254543f9ad9cc8fca91cef5e",
 		"ConfigVersion": 3
 	},
 	"Preset_faf2be76254543f9ad9cc8fca91cef5e": {
@@ -16,7 +16,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "GET: Simple GET",
 		"Guid": "faf2be76254543f9ad9cc8fca91cef5e",
-		"Notes": "PGh0bWw+PGJvZHk+PHA+U2ltcGxlIEdFVCByZXF1ZXN0LjwvcD4NCjwvYm9keT4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KPC9odG1sPg==",
+		"Notes": "PGh0bWw+PGJvZHk+PHA+U2ltcGxlIEdFVCByZXF1ZXN0LjwvcD4NCjwvYm9keT4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KPC9odG1sPg==",
 		"Category": ""
 	},
 	"Preset_7d37b798c22748eebf92ffa281ba982a": {
@@ -32,7 +32,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "GET: GET Extra Headers",
 		"Guid": "7d37b798c22748eebf92ffa281ba982a",
-		"Notes": "PHA+R0VUIHJlcXVlc3Qgd2l0aCBoZWFkZXJzLjwvcD4=",
+		"Notes": "PGh0bWw+PGJvZHk+PHA+R0VUIHJlcXVlc3Qgd2l0aCBoZWFkZXJzLjwvcD4NCjwvYm9keT4NCjwvaHRtbD4=",
 		"Category": ""
 	},
 	"Preset_777045dda27d466fab6c051d3e8094e8": {
@@ -48,7 +48,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "GET: Use Basic Auth Example",
 		"Guid": "777045dda27d466fab6c051d3e8094e8",
-		"Notes": "PGh0bWw+PGJvZHk+PHA+R0VUIHJlcXVlc3Qgd2l0aCBiYXNpYyBhdXRoZW50aWNhdGlvbi48L3A+DQo8L2JvZHk+DQo8L2h0bWw+",
+		"Notes": "PGh0bWw+PGJvZHk+PHA+R0VUIHJlcXVlc3Qgd2l0aCBiYXNpYyBhdXRoZW50aWNhdGlvbi48L3A+DQo8L2JvZHk+DQoNCg0KDQoNCg0KPC9odG1sPg==",
 		"Category": ""
 	},
 	"Preset_a0745bab53eb4c78a6034f1a9d4559de": {
@@ -64,7 +64,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "GET: Example URL Parameters",
 		"Guid": "a0745bab53eb4c78a6034f1a9d4559de",
-		"Notes": "PHA+R0VUIHJlcXVlc3Qgd2l0aCBVUkwgcGFyYW1ldGVycy48L3A+",
+		"Notes": "PGh0bWw+PGJvZHk+PHA+R0VUIHJlcXVlc3Qgd2l0aCBVUkwgcGFyYW1ldGVycy48L3A+DQo8L2JvZHk+DQo8L2h0bWw+",
 		"Category": ""
 	},
 	"Preset_292047e733934bc48429c4d746cae53a": {
@@ -80,7 +80,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "POST: Json Post Data",
 		"Guid": "292047e733934bc48429c4d746cae53a",
-		"Notes": "PGh0bWw+PGJvZHk+PHA+UE9TVCBKc29uIERhdGEuPC9wPg0KPC9ib2R5Pg0KDQo8L2h0bWw+",
+		"Notes": "PGh0bWw+PGJvZHk+PHA+UE9TVCBKc29uIERhdGEuPC9wPg0KPC9ib2R5Pg0KDQoNCg0KDQoNCg0KPC9odG1sPg==",
 		"Category": ""
 	},
 	"Preset_c02b437c22474cf7b44a96c72f430f18": {
@@ -96,7 +96,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "DELETE: Delete Data",
 		"Guid": "c02b437c22474cf7b44a96c72f430f18",
-		"Notes": "PHA+REVMRVRFIHJlcXVlc3QuPC9wPg==",
+		"Notes": "PGh0bWw+PGJvZHk+PHA+REVMRVRFIHJlcXVlc3QuPC9wPg0KPC9ib2R5Pg0KDQo8L2h0bWw+",
 		"Category": ""
 	},
 	"Preset_9609fe373b9b4865a2ea83a3dd35be30": {
@@ -112,7 +112,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "PUT: Json Put Data",
 		"Guid": "9609fe373b9b4865a2ea83a3dd35be30",
-		"Notes": "PHA+UFVUIHJlcXVlc3QuPC9wPg==",
+		"Notes": "PGh0bWw+PGJvZHk+PHA+UFVUIHJlcXVlc3QuPC9wPg0KPC9ib2R5Pg0KPC9odG1sPg==",
 		"Category": ""
 	},
 	"Preset_cbbcebba6f30425caec540f517cb3524": {
@@ -128,11 +128,11 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "PATCH: Json Patch Data",
 		"Guid": "cbbcebba6f30425caec540f517cb3524",
-		"Notes": "PHA+UEFUQ0ggcmVxdWVzdC48L3A+",
+		"Notes": "PGh0bWw+PGJvZHk+PHA+UEFUQ0ggcmVxdWVzdC48L3A+DQo8L2JvZHk+DQoNCg0KDQoNCg0KPC9odG1sPg==",
 		"Category": ""
 	},
 	"Main": {
-		"GlobalVar": "fldType\tfldURLFilter\tfldXPath\tfldContent\tfldName\tfldValue\r\nStatic\t\t\t\t%CustomPostData%\tData 1\r\nXPath\t/get\theaders.X-Amzn-Trace-Id\tJSON\t%DynamicVar%\tRoot=1-62bca238-242d6878716cf75403d996d5\r\nXPath\t/xml\t/slideshow/slide/title\tXML\t%DynamicVarXML%\t\r\nStatic\t\t\t\t%BaseURL%\thttps://httpbin.org\r\n",
+		"GlobalVar": "fldType\tfldURLFilter\tfldPresetFilter\tfldXPath\tfldContent\tfldName\tfldValue\r\nStatic\t\t\t\t\t%CustomPostData%\tData 1\r\nXPath\t/get\t\theaders.X-Amzn-Trace-Id\tJSON\t%DynamicVar%\tRoot=1-62c9abca-2e187263003e9aab61b1aa40\r\nXPath\t/xml\t\t/slideshow/slide/title\tXML\t%DynamicVarXML%\tWake up to WonderWidgets!\r\nXPath\t\t\theaders.X-Amzn-Trace-Id\tJSON\t%DynamicVarWithoutFilters%\tRoot=1-62c9abca-2e187263003e9aab61b1aa40\r\nStatic\t\t\t\t\t%BaseURL%\thttps://httpbin.org\r\n",
 		"GridViewPresets": "Bhlmcm1NYWluLmN4R3JpZERCVGFibGVWaWV3BhJUY3hHcmlkREJUYWJsZVZpZXcCCQYJU291cmNlRFBJAgYCYAYGRm9vdGVyAgkGBUZhbHNlBgpHcm91cEJ5Qm94AgkGBFRydWUGDEdyb3VwRm9vdGVycwICBgEABgpOZXdJdGVtUm93AgkGBUZhbHNlBhhFZGl0Rm9ybVVzZURlZmF1bHRMYXlvdXQCCQYEVHJ1ZQYTUm93VXNlRGVmYXVsdExheW91dAIJBgRUcnVlBh9Db2x1bW5zUXVpY2tDdXN0b21pemF0aW9uU29ydGVkAgkGBUZhbHNlBgdWZXJzaW9uAgIGAQECAwYYY3hHcmlkREJUYWJsZVZpZXdmbGROYW1lBg9UY3hHcmlkREJDb2x1bW4CDAYJU291cmNlRFBJAgYCYAYRRmlsdGVyUm93T3BlcmF0b3ICAgYBAAYKR3JvdXBJbmRleAIGAsO/BhRJc0NoaWxkSW5NZXJnZWRHcm91cAIJBgVGYWxzZQYFV2lkdGgCBgPFvgAGDUFsaWdubWVudEhvcnoCAgYBAAYFSW5kZXgCBgIABgdWaXNpYmxlAgkGBFRydWUGCVNvcnRPcmRlcgIJBgtzb0FzY2VuZGluZwYJU29ydEluZGV4AgYCAAYYV2FzVmlzaWJsZUJlZm9yZUdyb3VwaW5nAgkGBUZhbHNlBgpFeHByZXNzaW9uAgkSAAAAAAIABhxjeEdyaWREQlRhYmxlVmlld2ZsZENhdGVnb3J5Bg9UY3hHcmlkREJDb2x1bW4CDAYJU291cmNlRFBJAgYCYAYRRmlsdGVyUm93T3BlcmF0b3ICAgYBAAYKR3JvdXBJbmRleAIGAsO/BhRJc0NoaWxkSW5NZXJnZWRHcm91cAIJBgVGYWxzZQYFV2lkdGgCBgJTBg1BbGlnbm1lbnRIb3J6AgIGAQAGBUluZGV4AgYCAQYHVmlzaWJsZQIJBgRUcnVlBglTb3J0T3JkZXICCQYGc29Ob25lBglTb3J0SW5kZXgCBgLDvwYYV2FzVmlzaWJsZUJlZm9yZUdyb3VwaW5nAgkGBFRydWUGCkV4cHJlc3Npb24CCRIAAAAAAgAGHUNvbmRpdGlvbmFsRm9ybWF0dGluZ1Byb3ZpZGVyBiRUY3hHcmlkQ29uZGl0aW9uYWxGb3JtYXR0aW5nUHJvdmlkZXICAQYFQ291bnQCBgIAAgA="
 	},
 	"Preset_6fb33f0e705f4c63b30dc64e98b71183": {
@@ -148,7 +148,7 @@
 		"ResponseAutoFormat": true,
 		"PresetName": "GET: Simple GET XML",
 		"Guid": "6fb33f0e705f4c63b30dc64e98b71183",
-		"Notes": "PGh0bWw+PGJvZHk+PHA+U2ltcGxlIEdFVCByZXF1ZXN0LjwvcD4NCjwvYm9keT4NCg0KDQoNCg0KDQoNCg0KPC9odG1sPg==",
+		"Notes": "PGh0bWw+PGJvZHk+PHA+U2ltcGxlIEdFVCByZXF1ZXN0LjwvcD4NCjwvYm9keT4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCjwvaHRtbD4=",
 		"Category": ""
 	}
 }

binární
RESTDebugger.exe


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 2 - 2
prj/RESTDebugger.dproj


binární
prj/RESTDebugger.res


+ 4 - 0
src/_frmMain.dfm

@@ -2103,6 +2103,10 @@ object frmMain: TfrmMain
       FieldName = 'fldURLFilter'
       Size = 100
     end
+    object memDataVariablesfldPresetFilter: TStringField
+      FieldName = 'fldPresetFilter'
+      Size = 100
+    end
     object memDataVariablesfldXPath: TStringField
       FieldName = 'fldXPath'
       Size = 100

+ 61 - 2
src/_frmMain.pas

@@ -152,6 +152,7 @@ type
     tbbtnWebServicePerformance: TdxBarButton;
     memDataVariablesfldContent: TStringField;
     memDataVariablesfldURLFilter: TStringField;
+    memDataVariablesfldPresetFilter: TStringField;
     procedure FormShow(Sender: TObject);
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
@@ -433,7 +434,10 @@ begin
 end;
 
 procedure TfrmMain.btnEditClick(Sender: TObject);
+var
+  OldName: string;
 begin
+  OldName := memDataPresetsfldName.Value;
   frmAddEditPreset.edtPresetName.Text := memDataPresetsfldName.Value;
   frmAddEditPreset.edtCategory.Text := memDataPresetsfldCategory.Value;
   if frmAddEditPreset.ShowModal = mrOk then
@@ -443,6 +447,21 @@ begin
     memDataPresetsfldName.Value := frmAddEditPreset.edtPresetName.Text;
     memDataPresetsfldCategory.Value := frmAddEditPreset.edtCategory.Text;
     memDataPresets.Post;
+
+    memDataVariables.First;
+    while not memDataVariables.Eof do
+    begin
+      if memDataVariablesfldPresetFilter.Value = OldName then
+      begin
+        memDataVariables.Edit;
+        memDataVariablesfldPresetFilter.Value := frmAddEditPreset.edtPresetName.Text;
+        memDataVariables.Post;
+      end;
+
+      memDataVariables.Next;
+    end;
+
+    SaveProject;
   end;
 end;
 
@@ -1402,6 +1421,7 @@ var
   ja: TJsonArray;
   jo: TJsonObject;
   xml: TRwDomDocument;
+  URLFilterMatch, PresetFilterMatch: Boolean;
 begin
   if ActiveEditor.Lines.Count > 0 then
   begin
@@ -1429,13 +1449,33 @@ begin
             memDataVariables.First;
             while not memDataVariables.Eof do
             begin
-              if (memDataVariablesfldType.Value = 'XPath') and (memDataVariablesfldContent.Value = 'JSON') and (Pos(memDataVariablesfldURLFilter.Text, edtFullURL.Text) > 0) then
+              if memDataVariablesfldURLFilter.Text = '' then
+              begin
+                URLFilterMatch := True;
+              end
+              else
+              begin
+                URLFilterMatch := Pos(memDataVariablesfldURLFilter.Text, edtFullURL.Text) > 0;
+              end;
+
+              if memDataVariablesfldPresetFilter.Value = '' then
+              begin
+                PresetFilterMatch := True;
+              end
+              else
+              begin
+                PresetFilterMatch := memDataPresetsfldName.Value = memDataVariablesfldPresetFilter.Value;
+              end;
+
+
+              if (memDataVariablesfldType.Value = 'XPath') and (memDataVariablesfldContent.Value = 'JSON') and (URLFilterMatch) and (PresetFilterMatch) then
               begin
                 memDataVariables.Edit;
                 memDataVariablesfldValue.Value := jo.Path[memDataVariablesfldXPath.Value].Value;
                 memDataVariables.Post;
                 SaveProject;
               end;
+
               memDataVariables.Next;
             end;
 
@@ -1489,7 +1529,25 @@ begin
           memDataVariables.First;
           while not memDataVariables.Eof do
           begin
-            if (memDataVariablesfldType.Value = 'XPath') and (memDataVariablesfldContent.Value = 'XML') and (Pos(memDataVariablesfldURLFilter.Text, edtFullURL.Text) > 0) then
+            if memDataVariablesfldURLFilter.Text = '' then
+            begin
+              URLFilterMatch := True;
+            end
+            else
+            begin
+              URLFilterMatch := Pos(memDataVariablesfldURLFilter.Text, edtFullURL.Text) > 0;
+            end;
+
+            if memDataVariablesfldPresetFilter.Value = '' then
+            begin
+              PresetFilterMatch := True;
+            end
+            else
+            begin
+              PresetFilterMatch := memDataPresetsfldName.Value = memDataVariablesfldPresetFilter.Value;
+            end;
+
+            if (memDataVariablesfldType.Value = 'XPath') and (memDataVariablesfldContent.Value = 'XML') and (URLFilterMatch) and (PresetFilterMatch) then
             begin
               memDataVariables.Edit;
               try
@@ -1502,6 +1560,7 @@ begin
               memDataVariables.Post;
               SaveProject;
             end;
+
             memDataVariables.Next;
           end;
 

+ 21 - 7
src/_frmVariables.dfm

@@ -5,7 +5,7 @@ object frmVariables: TfrmVariables
   BorderStyle = bsSingle
   Caption = 'Variables'
   ClientHeight = 461
-  ClientWidth = 917
+  ClientWidth = 1121
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
@@ -21,14 +21,14 @@ object frmVariables: TfrmVariables
   object Panel1: TPanel
     Left = 0
     Top = 0
-    Width = 917
+    Width = 1121
     Height = 77
     Align = alTop
     BevelOuter = bvNone
     Color = clWhite
     ParentBackground = False
     TabOrder = 0
-    ExplicitWidth = 716
+    ExplicitWidth = 917
     object Label1: TLabel
       Left = 25
       Top = 31
@@ -44,7 +44,7 @@ object frmVariables: TfrmVariables
     end
   end
   object cxButton1: TcxButton
-    Left = 425
+    Left = 530
     Top = 415
     Width = 75
     Height = 25
@@ -55,11 +55,11 @@ object frmVariables: TfrmVariables
   object cxGrid1: TcxGrid
     Left = 0
     Top = 77
-    Width = 917
+    Width = 1121
     Height = 325
     Align = alTop
     TabOrder = 2
-    ExplicitWidth = 716
+    ExplicitWidth = 917
     object cxGrid1DBTableView1: TcxGridDBTableView
       Navigator.Buttons.CustomButtons = <>
       Navigator.Buttons.First.Visible = False
@@ -91,11 +91,22 @@ object frmVariables: TfrmVariables
         Properties.Items.Strings = (
           'Static'
           'XPath')
+        SortIndex = 0
+        SortOrder = soAscending
         Width = 83
       end
       object cxGrid1DBTableView1fldURLFilter: TcxGridDBColumn
         Caption = 'URL Filter'
         DataBinding.FieldName = 'fldURLFilter'
+        SortIndex = 2
+        SortOrder = soAscending
+        Width = 200
+      end
+      object cxGrid1DBTableView1fldPresetFilter: TcxGridDBColumn
+        Caption = 'Preset Filter'
+        DataBinding.FieldName = 'fldPresetFilter'
+        SortIndex = 3
+        SortOrder = soAscending
         Width = 200
       end
       object cxGrid1DBTableView1fldXPath: TcxGridDBColumn
@@ -111,11 +122,14 @@ object frmVariables: TfrmVariables
         Properties.Items.Strings = (
           'JSON'
           'XML')
+        SortIndex = 1
+        SortOrder = soAscending
+        Width = 70
       end
       object cxGrid1DBTableView1fldName: TcxGridDBColumn
         Caption = 'Name'
         DataBinding.FieldName = 'fldName'
-        SortIndex = 0
+        SortIndex = 4
         SortOrder = soAscending
         Width = 150
       end

+ 1 - 0
src/_frmVariables.pas

@@ -26,6 +26,7 @@ type
     cxGrid1DBTableView1fldXPath: TcxGridDBColumn;
     cxGrid1DBTableView1fldContent: TcxGridDBColumn;
     cxGrid1DBTableView1fldURLFilter: TcxGridDBColumn;
+    cxGrid1DBTableView1fldPresetFilter: TcxGridDBColumn;
     procedure cxButton1Click(Sender: TObject);
     procedure FormKeyPress(Sender: TObject; var Key: Char);
   private

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů