Skip to content

Commit 2658ce0

Browse files
committed
fix: clear error on successful index
1 parent 600debe commit 2658ce0

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

src/Extensions/AlgoliaObjectExtension.php

+11-3
Original file line numberDiff line numberDiff line change
@@ -231,22 +231,30 @@ public function doImmediateIndexInAlgolia(): bool
231231
return false;
232232
}
233233

234+
235+
$schema = DataObject::getSchema();
236+
$table = $schema->tableForField($this->owner->ClassName, 'AlgoliaError');
234237
$indexer = Injector::inst()->get(AlgoliaIndexer::class);
235238

236239
try {
237240
if ($indexer->indexItem($this->owner)) {
238241
$this->touchAlgoliaIndexedDate();
239242

243+
DB::query(
244+
sprintf(
245+
'UPDATE %s SET AlgoliaError = \'\' WHERE ID = %s',
246+
$table,
247+
$this->owner->ID
248+
)
249+
);
250+
240251
return true;
241252
} else {
242253
return false;
243254
}
244255
} catch (Throwable $e) {
245256
Injector::inst()->get(LoggerInterface::class)->error($e);
246257

247-
$schema = DataObject::getSchema();
248-
$table = $schema->tableForField($this->owner->ClassName, 'AlgoliaError');
249-
250258
DB::query(
251259
sprintf(
252260
'UPDATE %s SET AlgoliaError = \'%s\' WHERE ID = %s',

src/Extensions/SubsitesVirtualPageExtension.php

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ public function exportObjectToAlgolia($toIndex)
4444
return $attributes;
4545
});
4646

47+
$attributes->push('SubsiteID', $this->owner->SubsiteID);
48+
4749
return $result;
4850
}
4951
}

src/Tasks/AlgoliaReindexItem.php

+10-1
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
use SilverStripe\CMS\Model\VirtualPage;
66
use SilverStripe\Core\Environment;
7+
use SilverStripe\Core\Injector\Injector;
78
use SilverStripe\Dev\BuildTask;
89
use SilverStripe\ORM\DataObject;
10+
use Wilr\SilverStripe\Algolia\Service\AlgoliaIndexer;
911

1012
class AlgoliaReindexItem extends BuildTask
1113
{
@@ -49,12 +51,19 @@ public function run($request)
4951
$obj->assignAlgoliaUUID(true);
5052
}
5153

54+
$indexer = Injector::inst()->get(AlgoliaIndexer::class);
55+
$service = $indexer->getService();
56+
57+
echo 'Indexing to Algolia indexes (';
58+
echo implode(', ', array_map(function ($indexName) use ($service) {
59+
return $service->environmentizeIndex($indexName);
60+
}, array_keys($service->initIndexes($obj)))) . ')' . PHP_EOL;
5261

5362
$result = $obj->doImmediateIndexInAlgolia();
5463

5564
echo sprintf(
5665
'Indexed: %s%sUUID: %s%s%s',
57-
$result ? 'true' : 'false',
66+
$result ? 'true ' . '(timestamp ' . $obj->AlgoliaIndexed . ')' : 'false',
5867
PHP_EOL,
5968
$obj->AlgoliaUUID ? $obj->AlgoliaUUID : 'No ID set',
6069
PHP_EOL,

0 commit comments

Comments
 (0)