Skip to content

Commit 55958ed

Browse files
committed
Allow reimporting existing contests
This assume a default behaviour to always overwrite existing resources. It would be better if we have an option argument which states if we only want to create new, create new/update, append or recreate (so what to do with unset keys). Properly implementing that requires some discussion though.
1 parent 0121a2f commit 55958ed

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

webapp/src/Service/ImportExportService.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -200,14 +200,15 @@ public function importContestData(mixed $data, ?string &$errorMessage = null, st
200200
return false;
201201
}
202202

203-
$contest = new Contest();
203+
$newShortNameAndExternalId = preg_replace(
204+
$invalid_regex,
205+
'_',
206+
$data['short_name'] ?? $data['shortname'] ?? $data['short-name'] ?? $data['id']
207+
);
208+
$contest = $this->em->getRepository(Contest::class)->findOneBy(['externalid' => $newShortNameAndExternalId]) ?: new Contest();
204209
$contest
205210
->setName($data['name'] ?? $data['formal_name'] )
206-
->setShortname(preg_replace(
207-
$invalid_regex,
208-
'_',
209-
$data['short_name'] ?? $data['shortname'] ?? $data['short-name'] ?? $data['id']
210-
))
211+
->setShortname($newShortNameAndExternalId)
211212
->setExternalid($contest->getShortname())
212213
->setWarningMessage($data['warning_message'] ?? $data['warning-message'] ?? null)
213214
->setStarttimeString(date_format($startTime, 'Y-m-d H:i:s e'))

0 commit comments

Comments
 (0)