Wrap mimetype insert and getLastInsertId in a transaction

Signed-off-by: Lucas Azevedo <lhs_azevedo@hotmail.com>
This commit is contained in:
Lucas Azevedo 2023-09-04 08:02:35 -03:00
parent 5de021cb9a
commit c587f684bd

View file

@ -117,13 +117,15 @@ class Loader implements IMimeTypeLoader {
*/
protected function store($mimetype) {
try {
$insert = $this->dbConnection->getQueryBuilder();
$insert->insert('mimetypes')
->values([
'mimetype' => $insert->createNamedParameter($mimetype)
])
->executeStatement();
$mimetypeId = $insert->getLastInsertId();
$mimetypeId = $this->atomic(function () use ($mimetype) {
$insert = $this->dbConnection->getQueryBuilder();
$insert->insert('mimetypes')
->values([
'mimetype' => $insert->createNamedParameter($mimetype)
])
->executeStatement();
return $insert->getLastInsertId();
}, $this->dbConnection);
} catch (DbalException $e) {
if ($e->getReason() !== DBException::REASON_UNIQUE_CONSTRAINT_VIOLATION) {
throw $e;