mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
fix(api): report final system DM progress (#3074)
This commit is contained in:
@@ -6,7 +6,7 @@ import type {User} from '@app/api/models/User';
|
|||||||
import {UserChannelService} from '@app/api/user/services/UserChannelService';
|
import {UserChannelService} from '@app/api/user/services/UserChannelService';
|
||||||
import {getWorkerDependencies} from '@app/api/worker/WorkerContext';
|
import {getWorkerDependencies} from '@app/api/worker/WorkerContext';
|
||||||
import {UserFlags} from '@fluxer/constants/src/UserConstants';
|
import {UserFlags} from '@fluxer/constants/src/UserConstants';
|
||||||
import {JobCancelledError, type WorkerTaskHelpers} from '@pkgs/worker/src/contracts/WorkerTask';
|
import {JobCancelledError, type WorkerTaskHelpers, type WorkerTaskResult} from '@pkgs/worker/src/contracts/WorkerTask';
|
||||||
import {z} from 'zod';
|
import {z} from 'zod';
|
||||||
|
|
||||||
const SYSTEM_USER_ID: UserID = createUserID(0n);
|
const SYSTEM_USER_ID: UserID = createUserID(0n);
|
||||||
@@ -56,7 +56,7 @@ async function* listedRecipients(userIds: Array<string>): AsyncGenerator<UserID>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function sendSystemDm(payload: unknown, helpers: WorkerTaskHelpers): Promise<void> {
|
export async function sendSystemDm(payload: unknown, helpers: WorkerTaskHelpers): Promise<WorkerTaskResult> {
|
||||||
const parsed = PayloadSchema.parse(payload);
|
const parsed = PayloadSchema.parse(payload);
|
||||||
const {content} = parsed;
|
const {content} = parsed;
|
||||||
const total = 'user_ids' in parsed ? parsed.user_ids.length : null;
|
const total = 'user_ids' in parsed ? parsed.user_ids.length : null;
|
||||||
@@ -105,5 +105,7 @@ export async function sendSystemDm(payload: unknown, helpers: WorkerTaskHelpers)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
requestCache.clear();
|
requestCache.clear();
|
||||||
|
await helpers.reportProgress(sent + failed, sent + failed, `${sent} sent, ${failed} failed`);
|
||||||
helpers.logger.info({sent, failed, total: sent + failed}, 'System DM job complete');
|
helpers.logger.info({sent, failed, total: sent + failed}, 'System DM job complete');
|
||||||
|
return {sent_count: sent, failed_count: failed};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,7 +219,7 @@ describe('System DM cancellation', () => {
|
|||||||
await expect(runner.runJob(TASK_TYPE, createJobMessage({all_users: true}) as unknown as JsMsg)).resolves.toBe(true);
|
await expect(runner.runJob(TASK_TYPE, createJobMessage({all_users: true}) as unknown as JsMsg)).resolves.toBe(true);
|
||||||
|
|
||||||
expect(recipientIds).toEqual([21n, 24n]);
|
expect(recipientIds).toEqual([21n, 24n]);
|
||||||
expect(markSucceeded).toHaveBeenCalledTimes(1);
|
expect(markSucceeded).toHaveBeenCalledWith(LEDGER_JOB_ID, {sent_count: 2, failed_count: 0});
|
||||||
expect(kv.size).toBe(0);
|
expect(kv.size).toBe(0);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user