1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<?php
namespace Yoast\WP\SEO\Routes;
use WP_REST_Response; use Yoast\WP\SEO\Actions\Indexing\Indexation_Action_Interface;
/** * Abstract_Indexation_Route class. * * Reindexing route for indexables. */ abstract class Abstract_Indexation_Route implements Route_Interface {
/** * Responds to an indexing request. * * @param array $objects The objects that have been indexed. * @param string $next_url The url that should be called to continue reindexing. False if done. * * @return WP_REST_Response The response. */ protected function respond_with( $objects, $next_url ) { return new WP_REST_Response( [ 'objects' => $objects, 'next_url' => $next_url, ] ); }
/** * Runs an indexing action and returns the response. * * @param Indexation_Action_Interface $indexation_action The indexing action. * @param string $url The url of the indexing route. * * @return WP_REST_Response The response. */ protected function run_indexation_action( Indexation_Action_Interface $indexation_action, $url ) { $indexables = $indexation_action->index();
$next_url = false; if ( \count( $indexables ) >= $indexation_action->get_limit() ) { $next_url = \rest_url( $url ); }
return $this->respond_with( $indexables, $next_url ); } }
|