Skip to content

Commit 4dd958d

Browse files
committed
dev(feat): deleteData field
1 parent fd67da0 commit 4dd958d

4 files changed

Lines changed: 43 additions & 26 deletions

File tree

docs/specs/validator-api.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ info:
66
contact:
77
name: IGNF/validator
88
url: "https://github.com/IGNF/validator/issues"
9-
version: "0.5.8"
9+
version: "0.6.0"
1010
title: "API Validator"
1111
license:
1212
name: "AGPL-3.0-or-later"

src/Controller/Api/ValidationsController.php

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ public function __construct(
3131
private ValidatorArgumentsService $valArgsService,
3232
private MimeTypeGuesserService $mimeTypeGuesserService,
3333
private LoggerInterface $logger,
34-
) {
35-
}
34+
) {}
3635

3736
/**
3837
* @Route(
@@ -82,7 +81,7 @@ public function readConsole($uid)
8281
}
8382

8483
$outputDirectory = $this->storage->getOutputDirectory($validation);
85-
$filepath = $outputDirectory.'/validator-debug.log';
84+
$filepath = $outputDirectory . '/validator-debug.log';
8685

8786
$content = $this->storage->getStorage()->read($filepath);
8887

@@ -110,8 +109,8 @@ public function getValidationCsv($uid, CsvReportWriter $csvWriter)
110109
$csvWriter->write($validation);
111110
});
112111
$response->headers->set('Content-Type', 'application/force-download');
113-
$filename = $uid.'-results.csv';
114-
$response->headers->set('Content-Disposition', 'attachment; filename="'.$filename.'"');
112+
$filename = $uid . '-results.csv';
113+
$response->headers->set('Content-Disposition', 'attachment; filename="' . $filename . '"');
115114

116115
return $response;
117116
}
@@ -160,7 +159,7 @@ public function uploadDataset(Request $request)
160159
if (!$this->storage->getStorage()->directoryExists($uploadDirectory)) {
161160
$this->storage->getStorage()->createDirectory($uploadDirectory);
162161
}
163-
$fileLocation = $uploadDirectory.$validation->getDatasetName().'.zip';
162+
$fileLocation = $uploadDirectory . $validation->getDatasetName() . '.zip';
164163
if ($this->storage->getStorage()->fileExists($fileLocation)) {
165164
$this->storage->getStorage()->delete($fileLocation);
166165
}
@@ -215,10 +214,7 @@ public function updateArguments(Request $request, $uid)
215214
$arguments = $this->valArgsService->validate($data);
216215

217216
// checks if we need to keep data
218-
$deleteData = $arguments['deleteData'];
219-
if ($deleteData) {
220-
$validation->setDateCreation((new \DateTime())->modify('-5 days'));
221-
}
217+
$validation->setDeleteData($arguments['deleteData']);
222218
unset($arguments['deleteData']);
223219

224220
$validation->reset();
@@ -298,9 +294,9 @@ public function downloadNormalizedData($uid)
298294
}
299295

300296
$outputDirectory = $this->storage->getOutputDirectory($validation);
301-
$zipFilepath = $outputDirectory.$validation->getDatasetName().'.zip';
297+
$zipFilepath = $outputDirectory . $validation->getDatasetName() . '.zip';
302298

303-
return $this->getDownloadResponse($zipFilepath, $validation->getDatasetName().'-normalized.zip');
299+
return $this->getDownloadResponse($zipFilepath, $validation->getDatasetName() . '-normalized.zip');
304300
}
305301

306302
/**
@@ -322,9 +318,9 @@ public function downloadSourceData($uid)
322318
}
323319

324320
$uploadDirectory = $this->storage->getUploadDirectory($validation);
325-
$zipFilepath = $uploadDirectory.$validation->getDatasetName().'.zip';
321+
$zipFilepath = $uploadDirectory . $validation->getDatasetName() . '.zip';
326322

327-
return $this->getDownloadResponse($zipFilepath, $validation->getDatasetName().'-source.zip');
323+
return $this->getDownloadResponse($zipFilepath, $validation->getDatasetName() . '-source.zip');
328324
}
329325

330326
/**

src/Entity/Validation.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ class Validation
114114
*/
115115
private $results;
116116

117+
/**
118+
* @ORM\Column(type="boolean", nullable=true)
119+
*/
120+
private $deleteData;
121+
117122
/**
118123
* Constructor.
119124
*/
@@ -232,6 +237,18 @@ public function setResults($results)
232237
return $this;
233238
}
234239

