Merge pull request #2489 from aynsix/PHRAS-569-ajout-info-/api/v1/quarantine

PHRAS-569 Add "reasons" in api/v1/quarantine
This commit is contained in:
Nicolas Maillat
2018-03-06 15:11:47 +01:00
committed by GitHub
2 changed files with 38 additions and 2 deletions

View File

@@ -688,8 +688,18 @@ class V1Controller extends Controller
$checks = array_map(function (LazaretCheck $checker) use ($manager, $translator) { $checks = array_map(function (LazaretCheck $checker) use ($manager, $translator) {
$checkerFQCN = $checker->getCheckClassname(); $checkerFQCN = $checker->getCheckClassname();
return $manager->getCheckerFromFQCN($checkerFQCN)->getMessage($translator); return $manager->getCheckerFromFQCN($checkerFQCN)->getMessage($translator);
}, iterator_to_array($file->getChecks())); }, $file->getChecksWhithNameKey());
$recordsMatch = array_map(function ($recordsTab){
$record = $recordsTab['record'];
$matched['record_id'] = $record->getRecordId();
$matched['collection'] = $record->getCollectionName();
$matched['checks'] = $recordsTab['reasons'];
return $matched;
}, array_values($file->getRecordsToSubstitute($this->app, true)));
$usr_id = $user = null; $usr_id = $user = null;
if ($file->getSession()->getUser()) { if ($file->getSession()->getUser()) {
@@ -708,10 +718,12 @@ class V1Controller extends Controller
'quarantine_session' => $session, 'quarantine_session' => $session,
'base_id' => $file->getBaseId(), 'base_id' => $file->getBaseId(),
'original_name' => $file->getOriginalName(), 'original_name' => $file->getOriginalName(),
'collection' => $file->getCollection($this->app)->get_label($this->app['locale']),
'sha256' => $file->getSha256(), 'sha256' => $file->getSha256(),
'uuid' => $file->getUuid(), 'uuid' => $file->getUuid(),
'forced' => $file->getForced(), 'forced' => $file->getForced(),
'checks' => $file->getForced() ? [] : $checks, 'checks' => $file->getForced() ? [] : $checks,
'records_match' => $recordsMatch?:[],
'created_on' => $file->getCreated()->format(DATE_ATOM), 'created_on' => $file->getCreated()->format(DATE_ATOM),
'updated_on' => $file->getUpdated()->format(DATE_ATOM), 'updated_on' => $file->getUpdated()->format(DATE_ATOM),
]; ];

View File

@@ -386,6 +386,17 @@ class LazaretFile
$this->checks->removeElement($checks); $this->checks->removeElement($checks);
} }
/**
* @param LazaretCheck $checks
* @return string
*/
public function getCheckerName(LazaretCheck $checks)
{
$checkNameTab = explode('\\', $checks->getCheckClassname());
return $checkNameTab[4];
}
/** /**
* Get checks * Get checks
* *
@@ -396,6 +407,19 @@ class LazaretFile
return $this->checks; return $this->checks;
} }
/**
* @return array $checkers
*/
public function getChecksWhithNameKey()
{
$checkers = [];
foreach($this->checks as $check){
$checkers[$this->getCheckerName($check)] = $check;
}
return $checkers;
}
/** /**
* Set session * Set session
* *
@@ -439,7 +463,7 @@ class LazaretFile
'reasons' => [] 'reasons' => []
]; ];
} }
$merged[$record->getRecordId()]['reasons'][] = $check->getReason($app['translator']); $merged[$record->getRecordId()]['reasons'][$this->getCheckerName($check)] = $check->getReason($app['translator']);
} }
else { else {
$merged[$record->getRecordId()] = $record; $merged[$record->getRecordId()] = $record;