Lines 25-30
use Try::Tiny qw( catch try );
Link Here
|
25 |
use C4::Context; |
25 |
use C4::Context; |
26 |
use Koha::DateUtils qw( dt_from_string ); |
26 |
use Koha::DateUtils qw( dt_from_string ); |
27 |
use Koha::Exceptions; |
27 |
use Koha::Exceptions; |
|
|
28 |
use Koha::Plugins; |
28 |
|
29 |
|
29 |
use base qw( Koha::Object ); |
30 |
use base qw( Koha::Object ); |
30 |
|
31 |
|
Lines 245-253
sub _derived_class {
Link Here
|
245 |
|
246 |
|
246 |
=head3 type_to_class_mapping |
247 |
=head3 type_to_class_mapping |
247 |
|
248 |
|
|
|
249 |
my $mapping = Koha::BackgrounJob->new->type_to_class_mapping; |
250 |
|
251 |
Returns the available types to class mappings. |
252 |
|
248 |
=cut |
253 |
=cut |
249 |
|
254 |
|
250 |
sub type_to_class_mapping { |
255 |
sub type_to_class_mapping { |
|
|
256 |
my ($self) = @_; |
257 |
|
258 |
my $plugins_mapping = $self->plugin_type_to_class; |
259 |
|
260 |
return ($plugins_mapping) |
261 |
? { %{ $self->core_type_to_class }, %{ $self->plugin_type_to_class } } |
262 |
: $self->core_type_to_class; |
263 |
} |
264 |
|
265 |
=head3 core_type_to_class |
266 |
|
267 |
my $mappings = Koha::BackgrounJob->new->core_type_to_class |
268 |
|
269 |
Returns the core background jobs types to class mappings. |
270 |
|
271 |
=cut |
272 |
|
273 |
sub core_type_to_class { |
251 |
return { |
274 |
return { |
252 |
batch_authority_record_deletion => 'Koha::BackgroundJob::BatchDeleteAuthority', |
275 |
batch_authority_record_deletion => 'Koha::BackgroundJob::BatchDeleteAuthority', |
253 |
batch_authority_record_modification => 'Koha::BackgroundJob::BatchUpdateAuthority', |
276 |
batch_authority_record_modification => 'Koha::BackgroundJob::BatchUpdateAuthority', |
Lines 259-264
sub type_to_class_mapping {
Link Here
|
259 |
}; |
282 |
}; |
260 |
} |
283 |
} |
261 |
|
284 |
|
|
|
285 |
=head3 plugin_type_to_class |
286 |
|
287 |
my $mappings = Koha::BackgroundJob->new->plugin_type_to_class |
288 |
|
289 |
Returns the plugin-refined background jobs types to class mappings. |
290 |
|
291 |
=cut |
292 |
|
293 |
sub plugin_type_to_class { |
294 |
my ($self) = @_; |
295 |
|
296 |
unless ( exists $self->{_plugin_mapping} ) { |
297 |
my @plugins = Koha::Plugins->new()->GetPlugins( { method => 'background_tasks', } ); |
298 |
|
299 |
foreach my $plugin (@plugins) { |
300 |
|
301 |
my $tasks = $plugin->background_tasks; |
302 |
my $metadata = $plugin->get_metadata; |
303 |
|
304 |
unless ( $metadata->{namespace} ) { |
305 |
Koha::Logger->get->warn( |
306 |
"The plugin includes the 'background_tasks' method, but doesn't provide the required 'namespace' method (" |
307 |
. $plugin->{class} |
308 |
. ')' ); |
309 |
next; |
310 |
} |
311 |
|
312 |
my $namespace = $metadata->{namespace}; |
313 |
|
314 |
foreach my $type ( keys %{$tasks} ) { |
315 |
my $class = $tasks->{$type}; |
316 |
|
317 |
# skip if conditions not met |
318 |
next unless $type and $class; |
319 |
|
320 |
my $key = "plugin_$namespace" . "_$type"; |
321 |
|
322 |
$self->{_plugin_mapping}->{$key} = $tasks->{$type}; |
323 |
} |
324 |
} |
325 |
} |
326 |
|
327 |
return $self->{_plugin_mapping}; |
328 |
} |
329 |
|
262 |
=head3 _type |
330 |
=head3 _type |
263 |
|
331 |
|
264 |
=cut |
332 |
=cut |
265 |
- |
|
|