From 4bf66dd936df8be8b08f0969d01f46633352783b Mon Sep 17 00:00:00 2001
From: Gerhard Gonter <ggonter@gmail.com>
Date: Fri, 4 Apr 2014 23:36:39 +0200
Subject: [PATCH] a few small repairs

---
 lib/Redmine/DB/MySQL.pm | 29 +++++++++++++++++++----------
 t_sync.pl               | 18 +++++++++++++-----
 2 files changed, 32 insertions(+), 15 deletions(-)

diff --git a/lib/Redmine/DB/MySQL.pm b/lib/Redmine/DB/MySQL.pm
index fa570f8..7154158 100644
--- a/lib/Redmine/DB/MySQL.pm
+++ b/lib/Redmine/DB/MySQL.pm
@@ -6,6 +6,7 @@ use parent 'Redmine::DB';
 
 # use Redmine::DB::Project;
 
+my $show_query= 0;
 my $show_fetched= 0;
 
 sub connect
@@ -50,14 +51,20 @@ sub get_all_x
   my @v= ();
   if (defined ($where))
   {
-    print "where: ", main::Dumper ($where);
+    print "where: ", main::Dumper ($where) if ($show_query);
     $ss .= ' WHERE ' . shift (@$where);
     @v= @$where;
   }
-  print "ss=[$ss]\n";
+
+  if ($show_query)
+  {
+    print "ss=[$ss]";
+    print ' vars: ', join (',', @v) if (@v);
+    print "\n";
+  }
 
   my $sth= $dbh->prepare($ss) or print $dbh->errstr;
-  print "sth=[$sth]\n";
+  # print "sth=[$sth]\n";
   $sth->execute(@v);
 
   my $t= $self->table($table);
@@ -94,19 +101,20 @@ sub get_project_members
 
 =cut
 
-sub get_members
+sub pcx_members
 {
   my $self= shift;
   my $proj_id= shift;
 
-  my $res= $self->table('x_sync');
+  my $res= $self->table('pcx');
 
   my $proj=    $self->get_all_x ('projects', [ 'id=?',         $proj_id ]);
   my $members= $self->get_all_x ('members',  [ 'project_id=?', $proj_id ]);
+
   $res->{'project'}= $proj;
   $res->{'members'}= $members;
 
-  print "proj: ", main::Dumper($proj);
+  # print "proj: ", main::Dumper($proj);
 
   # --------------------------------------------------------------------
   # check for members and users
@@ -125,7 +133,7 @@ sub get_members
 
   if (@missing_users)
   {
-    print "missing users: [", join (' ', @missing_users), "]\n";
+    # print "missing users: [", join (' ', @missing_users), "]\n";
     my $in= 'id IN ('. join(',', map { '?' } @missing_users) . ')';
     # $show_fetched= 1;
     $self->get_all_x ('users', [ $in, @missing_users ]),
@@ -134,12 +142,12 @@ sub get_members
   $res;
 }
 
-sub get_wiki
+sub pcx_wiki
 {
   my $self= shift;
   my $proj_id= shift;
 
-  my $res= $self->table('x_sync');
+  my $res= $self->table('pcx');
 
   # --------------------------------------------------------------------
   # check for wiki stuff
@@ -159,7 +167,8 @@ sub get_wiki
     foreach my $wiki_id (@wiki_ids)
     {
       my $wiki_pages= $self->get_all_x ('wiki_pages', [ 'wiki_id=?', $proj_id ]);
-      print "wiki_id=[$wiki_id] wiki_pages: ", main::Dumper ($wiki_pages);
+      $res->{'wiki_pages'}->{$wiki_id}= $wiki_pages;
+      # print "wiki_id=[$wiki_id] wiki_pages: ", main::Dumper ($wiki_pages);
     }
   }
 
diff --git a/t_sync.pl b/t_sync.pl
index 83a84bd..1dc42f1 100755
--- a/t_sync.pl
+++ b/t_sync.pl
@@ -32,6 +32,8 @@ use Redmine::DB::MySQL;
 
 # yeah, this should be in a config file, but 
 my $setup_file;
+
+# this structure ($setup) resembles something like a "context"
 my $setup=
 {
   'src' =>
@@ -87,13 +89,13 @@ sub usage
   exit (0);
 }
 
-if ($op_mode eq 'usage') { usage(); }
+   if ($op_mode eq 'usage') { usage(); }
 elsif ($op_mode eq 'prep')
 {
   my $dst= read_configs($setup, 'dst');
   prepare_sync_table ($dst);
 }
-elsif ($op_mode eq 'sdp')
+elsif ($op_mode eq 'sdp') # sdp: show destination intance's projects
 {
   my $dst= read_configs($setup, 'dst');
 
@@ -104,14 +106,18 @@ elsif ($op_mode eq 'sync')
 {
   my $src= read_configs($setup, 'src');
   my $dst= read_configs($setup, 'dst');
+  # my $x_u= $src->get_all_users();
 
   # print "setup: ", Dumper ($setup);
 
   foreach my $sp (@{$setup->{'sync_projects'}})
   {
+    my $proj_id= $sp->{'src_proj'};
     print "sp: ", Dumper ($sp);
-    my $sx= $src->get_project_members ($sp->{'src_proj'});
-    print "sx: ", Dumper ($sx);
+    $src->pcx_members ($proj_id);
+    my $pcx= $src->pcx_wiki ($proj_id);
+    print "pcx: ", Dumper ($pcx);
+    # print "src: ", Dumper ($src);
   }
 }
 elsif ($op_mode eq 'diag')
@@ -127,7 +133,7 @@ elsif ($op_mode eq 'diag')
 # print "src_usr: ", Dumper ($src_usr);
 # print "src: ", Dumper ($src);
 
-# my $src_members= $src->get_project_members (170);
+# my $src_members= $src->get_project_members (... some project id ...);
 # print "src_members: ", Dumper ($src_members);
 
 
@@ -183,5 +189,7 @@ CREATE TABLE `syncs`
 ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
 EOX
 
+  # NOTE: for some reason, this can't be sent to the database, maybe/probably I'm missing something...
+
   print "perform this on the database\n", "--- 8< ---\n", $ss, "--- >8 ---\n";
 }
-- 
GitLab