|
8 | 8 | */ |
9 | 9 | namespace OCA\Files_Versions\Versions; |
10 | 10 |
|
| 11 | +use OCA\Files_Versions\Db\VersionEntity; |
| 12 | +use OCA\Files_Versions\Events\VersionCreatedEvent; |
11 | 13 | use OCA\Files_Versions\Events\VersionRestoredEvent; |
12 | 14 | use OCP\EventDispatcher\IEventDispatcher; |
13 | 15 | use OCP\Files\File; |
14 | 16 | use OCP\Files\FileInfo; |
| 17 | +use OCP\Files\IMimeTypeLoader; |
15 | 18 | use OCP\Files\IRootFolder; |
16 | 19 | use OCP\Files\Lock\ILock; |
17 | 20 | use OCP\Files\Lock\ILockManager; |
@@ -129,7 +132,24 @@ public function deleteVersion(IVersion $version): void { |
129 | 132 | public function createVersionEntity(File $file): void { |
130 | 133 | $backend = $this->getBackendForStorage($file->getStorage()); |
131 | 134 | if ($backend instanceof INeedSyncVersionBackend) { |
132 | | - $backend->createVersionEntity($file); |
| 135 | + $versionEntity = $backend->createVersionEntity($file); |
| 136 | + |
| 137 | + if ($versionEntity instanceof VersionEntity) { |
| 138 | + $version = new Version( |
| 139 | + $versionEntity->getTimestamp(), |
| 140 | + $versionEntity->getTimestamp(), |
| 141 | + $file->getName(), |
| 142 | + $versionEntity->getSize(), |
| 143 | + Server::get(IMimeTypeLoader::class)->getMimetypeById($versionEntity->getMimetype()), |
| 144 | + Server::get(IRootFolder::class)->getUserFolder($file->getOwner()->getUID())->getRelativePath($file->getPath()), |
| 145 | + $file, |
| 146 | + $this, |
| 147 | + $file->getOwner(), |
| 148 | + $versionEntity->getMetadata() ?? [], |
| 149 | + ); |
| 150 | + |
| 151 | + $this->dispatcher->dispatchTyped(new VersionCreatedEvent($file, $version)); |
| 152 | + } |
133 | 153 | } |
134 | 154 | } |
135 | 155 |
|
|
0 commit comments