Skip to content

Commit 49eea8c

Browse files
committed
skip orphaned manifests
1 parent f06df37 commit 49eea8c

4 files changed

Lines changed: 30 additions & 7 deletions

File tree

src/Extractor/Extractor.php

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,10 @@ public function runProfiles(array $query, array $profiles): array
6060

6161
if (isset($query['query'])) {
6262
$outputCsv = $this->output->createReport($query);
63-
$this->output->createManifest($outputCsv->getFilename(), $query, ['id'], true);
6463
$this->logger->info(sprintf("Running query '%s'", $query['outputTable']));
6564

6665
$downloadedProfiles = false;
66+
$manifestCreated = false;
6767
foreach ($profiles as $profile) {
6868
$this->logger->info(sprintf('Profile "%s" export started.', $profile['id']));
6969
$apiQuery = $query;
@@ -130,7 +130,16 @@ public function runProfiles(array $query, array $profiles): array
130130
}
131131
}
132132

133-
$paginator->paginate($apiQuery, $report, $outputCsv);
133+
$rowCount = $paginator->paginate($apiQuery, $report, $outputCsv);
134+
if ($rowCount > 0 && !$manifestCreated) {
135+
$this->output->createManifest(
136+
$outputCsv->getFilename(),
137+
$query,
138+
['id'],
139+
true,
140+
);
141+
$manifestCreated = true;
142+
}
134143

135144
$status[$query['outputTable']][$profile['id']] = 'ok';
136145
}
@@ -159,10 +168,10 @@ public function runProperties(array $query, array $properties): array
159168
$query['query']['endpoint'] = 'properties';
160169

161170
$outputCsv = $this->output->createReport($query);
162-
$this->output->createManifest($outputCsv->getFilename(), $query, ['id'], true, 'idProperty');
163171
$this->logger->info(sprintf("Running query '%s'", $query['outputTable']));
164172

165173
$downloadedProperties = false;
174+
$manifestCreated = false;
166175
foreach ($properties as $property) {
167176
$this->logger->info(sprintf('Property "%s" export started.', $property['propertyName']));
168177
if (!empty($query['query']['viewId'])
@@ -199,7 +208,17 @@ public function runProperties(array $query, array $properties): array
199208
continue;
200209
}
201210

202-
$paginator->paginate($apiQuery, $report, $outputCsv);
211+
$rowCount = $paginator->paginate($apiQuery, $report, $outputCsv);
212+
if ($rowCount > 0 && !$manifestCreated) {
213+
$this->output->createManifest(
214+
$outputCsv->getFilename(),
215+
$query,
216+
['id'],
217+
true,
218+
'idProperty',
219+
);
220+
$manifestCreated = true;
221+
}
203222

204223
$status[$query['outputTable']][$property['propertyKey']] = 'ok';
205224
}

src/Extractor/Paginator/IPaginator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ interface IPaginator
1212
{
1313
public function getOutput(): Output;
1414
public function getClient(): Client;
15-
public function paginate(array $query, array $report, CsvFile $csvFile): void;
15+
public function paginate(array $query, array $report, CsvFile $csvFile): int;
1616
}

src/Extractor/Paginator/ProfilesPaginator.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public function getClient(): Client
3434
return $this->client;
3535
}
3636

37-
public function paginate(array $query, array $report, CsvFile $csvFile): void
37+
public function paginate(array $query, array $report, CsvFile $csvFile): int
3838
{
3939
$counter = 0;
4040
do {
@@ -60,6 +60,8 @@ public function paginate(array $query, array $report, CsvFile $csvFile): void
6060
}
6161
$query = $nextQuery;
6262
} while ($query);
63+
64+
return $counter;
6365
}
6466

6567
private function getStartIndex(string $link): string

src/Extractor/Paginator/PropertiesPaginator.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public function setProperty(array $property): self
4444
return $this;
4545
}
4646

47-
public function paginate(array $query, array $report, CsvFile $csvFile): void
47+
public function paginate(array $query, array $report, CsvFile $csvFile): int
4848
{
4949
$localCounter = 0;
5050
do {
@@ -66,5 +66,7 @@ public function paginate(array $query, array $report, CsvFile $csvFile): void
6666

6767
$query = $nextQuery;
6868
} while ($report['totals'] > $localCounter);
69+
70+
return $localCounter;
6971
}
7072
}

0 commit comments

Comments
 (0)