mirror of
https://github.com/yusufipk/OpenFrame.git
synced 2026-09-12 01:46:08 +00:00
feat: make media cleanup best-effort with warning summaries and enforce video/workspace management access
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
import type { BunnyCleanupResult } from '@/lib/bunny-stream-cleanup';
|
||||
import type { R2CleanupResult } from '@/lib/r2-cleanup';
|
||||
|
||||
interface CleanupWarningSummary {
|
||||
attempted: number;
|
||||
failed: number;
|
||||
}
|
||||
|
||||
export interface CleanupWarnings {
|
||||
bunny?: CleanupWarningSummary;
|
||||
r2?: CleanupWarningSummary;
|
||||
}
|
||||
|
||||
export function buildCleanupWarnings(input: {
|
||||
bunny?: BunnyCleanupResult;
|
||||
r2?: R2CleanupResult;
|
||||
}): CleanupWarnings | undefined {
|
||||
const warnings: CleanupWarnings = {};
|
||||
|
||||
if (input.bunny && input.bunny.failed > 0) {
|
||||
warnings.bunny = {
|
||||
attempted: input.bunny.attempted,
|
||||
failed: input.bunny.failed,
|
||||
};
|
||||
}
|
||||
|
||||
if (input.r2 && input.r2.failed > 0) {
|
||||
warnings.r2 = {
|
||||
attempted: input.r2.attempted,
|
||||
failed: input.r2.failed,
|
||||
};
|
||||
}
|
||||
|
||||
return Object.keys(warnings).length > 0 ? warnings : undefined;
|
||||
}
|
||||
|
||||
export function logCleanupWarnings(
|
||||
context: { entityType: string; entityId: string },
|
||||
input: { bunny?: BunnyCleanupResult; r2?: R2CleanupResult }
|
||||
): void {
|
||||
if (input.bunny && input.bunny.failed > 0) {
|
||||
console.error('External cleanup warning', {
|
||||
entityType: context.entityType,
|
||||
entityId: context.entityId,
|
||||
provider: 'bunny',
|
||||
operation: 'delete',
|
||||
attempted: input.bunny.attempted,
|
||||
failed: input.bunny.failed,
|
||||
failedIds: input.bunny.failedIds.slice(0, 10),
|
||||
});
|
||||
}
|
||||
|
||||
if (input.r2 && input.r2.failed > 0) {
|
||||
console.error('External cleanup warning', {
|
||||
entityType: context.entityType,
|
||||
entityId: context.entityId,
|
||||
provider: 'r2',
|
||||
operation: 'delete',
|
||||
attempted: input.r2.attempted,
|
||||
failed: input.r2.failed,
|
||||
failedKeys: input.r2.failedKeys.slice(0, 10),
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user