Bug 26063: Use Koha::Plugins->call for circulation hooks
authorTomas Cohen Arazi <tomascohen@theke.io>
Fri, 24 Jul 2020 19:00:52 +0000 (16:00 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Thu, 30 Jul 2020 15:44:23 +0000 (17:44 +0200)
This patch gets rid of a helper method used for calling the plugin
hooks.

To test:
1. Run:
   $ kshell
  k$ prove t/db_dependent/Koha/Plugins/Circulation_hooks.t
=> SUCCESS: Tests pass!
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests still pass!
4. Sign off :-D

Sponsored-by: ByWater Solutions

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

C4/Circulation.pm

index a0994e1..bda4b00 100644 (file)
@@ -1548,15 +1548,13 @@ sub AddIssue {
                 $item_object->itemnumber,
             ) if C4::Context->preference("IssueLog");
 
-            _after_circ_actions(
-                {
-                    action  => 'checkout',
-                    payload => {
-                        type     => ( $onsite_checkout ? 'onsite_checkout' : 'issue' ),
-                        checkout => $issue->get_from_storage
-                    }
+            Koha::Plugins->call('after_circ_action', {
+                action  => 'checkout',
+                payload => {
+                    type     => ( $onsite_checkout ? 'onsite_checkout' : 'issue' ),
+                    checkout => $issue->get_from_storage
                 }
-            ) if C4::Context->config("enable_plugins");
+            });
         }
     }
     return $issue;
@@ -2210,14 +2208,12 @@ sub AddReturn {
 
     my $checkin = Koha::Old::Checkouts->find($issue->id);
 
-    _after_circ_actions(
-        {
-            action  => 'checkin',
-            payload => {
-                checkout=> $checkin
-            }
+    Koha::Plugins->call('after_circ_action', {
+        action  => 'checkin',
+        payload => {
+            checkout=> $checkin
         }
-    ) if C4::Context->config("enable_plugins");
+    });
 
     return ( $doreturn, $messages, $issue, ( $patron ? $patron->unblessed : {} ));
 }
@@ -3134,14 +3130,12 @@ sub AddRenewal {
         #Log the renewal
         logaction("CIRCULATION", "RENEWAL", $borrowernumber, $itemnumber) if C4::Context->preference("RenewalLog");
 
-        _after_circ_actions(
-            {
-                action  => 'renewal',
-                payload => {
-                    checkout  => $issue->get_from_storage
-                }
+        Koha::Plugins->call('after_circ_action', {
+            action  => 'renewal',
+            payload => {
+                checkout  => $issue->get_from_storage
             }
-        ) if C4::Context->config("enable_plugins");
+        });
     });
 
     return $datedue;
@@ -4352,30 +4346,6 @@ sub _item_denied_renewal {
     return 0;
 }
 
-=head3 _after_circ_actions
-
-Internal method that calls the after_circ_action plugin hook on configured
-plugins.
-
-=cut
-
-sub _after_circ_actions {
-    my ($params) = @_;
-
-    my @plugins = Koha::Plugins->new->GetPlugins({
-        method => 'after_circ_action',
-    });
-
-    foreach my $plugin ( @plugins ) {
-        try {
-            $plugin->after_circ_action( $params );
-        }
-        catch {
-            warn "$_";
-        };
-    }
-}
-
 1;
 
 __END__