240+
public function getDeleteData()
241+
{
242+
return $this->deleteData;
243+
}
244+
245+
public function setDeleteData($deleteData)
246+
{
247+
$this->deleteData = $deleteData;
248+
249+
return $this;
250+
}
251+
235252
/**
236253
* Reset all attributes because user has requested a validation with updated parameters.
237254
*

src/Validation/ValidationManager.php

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -242,13 +242,13 @@ private function getZip(Validation $validation)
242242
]);
243243

244244
$validationDirectory = $this->storage->getDirectory($validation);
245-
$uploadFile = $this->storage->getUploadDirectory($validation).$validation->getDatasetName().'.zip';
245+
$uploadFile = $this->storage->getUploadDirectory($validation) . $validation->getDatasetName() . '.zip';
246246

247247
if (!is_dir($validationDirectory)) {
248248
mkdir($validationDirectory);
249249
}
250250

251-
$zipPath = $validationDirectory.'/'.$validation->getDatasetName().'.zip';
251+
$zipPath = $validationDirectory . '/' . $validation->getDatasetName() . '.zip';
252252

253253
file_put_contents(
254254
$zipPath,
@@ -272,7 +272,7 @@ private function validateZip($validation)
272272
'datasetName' => $validation->getDatasetName(),
273273
]);
274274
$validationDirectory = $this->storage->getDirectory($validation);
275-
$zipPath = $validationDirectory.'/'.$validation->getDatasetName().'.zip';
275+
$zipPath = $validationDirectory . '/' . $validation->getDatasetName() . '.zip';
276276
$errors = $this->zipArchiveValidator->validate($zipPath);
277277
if (count($errors) > 0) {
278278
throw new ZipArchiveValidationException($errors);
@@ -291,11 +291,11 @@ private function unzip(Validation $validation)
291291
'datasetName' => $validation->getDatasetName(),
292292
]);
293293
$validationDirectory = $this->storage->getDirectory($validation);
294-
$zipFilename = $validationDirectory.'/'.$validation->getDatasetName().'.zip';
294+
$zipFilename = $validationDirectory . '/' . $validation->getDatasetName() . '.zip';
295295
$zip = new \ZipArchive();
296296

297297
if (true === $zip->open($zipFilename)) {
298-
$zip->extractTo($validationDirectory.'/'.$validation->getDatasetName());
298+
$zip->extractTo($validationDirectory . '/' . $validation->getDatasetName());
299299
$zip->close();
300300
} else {
301301
throw new \Exception('Zip decompression failed');
@@ -316,11 +316,11 @@ private function zipNormData(Validation $validation)
316316
$fs = new Filesystem();
317317

318318
$validationDirectory = $this->storage->getDirectory($validation);
319-
$normDataParentDir = $validationDirectory.'/validation/';
319+
$normDataParentDir = $validationDirectory . '/validation/';
320320
$datasetName = $validation->getDatasetName();
321321

322322
// checking if normalized data is present
323-
if (!$fs->exists($normDataParentDir.$datasetName)) {
323+
if (!$fs->exists($normDataParentDir . $datasetName)) {
324324
return;
325325
}
326326

@@ -345,12 +345,12 @@ private function saveToStorage(Validation $validation)
345345
'datasetName' => $validation->getDatasetName(),
346346
]);
347347
$validationDirectory = $this->storage->getDirectory($validation);
348-
$normDataPath = $validationDirectory.'/validation/'.$validation->getDatasetName().'.zip';
348+
$normDataPath = $validationDirectory . '/validation/' . $validation->getDatasetName() . '.zip';
349349
$outputDirectory = $this->storage->getOutputDirectory($validation);
350350
if (!$this->storage->getStorage()->directoryExists($outputDirectory)) {
351351
$this->storage->getStorage()->createDirectory($outputDirectory);
352352
}
353-
$outputPath = $outputDirectory.$validation->getDatasetName().'.zip';
353+
$outputPath = $outputDirectory . $validation->getDatasetName() . '.zip';
354354
if ($this->storage->getStorage()->fileExists($outputPath)) {
355355
$this->storage->getStorage()->delete($outputPath);
356356
}
@@ -363,8 +363,8 @@ private function saveToStorage(Validation $validation)
363363
'uid' => $validation->getUid(),
364364
'datasetName' => $validation->getDatasetName(),
365365
]);
366-
$logPath = $validationDirectory.'/validator-debug.log';
367-
$outputPath = $outputDirectory.'/validator-debug.log';
366+
$logPath = $validationDirectory . '/validator-debug.log';
367+
$outputPath = $outputDirectory . '/validator-debug.log';
368368

369369
$stream = fopen($logPath, 'r+');
370370
$this->storage->getStorage()->writeStream($outputPath, $stream);
@@ -392,6 +392,10 @@ private function cleanUp(Validation $validation)
392392
]);
393393
$fs->remove($validationDirectory);
394394
}
395+
396+
if ($validation->getDeleteData()) {
397+
$this->archive($validation);
398+
}
395399
}
396400

397401
/**

0 commit comments

Comments
 (0)