forked from FoundKeyGang/FoundKey
backend: fix packing pages
This commit is contained in:
parent
c781210ea1
commit
7ae5d6b1b8
1 changed files with 0 additions and 44 deletions
|
@ -2,7 +2,6 @@ import { db } from '@/db/postgre.js';
|
||||||
import { Page } from '@/models/entities/page.js';
|
import { Page } from '@/models/entities/page.js';
|
||||||
import { Packed } from '@/misc/schema.js';
|
import { Packed } from '@/misc/schema.js';
|
||||||
import { awaitAll } from '@/prelude/await-all.js';
|
import { awaitAll } from '@/prelude/await-all.js';
|
||||||
import { DriveFile } from '@/models/entities/drive-file.js';
|
|
||||||
import { User } from '@/models/entities/user.js';
|
import { User } from '@/models/entities/user.js';
|
||||||
import { Users, DriveFiles, PageLikes } from '../index.js';
|
import { Users, DriveFiles, PageLikes } from '../index.js';
|
||||||
|
|
||||||
|
@ -14,48 +13,6 @@ export const PageRepository = db.getRepository(Page).extend({
|
||||||
const meId = me ? me.id : null;
|
const meId = me ? me.id : null;
|
||||||
const page = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src });
|
const page = typeof src === 'object' ? src : await this.findOneByOrFail({ id: src });
|
||||||
|
|
||||||
const attachedFiles: Promise<DriveFile | null>[] = [];
|
|
||||||
const collectFile = (xs: any[]) => {
|
|
||||||
for (const x of xs) {
|
|
||||||
if (x.type === 'image') {
|
|
||||||
attachedFiles.push(DriveFiles.findOneBy({
|
|
||||||
id: x.fileId,
|
|
||||||
userId: page.userId,
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
if (x.children) {
|
|
||||||
collectFile(x.children);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
collectFile(page.content);
|
|
||||||
|
|
||||||
// 後方互換性のため
|
|
||||||
let migrated = false;
|
|
||||||
const migrate = (xs: any[]) => {
|
|
||||||
for (const x of xs) {
|
|
||||||
if (x.type === 'input') {
|
|
||||||
if (x.inputType === 'text') {
|
|
||||||
x.type = 'textInput';
|
|
||||||
}
|
|
||||||
if (x.inputType === 'number') {
|
|
||||||
x.type = 'numberInput';
|
|
||||||
if (x.default) x.default = parseInt(x.default, 10);
|
|
||||||
}
|
|
||||||
migrated = true;
|
|
||||||
}
|
|
||||||
if (x.children) {
|
|
||||||
migrate(x.children);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
migrate(page.content);
|
|
||||||
if (migrated) {
|
|
||||||
this.update(page.id, {
|
|
||||||
content: page.content,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return await awaitAll({
|
return await awaitAll({
|
||||||
id: page.id,
|
id: page.id,
|
||||||
createdAt: page.createdAt.toISOString(),
|
createdAt: page.createdAt.toISOString(),
|
||||||
|
@ -71,7 +28,6 @@ export const PageRepository = db.getRepository(Page).extend({
|
||||||
font: page.font,
|
font: page.font,
|
||||||
eyeCatchingImageId: page.eyeCatchingImageId,
|
eyeCatchingImageId: page.eyeCatchingImageId,
|
||||||
eyeCatchingImage: page.eyeCatchingImageId ? await DriveFiles.pack(page.eyeCatchingImageId) : null,
|
eyeCatchingImage: page.eyeCatchingImageId ? await DriveFiles.pack(page.eyeCatchingImageId) : null,
|
||||||
attachedFiles: DriveFiles.packMany((await Promise.all(attachedFiles)).filter((x): x is DriveFile => x != null)),
|
|
||||||
likedCount: page.likedCount,
|
likedCount: page.likedCount,
|
||||||
isLiked: meId ? await PageLikes.findOneBy({ pageId: page.id, userId: meId }).then(x => x != null) : undefined,
|
isLiked: meId ? await PageLikes.findOneBy({ pageId: page.id, userId: meId }).then(x => x != null) : undefined,
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue