@@ -25,13 +25,6 @@ public function handle(Scraped $event)
25
25
private function addDataset (Scraped $ event )
26
26
{
27
27
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
-
35
28
ScrapedDataset::create (
36
29
[
37
30
'url ' => $ event ->scrapeRequest ->url ,
@@ -40,6 +33,8 @@ private function addDataset(Scraped $event)
40
33
'data ' => $ event ->data ,
41
34
]
42
35
);
36
+
37
+ $ this ->deleteExceededDataset ($ event );
43
38
}
44
39
45
40
private function updateDataset (ScrapedDataset $ dataset , Scraped $ event )
@@ -49,4 +44,25 @@ private function updateDataset(ScrapedDataset $dataset, Scraped $event)
49
44
50
45
$ dataset ->save ();
51
46
}
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
+ }
52
68
}
0 commit comments