Skip to content
This repository has been archived by the owner. It is now read-only.

Commit 988f611

Browse files
authored
Feature/fix dataset storage per variant (#12)
Improve dataset removal
1 parent 93a0991 commit 988f611

File tree

9 files changed

+33
-17
lines changed

9 files changed

+33
-17
lines changed

phpunit.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
<logging>
2727
<log type="junit" target="build/report.junit.xml"/>
28-
<log type="coverage-html" target="build/coverage" charset="UTF-8" yui="true" highlight="true"/>
28+
<log type="coverage-html" target="build/coverage"/>
2929
<log type="coverage-text" target="build/coverage.txt"/>
3030
<log type="coverage-clover" target="build/clover.xml"/>
3131
</logging>

src/Scraper/Listeners/UpdateDataset.php

+23-7
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,6 @@ public function handle(Scraped $event)
2525
private function addDataset(Scraped $event)
2626
{
2727
Log::info('Adding new information to dataset', ['request' => $event->scrapeRequest]);
28-
$scraperDatasets = ScrapedDataset::withType($event->scrapeRequest->type)
29-
->withVariant($event->variant);
30-
31-
if (self::DATASET_AMOUNT_LIMIT <= $scraperDatasets->count()) {
32-
$scraperDatasets->orderBy('updated_at', 'desc')->first()->delete();
33-
}
34-
3528
ScrapedDataset::create(
3629
[
3730
'url' => $event->scrapeRequest->url,
@@ -40,6 +33,8 @@ private function addDataset(Scraped $event)
4033
'data' => $event->data,
4134
]
4235
);
36+
37+
$this->deleteExceededDataset($event);
4338
}
4439

4540
private function updateDataset(ScrapedDataset $dataset, Scraped $event)
@@ -49,4 +44,25 @@ private function updateDataset(ScrapedDataset $dataset, Scraped $event)
4944

5045
$dataset->save();
5146
}
47+
48+
private function deleteExceededDataset($event): void
49+
{
50+
$scraperDatasets = ScrapedDataset::withType($event->scrapeRequest->type)
51+
->withVariant($event->variant);
52+
53+
$datasetAmountAvailable = $scraperDatasets->count();
54+
55+
if (self::DATASET_AMOUNT_LIMIT <= $datasetAmountAvailable) {
56+
$datasetToBeDeleted = $datasetAmountAvailable - self::DATASET_AMOUNT_LIMIT;
57+
Log::debug('Deleting old dataset information', [
58+
'limit' => self::DATASET_AMOUNT_LIMIT,
59+
'current' => $datasetAmountAvailable,
60+
'toBeDeleted' => $datasetToBeDeleted,
61+
]);
62+
63+
$scraperDatasets->orderBy('updated_at', 'desc')
64+
->take($datasetToBeDeleted)
65+
->delete();
66+
}
67+
}
5268
}

tests/TestCase.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
class TestCase extends \Orchestra\Testbench\TestCase
88
{
9-
public function setUp():void
9+
public function setUp(): void
1010
{
1111
parent::setUp();
1212

tests/Unit/Scraper/Application/ConfiguratorTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class ConfiguratorTest extends TestCase
4444
*/
4545
private $configurator;
4646

47-
public function setUp()
47+
public function setUp(): void
4848
{
4949
parent::setUp();
5050

tests/Unit/Scraper/Application/XpathBuilderTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class XpathBuilderTest extends TestCase
1717
*/
1818
private $xpathBuilder;
1919

20-
public function setUp()
20+
public function setUp(): void
2121
{
2222
parent::setUp();
2323

tests/Unit/Scraper/Application/XpathFinderTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class XpathFinderTest extends TestCase
1515
{
1616
use DatabaseMigrations;
1717

18-
public function setUp()
18+
public function setUp(): void
1919
{
2020
parent::setUp();
2121

tests/Unit/Scraper/Listeners/ConfigureScraperTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class ConfigureScraperTest extends TestCase
4040
*/
4141
private $type;
4242

43-
public function setUp()
43+
public function setUp(): void
4444
{
4545
parent::setUp();
4646

tests/Unit/Scraper/Listeners/ScrapeTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class ScrapeTest extends TestCase
4343
*/
4444
private $scrapeRequest;
4545

46-
public function setUp()
46+
public function setUp(): void
4747
{
4848
parent::setUp();
4949

tests/Unit/Scraper/Listeners/UpdateDatasetTest.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class UpdateDatasetTest extends \Tests\TestCase
1717
*/
1818
private $updateDataset;
1919

20-
public function setUp()
20+
public function setUp(): void
2121
{
2222
parent::setUp();
2323

@@ -86,9 +86,9 @@ public function whenDatasetDoesNotExistAndTheDatasetsLimitHasNotBeenReachedItSho
8686
/**
8787
* @test
8888
*/
89-
public function whenDatasetDoesNotExistAndTheDatasetsLimitHasReachedItShouldReplaceTheOldest()
89+
public function whenDatasetDoesNotExistAndTheDatasetsLimitHasReachedItShouldDeleteTheExcess()
9090
{
91-
factory(ScrapedDataset::class, UpdateDataset::DATASET_AMOUNT_LIMIT)->create([
91+
factory(ScrapedDataset::class, UpdateDataset::DATASET_AMOUNT_LIMIT + 10)->create([
9292
'variant' => 'b265521fc089ac61b794bfa3a5ce8a657f6833ce',
9393
]);
9494

0 commit comments

Comments
 (0)