Bug 25278: add clear_search_fields_cache method
authorNick Clemens <nick@bywatersolutions.com>
Fri, 15 May 2020 11:46:07 +0000 (11:46 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Mon, 18 May 2020 14:28:42 +0000 (15:28 +0100)
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Koha/SearchEngine/Elasticsearch.pm
admin/searchengine/elasticsearch/mappings.pl
t/db_dependent/Koha/SearchEngine/Elasticsearch/QueryBuilder.t
t/db_dependent/Koha/SearchEngine/Elasticsearch/Reset.t

index 7afb9aa..a43b864 100644 (file)
@@ -382,11 +382,7 @@ sub reset_elasticsearch_mappings {
         }
     }
 
-    my $cache = Koha::Caches->get_instance();
-    $cache->clear_from_cache('elasticsearch_search_fields_staff_client_biblios');
-    $cache->clear_from_cache('elasticsearch_search_fields_opac_biblios');
-    $cache->clear_from_cache('elasticsearch_search_fields_staff_client_authorities');
-    $cache->clear_from_cache('elasticsearch_search_fields_opac_authorities');
+    $self->clear_search_fields_cache();
 
     # FIXME return the mappings?
 }
@@ -1287,6 +1283,24 @@ sub get_facetable_fields {
     return ( @faceted_fields, @not_faceted_fields );
 }
 
+=head2 clear_search_fields_cache
+
+Koha::SearchEngine::Elasticsearch->clear_search_fields_cache();
+
+Clear cached values for ES search fields
+
+=cut
+
+sub clear_search_fields_cache {
+
+    my $cache = Koha::Caches->get_instance();
+    $cache->clear_from_cache('elasticsearch_search_fields_staff_client_biblios');
+    $cache->clear_from_cache('elasticsearch_search_fields_opac_biblios');
+    $cache->clear_from_cache('elasticsearch_search_fields_staff_client_authorities');
+    $cache->clear_from_cache('elasticsearch_search_fields_opac_authorities');
+
+}
+
 1;
 
 __END__
index 5212c2a..57a9656 100755 (executable)
@@ -165,11 +165,7 @@ if ( $op eq 'edit' ) {
         push @messages, { type => 'message', code => 'success_on_update' };
         $schema->storage->txn_commit;
 
-        my $cache = Koha::Caches->get_instance();
-        $cache->clear_from_cache('elasticsearch_search_fields_staff_client_biblios');
-        $cache->clear_from_cache('elasticsearch_search_fields_opac_biblios');
-        $cache->clear_from_cache('elasticsearch_search_fields_staff_client_authorities');
-        $cache->clear_from_cache('elasticsearch_search_fields_opac_authorities');
+        Koha::SearchEngine::Elasticsearch->clear_search_fields_cache();
 
         $update_mappings->();
     }
index a3ff646..bf6d77d 100644 (file)
@@ -101,14 +101,6 @@ $se->mock( 'get_elasticsearch_mappings', sub {
     return $all_mappings{$self->index};
 });
 
-my $cache = Koha::Caches->get_instance();
-my $clear_search_fields_cache = sub {
-    $cache->clear_from_cache('elasticsearch_search_fields_staff_client_biblios');
-    $cache->clear_from_cache('elasticsearch_search_fields_opac_biblios');
-    $cache->clear_from_cache('elasticsearch_search_fields_staff_client_authorities');
-    $cache->clear_from_cache('elasticsearch_search_fields_opac_authorities');
-};
-
 subtest 'build_authorities_query_compat() tests' => sub {
 
     plan tests => 57;
@@ -635,7 +627,7 @@ subtest 'build_query with weighted fields tests' => sub {
     $search_field->update({ weight => 25.0 });
     $search_field = Koha::SearchFields->find({ name => 'subject' });
     $search_field->update({ weight => 15.5 });
-    $clear_search_fields_cache->();
+    Koha::SearchEngine::Elasticsearch->clear_search_fields_cache();
 
     my ( undef, $query ) = $qb->build_query_compat( undef, ['title:"donald duck"'], undef, undef,
     undef, undef, undef, { weighted_fields => 1 });
index 0c07a26..e57ee16 100644 (file)
@@ -72,8 +72,4 @@ is($title_sf->weight, '20.00', 'Title search field is weighted with 20');
 
 $schema->storage->txn_rollback;
 
-$cache = Koha::Caches->get_instance();
-$cache->clear_from_cache('elasticsearch_search_fields_staff_client_biblios');
-$cache->clear_from_cache('elasticsearch_search_fields_opac_biblios');
-$cache->clear_from_cache('elasticsearch_search_fields_staff_client_authorities');
-$cache->clear_from_cache('elasticsearch_search_fields_opac_authorities');
+Koha::SearchEngine::Elasticsearch->clear_search_fields_cache();