session passing for make_atomic, at least
authormiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Tue, 29 Jul 2008 20:42:16 +0000 (20:42 +0000)
committermiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Tue, 29 Jul 2008 20:42:16 +0000 (20:42 +0000)
git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1381 9efc2488-bf62-4759-914b-345cdb29e865

src/perlmods/OpenSRF/AppSession.pm
src/perlmods/OpenSRF/Application.pm

index 54d465c..9d3e8b4 100644 (file)
@@ -1027,6 +1027,13 @@ sub new {
 
 sub responses { @{$_[0]->{resp}} }
 
+sub session {
+       my $x = shift;
+       my $s = shift;
+       $x->{session} = $s if ($s);
+       return $x->{session};
+}
+
 sub status {}
 
 
index 08bd106..dbd86e1 100644 (file)
@@ -54,6 +54,16 @@ sub api_level {
        return $self->{api_level};
 }
 
+sub session {
+       my $self = shift;
+       my $session = shift;
+
+       if($session) {
+               $self->{session} = $session;
+       }
+       return $self->{session};
+}
+
 sub server_class {
        my $class = shift;
        if($class) {
@@ -530,6 +540,8 @@ sub run {
                $log->debug("Creating a SubRequest object", DEBUG);
                unshift @params, $req;
                $req = OpenSRF::AppSubrequest->new;
+               $req->session( $self->session ) if ($self->session);
+
        } else {
                $log->debug("This is a top level request", DEBUG);
        }
@@ -712,7 +724,11 @@ sub make_stream_atomic {
        my @args = @_;
 
        (my $m_name = $self->api_name) =~ s/\.atomic$//o;
-       my @results = $self->method_lookup($m_name)->run(@args);
+       my $m = $self->method_lookup($m_name);
+
+       $m->session( $req->session );
+       my @results = $m->run(@args);
+       $m->session('');
 
        return \@results;
 }