mirror of
https://iceshrimp.dev/limepotato/jormungandr-bite.git
synced 2024-11-26 11:57:34 -07:00
DB上で壊れたドライブファイルを無視するように (#7345)
This commit is contained in:
parent
2c987d5c39
commit
43dd6b687d
1 changed files with 16 additions and 14 deletions
|
@ -12,6 +12,12 @@ import { fetchMeta } from '../../misc/fetch-meta';
|
|||
|
||||
export type PackedDriveFile = SchemaType<typeof packedDriveFileSchema>;
|
||||
|
||||
type PackOptions = {
|
||||
detail?: boolean,
|
||||
self?: boolean,
|
||||
withUser?: boolean,
|
||||
};
|
||||
|
||||
@EntityRepository(DriveFile)
|
||||
export class DriveFileRepository extends Repository<DriveFile> {
|
||||
public validateFileName(name: string): boolean {
|
||||
|
@ -89,20 +95,19 @@ export class DriveFileRepository extends Repository<DriveFile> {
|
|||
return parseInt(sum, 10) || 0;
|
||||
}
|
||||
|
||||
public async pack(src: DriveFile['id'], options?: PackOptions): Promise<PackedDriveFile | null>;
|
||||
public async pack(src: DriveFile, options?: PackOptions): Promise<PackedDriveFile>;
|
||||
public async pack(
|
||||
src: DriveFile['id'] | DriveFile,
|
||||
options?: {
|
||||
detail?: boolean,
|
||||
self?: boolean,
|
||||
withUser?: boolean,
|
||||
}
|
||||
): Promise<PackedDriveFile> {
|
||||
options?: PackOptions
|
||||
): Promise<PackedDriveFile | null> {
|
||||
const opts = Object.assign({
|
||||
detail: false,
|
||||
self: false
|
||||
}, options);
|
||||
|
||||
const file = typeof src === 'object' ? src : await this.findOneOrFail(src);
|
||||
const file = typeof src === 'object' ? src : await this.findOne(src);
|
||||
if (file == null) return null;
|
||||
|
||||
const meta = await fetchMeta();
|
||||
|
||||
|
@ -128,15 +133,12 @@ export class DriveFileRepository extends Repository<DriveFile> {
|
|||
});
|
||||
}
|
||||
|
||||
public packMany(
|
||||
public async packMany(
|
||||
files: any[],
|
||||
options?: {
|
||||
detail?: boolean
|
||||
self?: boolean,
|
||||
withUser?: boolean,
|
||||
}
|
||||
options?: PackOptions
|
||||
) {
|
||||
return Promise.all(files.map(f => this.pack(f, options)));
|
||||
const items = await Promise.all(files.map(f => this.pack(f, options)));
|
||||
return items.filter(x => x != null);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue