Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorblizzz <blizzz@arthur-schiwon.de>2018-08-14 00:16:00 +0300
committerGitHub <noreply@github.com>2018-08-14 00:16:00 +0300
commitc938ea656953cf5cd1107f134012c768c2b3ee9c (patch)
tree67b6e6018ded88983ce15e9c874a899f35a28e74 /lib
parent5327e3b4ce6b372c77f84d693c60ae560439652e (diff)
parent706813ab0805f1c40ad6f9f1d355f4b4d0412c68 (diff)
Merge pull request #10620 from nextcloud/mimetype-insert-if-not-exists-13
[13] use insertIfNotExists to store new mimetypes.
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Files/Type/Loader.php21
1 files changed, 7 insertions, 14 deletions
diff --git a/lib/private/Files/Type/Loader.php b/lib/private/Files/Type/Loader.php
index 2b15c9b6e13..41c561dcd22 100644
--- a/lib/private/Files/Type/Loader.php
+++ b/lib/private/Files/Type/Loader.php
@@ -114,20 +114,9 @@ class Loader implements IMimeTypeLoader {
* @param int inserted ID
*/
protected function store($mimetype) {
- try {
- $qb = $this->dbConnection->getQueryBuilder();
- $qb->insert('mimetypes')
- ->values([
- 'mimetype' => $qb->createNamedParameter($mimetype)
- ]);
- $qb->execute();
- } catch (UniqueConstraintViolationException $e) {
- if ($this->dbConnection->inTransaction()) {
- // if we're inside a transaction we can't recover safely
- throw $e;
- }
- // something inserted it before us
- }
+ $this->dbConnection->insertIfNotExist('*PREFIX*mimetypes', [
+ 'mimetype' => $mimetype
+ ]);
$fetch = $this->dbConnection->getQueryBuilder();
$fetch->select('id')
@@ -137,6 +126,10 @@ class Loader implements IMimeTypeLoader {
));
$row = $fetch->execute()->fetch();
+ if (!$row) {
+ throw new \Exception("Failed to get mimetype id for $mimetype after trying to store it");
+ }
+
$this->mimetypes[$row['id']] = $mimetype;
$this->mimetypeIds[$mimetype] = $row['id'];
return $row['id'];