diff --git a/server/src/domain/job/job.interface.ts b/server/src/domain/job/job.interface.ts index 6a7eb2ef85..be76f6645e 100644 --- a/server/src/domain/job/job.interface.ts +++ b/server/src/domain/job/job.interface.ts @@ -9,7 +9,7 @@ export interface IAssetFaceJob extends IBaseJob { export interface IEntityJob extends IBaseJob { id: string; - source?: 'upload'; + source?: 'upload' | 'sidecar-write'; } export interface IAssetDeletionJob extends IEntityJob { diff --git a/server/src/domain/job/job.service.ts b/server/src/domain/job/job.service.ts index 10307918ec..4735eb6b59 100644 --- a/server/src/domain/job/job.service.ts +++ b/server/src/domain/job/job.service.ts @@ -165,13 +165,20 @@ export class JobService { await this.jobRepository.queue({ name: JobName.METADATA_EXTRACTION, data: item.data }); break; + case JobName.SIDECAR_WRITE: + await this.jobRepository.queue({ + name: JobName.METADATA_EXTRACTION, + data: { id: item.data.id, source: 'sidecar-write' }, + }); + case JobName.METADATA_EXTRACTION: - const [asset] = await this.assetRepository.getByIds([item.data.id]); - if (asset) { - this.communicationRepository.send(CommunicationEvent.ASSET_UPDATE, asset.ownerId, mapAsset(asset)); + if (item.data.source === 'sidecar-write') { + const [asset] = await this.assetRepository.getByIds([item.data.id]); + if (asset) { + this.communicationRepository.send(CommunicationEvent.ASSET_UPDATE, asset.ownerId, mapAsset(asset)); + } } await this.jobRepository.queue({ name: JobName.LINK_LIVE_PHOTOS, data: item.data }); - break; case JobName.LINK_LIVE_PHOTOS: diff --git a/server/src/domain/metadata/metadata.service.ts b/server/src/domain/metadata/metadata.service.ts index 9e41455a04..e9c7ff9318 100644 --- a/server/src/domain/metadata/metadata.service.ts +++ b/server/src/domain/metadata/metadata.service.ts @@ -80,7 +80,6 @@ export class MetadataService { private logger = new Logger(MetadataService.name); private storageCore: StorageCore; private configCore: SystemConfigCore; - private oldCities?: string; private subscription: Subscription | null = null; constructor( @@ -273,8 +272,6 @@ export class MetadataService { await this.assetRepository.save({ id, sidecarPath }); } - await this.jobRepository.queue({ name: JobName.METADATA_EXTRACTION, data: { id } }); - return true; } diff --git a/server/src/domain/repositories/job.repository.ts b/server/src/domain/repositories/job.repository.ts index 49edeccd4b..7b9deabbd5 100644 --- a/server/src/domain/repositories/job.repository.ts +++ b/server/src/domain/repositories/job.repository.ts @@ -55,11 +55,11 @@ export type JobItem = | { name: JobName.QUEUE_METADATA_EXTRACTION; data: IBaseJob } | { name: JobName.METADATA_EXTRACTION; data: IEntityJob } | { name: JobName.LINK_LIVE_PHOTOS; data: IEntityJob } - | { name: JobName.SIDECAR_WRITE; data: ISidecarWriteJob } // Sidecar Scanning | { name: JobName.QUEUE_SIDECAR; data: IBaseJob } | { name: JobName.SIDECAR_DISCOVERY; data: IEntityJob } | { name: JobName.SIDECAR_SYNC; data: IEntityJob } + | { name: JobName.SIDECAR_WRITE; data: ISidecarWriteJob } // Object Tagging | { name: JobName.QUEUE_OBJECT_TAGGING; data: IBaseJob }