refactor: split refresh into private functions

Signed-off-by: izzy <me@insrt.uk>
This commit is contained in:
izzy
2026-02-12 12:00:01 +00:00
parent bf17d8cbd1
commit c5fb13e0d5
+22 -12
View File
@@ -193,8 +193,7 @@ export class IntegrityService extends BaseService {
} }
} }
@OnJob({ name: JobName.IntegrityUntrackedFilesQueueAll, queue: QueueName.IntegrityCheck }) private async queueRefreshAllUntrackedFiles() {
async handleUntrackedFilesQueueAll({ refreshOnly }: IIntegrityJob = {}): Promise<JobStatus> {
this.logger.log(`Checking for out of date untracked file reports...`); this.logger.log(`Checking for out of date untracked file reports...`);
const reports = this.integrityRepository.streamIntegrityReportsWithAssetChecksum(IntegrityReportType.UntrackedFile); const reports = this.integrityRepository.streamIntegrityReportsWithAssetChecksum(IntegrityReportType.UntrackedFile);
@@ -211,6 +210,11 @@ export class IntegrityService extends BaseService {
total += batchReports.length; total += batchReports.length;
this.logger.log(`Queued report check of ${batchReports.length} report(s) (${total} so far)`); this.logger.log(`Queued report check of ${batchReports.length} report(s) (${total} so far)`);
} }
}
@OnJob({ name: JobName.IntegrityUntrackedFilesQueueAll, queue: QueueName.IntegrityCheck })
async handleUntrackedFilesQueueAll({ refreshOnly }: IIntegrityJob = {}): Promise<JobStatus> {
await this.queueRefreshAllUntrackedFiles();
if (refreshOnly) { if (refreshOnly) {
this.logger.log('Refresh complete.'); this.logger.log('Refresh complete.');
@@ -243,7 +247,7 @@ export class IntegrityService extends BaseService {
} }
} }
total = 0; let total = 0;
for await (const [batchType, batchPaths] of paths()) { for await (const [batchType, batchPaths] of paths()) {
await this.jobRepository.queue({ await this.jobRepository.queue({
name: JobName.IntegrityUntrackedFiles, name: JobName.IntegrityUntrackedFiles,
@@ -319,9 +323,7 @@ export class IntegrityService extends BaseService {
return JobStatus.Success; return JobStatus.Success;
} }
@OnJob({ name: JobName.IntegrityMissingFilesQueueAll, queue: QueueName.IntegrityCheck }) private async queueRefreshAllMissingFiles() {
async handleMissingFilesQueueAll({ refreshOnly }: IIntegrityJob = {}): Promise<JobStatus> {
if (refreshOnly) {
this.logger.log(`Checking for out of date missing file reports...`); this.logger.log(`Checking for out of date missing file reports...`);
const reports = this.integrityRepository.streamIntegrityReportsWithAssetChecksum(IntegrityReportType.MissingFile); const reports = this.integrityRepository.streamIntegrityReportsWithAssetChecksum(IntegrityReportType.MissingFile);
@@ -340,6 +342,12 @@ export class IntegrityService extends BaseService {
} }
this.logger.log('Refresh complete.'); this.logger.log('Refresh complete.');
}
@OnJob({ name: JobName.IntegrityMissingFilesQueueAll, queue: QueueName.IntegrityCheck })
async handleMissingFilesQueueAll({ refreshOnly }: IIntegrityJob = {}): Promise<JobStatus> {
if (refreshOnly) {
await this.queueRefreshAllMissingFiles();
return JobStatus.Success; return JobStatus.Success;
} }
@@ -423,14 +431,10 @@ export class IntegrityService extends BaseService {
return JobStatus.Success; return JobStatus.Success;
} }
@OnJob({ name: JobName.IntegrityChecksumFiles, queue: QueueName.IntegrityCheck }) async queueRefreshAllChecksumFiles() {
async handleChecksumFiles({ refreshOnly }: IIntegrityJob = {}): Promise<JobStatus> {
if (refreshOnly) {
this.logger.log(`Checking for out of date checksum file reports...`); this.logger.log(`Checking for out of date checksum file reports...`);
const reports = this.integrityRepository.streamIntegrityReportsWithAssetChecksum( const reports = this.integrityRepository.streamIntegrityReportsWithAssetChecksum(IntegrityReportType.ChecksumFail);
IntegrityReportType.ChecksumFail,
);
let total = 0; let total = 0;
for await (const batchReports of chunk(reports, JOBS_LIBRARY_PAGINATION_SIZE)) { for await (const batchReports of chunk(reports, JOBS_LIBRARY_PAGINATION_SIZE)) {
@@ -450,6 +454,12 @@ export class IntegrityService extends BaseService {
} }
this.logger.log('Refresh complete.'); this.logger.log('Refresh complete.');
}
@OnJob({ name: JobName.IntegrityChecksumFiles, queue: QueueName.IntegrityCheck })
async handleChecksumFiles({ refreshOnly }: IIntegrityJob = {}): Promise<JobStatus> {
if (refreshOnly) {
await this.queueRefreshAllChecksumFiles();
return JobStatus.Success; return JobStatus.Success;
} }