diff --git a/server/src/repositories/event.repository.ts b/server/src/repositories/event.repository.ts index b4d968599b..09a89fd9bb 100644 --- a/server/src/repositories/event.repository.ts +++ b/server/src/repositories/event.repository.ts @@ -42,7 +42,7 @@ type EventMap = { AlbumInvite: [{ id: string; userId: string; senderName: string }]; // asset events - AssetCreate: [{ asset: Asset; file: UploadFile }]; + AssetCreate: [{ asset: Pick; file?: UploadFile }]; AssetTag: [{ assetId: string }]; AssetUntag: [{ assetId: string }]; AssetHide: [{ assetId: string; userId: string }]; diff --git a/server/src/services/library.service.spec.ts b/server/src/services/library.service.spec.ts index 5b43ed9f61..751806f266 100644 --- a/server/src/services/library.service.spec.ts +++ b/server/src/services/library.service.spec.ts @@ -576,6 +576,10 @@ describe(LibraryService.name, () => { }), ]); + expect(mocks.event.emit).toHaveBeenCalledWith('AssetCreate', { + asset: { id: asset.id, ownerId: library.ownerId }, + }); + expect(mocks.job.queueAll).toHaveBeenCalledWith([ { name: JobName.SidecarCheck, diff --git a/server/src/services/library.service.ts b/server/src/services/library.service.ts index 7e84a8ec52..3807d1424b 100644 --- a/server/src/services/library.service.ts +++ b/server/src/services/library.service.ts @@ -275,6 +275,12 @@ export class LibraryService extends BaseService { this.logger.log(`Imported ${assetIds.length} ${progressMessage} file(s) into library ${job.libraryId}`); + await Promise.all( + assetIds.map((assetId) => + this.eventRepository.emit('AssetCreate', { asset: { id: assetId, ownerId: library.ownerId } }), + ), + ); + await this.queuePostSyncJobs(assetIds); return JobStatus.Success; diff --git a/server/src/services/user.service.ts b/server/src/services/user.service.ts index 0ec4ab4a7b..c32c11879f 100644 --- a/server/src/services/user.service.ts +++ b/server/src/services/user.service.ts @@ -239,7 +239,9 @@ export class UserService extends BaseService { @OnEvent({ name: 'AssetCreate' }) async onAssetCreate({ asset, file }: ArgOf<'AssetCreate'>) { - await this.userRepository.updateUsage(asset.ownerId, file.size); + if (file) { + await this.userRepository.updateUsage(asset.ownerId, file.size); + } } @OnJob({ name: JobName.UserSyncUsage, queue: QueueName.BackgroundTask })