Support several A/T core types with the Curbside validator
authorMike Rylander <mrylander@gmail.com>
Fri, 5 Jun 2020 15:00:42 +0000 (11:00 -0400)
committerMike Rylander <mrylander@gmail.com>
Fri, 5 Jun 2020 15:00:42 +0000 (11:00 -0400)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Open-ILS/src/perlmods/lib/OpenILS/Application/Trigger/Validator/Curbside.pm

index f6101fb..081962f 100644 (file)
@@ -5,8 +5,23 @@ my $U = 'OpenILS::Application::AppUtils';
 
 sub handler {
     my ($self, $env) = @_;
+    my $org;
+
+    # support a few different target types
+    if ($env->{target}->isa('Fieldmapper::action::curbside')) {
+        $org = $env->{target}->org;
+    } elsif ($env->{target}->isa('Fieldmapper::action::hold_request')) {
+        $org = $env->{target}->pickup_lib;
+    } elsif ($env->{target}->isa('Fieldmapper::actor::usr')) {
+        $org = $env->{target}->home_ou;
+    } elsif ($env->{target}->isa('Fieldmapper::actor::org_unit')) {
+        $org = $env->{target}->id;
+    }
+
+    return 0 unless (defined $org);
+
     return $U->is_true(
-        $U->ou_ancestor_setting_value($env->{target}->pickup_lib, 'circ.curbside')
+        $U->ou_ancestor_setting_value($org, 'circ.curbside')
     );
 }