fix: 🐛 prevent null date insertion

https://calckey.aokaga.work/notes/9f6ksv2oov
This commit is contained in:
ThatOneCalculator 2023-06-04 14:41:18 -07:00
parent 482c21d00e
commit 535fa9f506
No known key found for this signature in database
GPG Key ID: 8703CACD01000000

View File

@ -596,20 +596,20 @@ export default async (
lastNotedAt: new Date(), lastNotedAt: new Date(),
}); });
const count = await Notes.countBy({ await Notes.countBy({
userId: user.id, userId: user.id,
channelId: data.channel.id, channelId: data.channel.id,
}).then((count) => { }).then((count) => {
// この処理が行われるのはノート作成後なので、ノートが一つしかなかったら最初の投稿だと判断できる // この処理が行われるのはノート作成後なので、ノートが一つしかなかったら最初の投稿だと判断できる
// TODO: とはいえノートを削除して何回も投稿すればその分だけインクリメントされる雑さもあるのでどうにかしたい // TODO: とはいえノートを削除して何回も投稿すればその分だけインクリメントされる雑さもあるのでどうにかしたい
if (count === 1) { if (count === 1 && data.channel != null) {
Channels.increment({ id: data.channel!.id }, "usersCount", 1); Channels.increment({ id: data.channel.id }, "usersCount", 1);
} }
}); });
} }
// Register to search database // Register to search database
await index(note); await index(note, false);
}); });
async function renderNoteOrRenoteActivity(data: Option, note: Note) { async function renderNoteOrRenoteActivity(data: Option, note: Note) {
@ -649,9 +649,12 @@ async function insertNote(
emojis: string[], emojis: string[],
mentionedUsers: MinimumUser[], mentionedUsers: MinimumUser[],
) { ) {
if (data.createdAt === null || data.createdAt === undefined ) {
data.createdAt = new Date();
}
const insert = new Note({ const insert = new Note({
id: genId(data.createdAt!), id: genId(data.createdAt),
createdAt: data.createdAt!, createdAt: data.createdAt,
fileIds: data.files ? data.files.map((file) => file.id) : [], fileIds: data.files ? data.files.map((file) => file.id) : [],
replyId: data.reply ? data.reply.id : null, replyId: data.reply ? data.reply.id : null,
renoteId: data.renote ? data.renote.id : null, renoteId: data.renote ? data.renote.id : null,
@ -668,7 +671,7 @@ async function insertNote(
tags: tags.map((tag) => normalizeForSearch(tag)), tags: tags.map((tag) => normalizeForSearch(tag)),
emojis, emojis,
userId: user.id, userId: user.id,
localOnly: data.localOnly!, localOnly: data.localOnly || false,
visibility: data.visibility as any, visibility: data.visibility as any,
visibleUserIds: visibleUserIds:
data.visibility === "specified" data.visibility === "specified"