chore(server): introduce proper job status (#7932)

* introduce proper job status

* fix condition for onDone jobs

* fix tests
This commit is contained in:
Daniel Dietzler
2024-03-15 14:16:54 +01:00
committed by GitHub
parent 07e8f79563
commit a46366d336
19 changed files with 241 additions and 216 deletions
@@ -18,6 +18,7 @@ import {
IStorageRepository,
ISystemConfigRepository,
IUserRepository,
JobStatus,
} from '../repositories';
import { StorageCore, StorageFolder } from '../storage';
import {
@@ -85,16 +86,16 @@ export class StorageTemplateService {
);
}
async handleMigrationSingle({ id }: IEntityJob) {
async handleMigrationSingle({ id }: IEntityJob): Promise<JobStatus> {
const config = await this.configCore.getConfig();
const storageTemplateEnabled = config.storageTemplate.enabled;
if (!storageTemplateEnabled) {
return true;
return JobStatus.SKIPPED;
}
const [asset] = await this.assetRepository.getByIds([id], { exifInfo: true });
if (!asset) {
return false;
return JobStatus.FAILED;
}
const user = await this.userRepository.get(asset.ownerId, {});
@@ -106,21 +107,21 @@ export class StorageTemplateService {
if (asset.livePhotoVideoId) {
const [livePhotoVideo] = await this.assetRepository.getByIds([asset.livePhotoVideoId], { exifInfo: true });
if (!livePhotoVideo) {
return false;
return JobStatus.FAILED;
}
const motionFilename = getLivePhotoMotionFilename(filename, livePhotoVideo.originalPath);
await this.moveAsset(livePhotoVideo, { storageLabel, filename: motionFilename });
}
return true;
return JobStatus.SUCCESS;
}
async handleMigration() {
async handleMigration(): Promise<JobStatus> {
this.logger.log('Starting storage template migration');
const { storageTemplate } = await this.configCore.getConfig();
const { enabled } = storageTemplate;
if (!enabled) {
this.logger.log('Storage template migration disabled, skipping');
return true;
return JobStatus.SKIPPED;
}
const assetPagination = usePagination(JOBS_ASSET_PAGINATION_SIZE, (pagination) =>
this.assetRepository.getAll(pagination, { withExif: true }),
@@ -142,7 +143,7 @@ export class StorageTemplateService {
this.logger.log('Finished storage template migration');
return true;
return JobStatus.SUCCESS;
}
async moveAsset(asset: AssetEntity, metadata: MoveAssetMetadata) {