From 6f374cc530111b90fccfd389c9aa9ab6a92ff6d2 Mon Sep 17 00:00:00 2001
From: Jens Steidl <Jens.Steidl@slub-dresden.de>
Date: Fri, 28 Apr 2023 14:44:28 +0200
Subject: [PATCH] - added "--debug" option for user agent debug information

---
 README.md                                 | 1 +
 bin/ta-tool.pl                            | 1 +
 lib/SLUB/LZA/Rosetta/TA/Command/count.pm  | 3 ++-
 lib/SLUB/LZA/Rosetta/TA/Command/search.pm | 3 ++-
 lib/SLUB/LZA/Rosetta/TA/SRU.pm            | 3 ++-
 lib/SLUB/LZA/Rosetta/TA/common_sru.pm     | 2 +-
 6 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index 242c2cf..abe82a0 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,7 @@ Alternatively, copy the 'bin/' and 'lib' paths to your local perl installation.
     OPTIONS:
       -v --verbose    Show more detailed option
       -h --help       Prints this help information
+      --debug         Show user agent debug information
 
     COMMAND:
       init            Initialize config
diff --git a/bin/ta-tool.pl b/bin/ta-tool.pl
index 1d8f39d..1d6a747 100644
--- a/bin/ta-tool.pl
+++ b/bin/ta-tool.pl
@@ -22,6 +22,7 @@ SLUB::LZA::Rosetta::TA->run;
  OPTIONS:
     -v --verbose    Show more detailed option
     -h --help       Prints this help information
+    --debug         Show user agent debug information
 
 =head1 DESCRIPTION
 
diff --git a/lib/SLUB/LZA/Rosetta/TA/Command/count.pm b/lib/SLUB/LZA/Rosetta/TA/Command/count.pm
index 80cdcec..ec943ea 100644
--- a/lib/SLUB/LZA/Rosetta/TA/Command/count.pm
+++ b/lib/SLUB/LZA/Rosetta/TA/Command/count.pm
@@ -38,6 +38,7 @@ sub description {
 sub opt_spec {
     return(
         ["verbose|v" => "enable verbose output"],
+        ["debug" => "enable user agent debug output"],
         ["datemode" => hidden => {one_of => [
             ["creationdate|c=s" => "search based on creationdate string"],
             ["modificationdate|m=s" => "search based on modificationdate string"]
@@ -73,7 +74,7 @@ sub execute {
     my $maxrecords="0";
     my $startrecord=1;
     my $query = SLUB::LZA::Rosetta::TA::common_sru::prepare_query($opt);
-    my $response = SLUB::LZA::Rosetta::TA::SRU::sru_search('ie', $query, $startrecord, $maxrecords, $opt->{verbose});
+    my $response = SLUB::LZA::Rosetta::TA::SRU::sru_search('ie', $query, $startrecord, $maxrecords, $opt->{verbose}, $opt->{debug});
     $response=~s|.*?<numberOfRecords>(\d+)</numberOfRecords.*|$1|s;
     say $response;
 }
diff --git a/lib/SLUB/LZA/Rosetta/TA/Command/search.pm b/lib/SLUB/LZA/Rosetta/TA/Command/search.pm
index 54cfdec..50c1439 100644
--- a/lib/SLUB/LZA/Rosetta/TA/Command/search.pm
+++ b/lib/SLUB/LZA/Rosetta/TA/Command/search.pm
@@ -43,6 +43,7 @@ sub description {
 sub opt_spec {
     return(
         ["verbose|v" => "enable verbose output"],
+        ["debug" => "enable user agent debug output"],
         ["datemode" => hidden => {one_of => [
             ["creationdate|c=s" => "search based on creationdate string"],
             ["modificationdate|m=s" => "search based on modificationdate string"]
@@ -86,7 +87,7 @@ sub execute {
         $startrecord = $opt->{startrecord};
     }
     my $query = SLUB::LZA::Rosetta::TA::common_sru::prepare_query($opt);
-    my $response = SLUB::LZA::Rosetta::TA::SRU::sru_search('ie', $query, $startrecord, $maxrecords, $opt->{verbose}, $opt->{user}, $opt->{password});
+    my $response = SLUB::LZA::Rosetta::TA::SRU::sru_search('ie', $query, $startrecord, $maxrecords, $opt->{verbose}, $opt->{debug}, $opt->{user}, $opt->{password});
     say $response;
 }
 
diff --git a/lib/SLUB/LZA/Rosetta/TA/SRU.pm b/lib/SLUB/LZA/Rosetta/TA/SRU.pm
index d0cddf0..368dba1 100644
--- a/lib/SLUB/LZA/Rosetta/TA/SRU.pm
+++ b/lib/SLUB/LZA/Rosetta/TA/SRU.pm
@@ -28,6 +28,7 @@ sub sru_search {
     my $startrecord = shift;
     my $maxrecords = shift;
     my $is_verbose = shift;
+    my $is_debug = shift;
     my %searchpaths = (
         ie   => 'permanent/ie',
         file => 'permanent/file',
@@ -62,7 +63,7 @@ sub sru_search {
         say "searchurl = $sru";
     }
     foreach my $retry (1 .. 2) {
-        my $console_logger = debug_ua( $ua );
+        my $console_logger = debug_ua( $ua ) unless (! $is_debug);
         my $req = $ua->get($sru);
         if ($req->is_success) {
             my $xres = $req->decoded_content;
diff --git a/lib/SLUB/LZA/Rosetta/TA/common_sru.pm b/lib/SLUB/LZA/Rosetta/TA/common_sru.pm
index 65868bd..639c256 100644
--- a/lib/SLUB/LZA/Rosetta/TA/common_sru.pm
+++ b/lib/SLUB/LZA/Rosetta/TA/common_sru.pm
@@ -1,6 +1,7 @@
 package SLUB::LZA::Rosetta::TA::common_sru;
 use strict;
 use warnings;
+use Data::Printer;
 
 # VERSION
 
@@ -50,7 +51,6 @@ sub prepare_query {
     #my $query = join(" and ", @queries);
     my $query = join("+", @queries);
     if (exists $opt->{debug}) {
-        require Data::Printer;
         p( $opt);
         p(@queries);
         p( $query);
-- 
GitLab