summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/notes
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-04-13 01:43:22 +0900
committerGitHub <noreply@github.com>2019-04-13 01:43:22 +0900
commit987168b863c52d0548050ffbac569782bb9a8cef (patch)
treec9aa2243dcdcbd044688d201a51c601574bff259 /src/server/api/endpoints/notes
parentFix bug (diff)
downloadsharkey-987168b863c52d0548050ffbac569782bb9a8cef.tar.gz
sharkey-987168b863c52d0548050ffbac569782bb9a8cef.tar.bz2
sharkey-987168b863c52d0548050ffbac569782bb9a8cef.zip
strictNullChecks (#4666)
* wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip
Diffstat (limited to 'src/server/api/endpoints/notes')
-rw-r--r--src/server/api/endpoints/notes/children.ts2
-rw-r--r--src/server/api/endpoints/notes/conversation.ts5
-rw-r--r--src/server/api/endpoints/notes/create.ts27
-rw-r--r--src/server/api/endpoints/notes/delete.ts3
-rw-r--r--src/server/api/endpoints/notes/featured.ts2
-rw-r--r--src/server/api/endpoints/notes/global-timeline.ts2
-rw-r--r--src/server/api/endpoints/notes/hybrid-timeline.ts2
-rw-r--r--src/server/api/endpoints/notes/local-timeline.ts8
-rw-r--r--src/server/api/endpoints/notes/mentions.ts2
-rw-r--r--src/server/api/endpoints/notes/polls/recommendation.ts2
-rw-r--r--src/server/api/endpoints/notes/polls/vote.ts7
-rw-r--r--src/server/api/endpoints/notes/reactions.ts2
-rw-r--r--src/server/api/endpoints/notes/renotes.ts2
-rw-r--r--src/server/api/endpoints/notes/replies.ts2
-rw-r--r--src/server/api/endpoints/notes/search-by-tag.ts4
-rw-r--r--src/server/api/endpoints/notes/search.ts2
-rw-r--r--src/server/api/endpoints/notes/timeline.ts2
-rw-r--r--src/server/api/endpoints/notes/user-list-timeline.ts2
18 files changed, 41 insertions, 37 deletions
diff --git a/src/server/api/endpoints/notes/children.ts b/src/server/api/endpoints/notes/children.ts
index 72f2c39d6a..2b4ae2a312 100644
--- a/src/server/api/endpoints/notes/children.ts
+++ b/src/server/api/endpoints/notes/children.ts
@@ -66,7 +66,7 @@ export default define(meta, async (ps, user) => {
if (user) generateVisibilityQuery(query, user);
if (user) generateMuteQuery(query, user);
- const notes = await query.take(ps.limit).getMany();
+ const notes = await query.take(ps.limit!).getMany();
return await Notes.packMany(notes, user);
});
diff --git a/src/server/api/endpoints/notes/conversation.ts b/src/server/api/endpoints/notes/conversation.ts
index 6defd79042..6b26e31c07 100644
--- a/src/server/api/endpoints/notes/conversation.ts
+++ b/src/server/api/endpoints/notes/conversation.ts
@@ -64,12 +64,13 @@ export default define(meta, async (ps, user) => {
async function get(id: any) {
i++;
const p = await Notes.findOne(id);
+ if (p == null) return;
- if (i > ps.offset) {
+ if (i > ps.offset!) {
conversation.push(p);
}
- if (conversation.length == ps.limit) {
+ if (conversation.length == ps.limit!) {
return;
}
diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts
index 138f05fb3b..83649015d8 100644
--- a/src/server/api/endpoints/notes/create.ts
+++ b/src/server/api/endpoints/notes/create.ts
@@ -225,23 +225,24 @@ export const meta = {
export default define(meta, async (ps, user, app) => {
let visibleUsers: User[] = [];
if (ps.visibleUserIds) {
- visibleUsers = await Promise.all(ps.visibleUserIds.map(id => Users.findOne(id)));
+ visibleUsers = (await Promise.all(ps.visibleUserIds.map(id => Users.findOne(id))))
+ .filter(x => x != null) as User[];
}
let files: DriveFile[] = [];
const fileIds = ps.fileIds != null ? ps.fileIds : ps.mediaIds != null ? ps.mediaIds : null;
if (fileIds != null) {
- files = await Promise.all(fileIds.map(fileId => {
- return DriveFiles.findOne({
+ files = (await Promise.all(fileIds.map(fileId =>
+ DriveFiles.findOne({
id: fileId,
userId: user.id
- });
- }));
+ })
+ ))).filter(file => file != null) as DriveFile[];
- files = files.filter(file => file != null);
+ files = files;
}
- let renote: Note = null;
+ let renote: Note | undefined;
if (ps.renoteId != null) {
// Fetch renote to note
renote = await Notes.findOne(ps.renoteId);
@@ -253,7 +254,7 @@ export default define(meta, async (ps, user, app) => {
}
}
- let reply: Note = null;
+ let reply: Note | undefined;
if (ps.replyId != null) {
// Fetch reply
reply = await Notes.findOne(ps.replyId);
@@ -290,8 +291,8 @@ export default define(meta, async (ps, user, app) => {
choices: ps.poll.choices,
multiple: ps.poll.multiple || false,
expiresAt: ps.poll.expiresAt ? new Date(ps.poll.expiresAt) : null
- } : null,
- text: ps.text,
+ } : undefined,
+ text: ps.text || undefined,
reply,
renote,
cw: ps.cw,
@@ -300,9 +301,9 @@ export default define(meta, async (ps, user, app) => {
localOnly: ps.localOnly,
visibility: ps.visibility,
visibleUsers,
- apMentions: ps.noExtractMentions ? [] : null,
- apHashtags: ps.noExtractHashtags ? [] : null,
- apEmojis: ps.noExtractEmojis ? [] : null,
+ apMentions: ps.noExtractMentions ? [] : undefined,
+ apHashtags: ps.noExtractHashtags ? [] : undefined,
+ apEmojis: ps.noExtractEmojis ? [] : undefined,
geo: ps.geo
});
diff --git a/src/server/api/endpoints/notes/delete.ts b/src/server/api/endpoints/notes/delete.ts
index dbaf91bca3..17d44c424d 100644
--- a/src/server/api/endpoints/notes/delete.ts
+++ b/src/server/api/endpoints/notes/delete.ts
@@ -6,6 +6,7 @@ import * as ms from 'ms';
import { getNote } from '../../common/getters';
import { ApiError } from '../../error';
import { Users } from '../../../../models';
+import { ensure } from '../../../../prelude/ensure';
export const meta = {
stability: 'stable',
@@ -63,5 +64,5 @@ export default define(meta, async (ps, user) => {
}
// この操作を行うのが投稿者とは限らない(例えばモデレーター)ため
- await deleteNote(await Users.findOne(note.userId), note);
+ await deleteNote(await Users.findOne(note.userId).then(ensure), note);
});
diff --git a/src/server/api/endpoints/notes/featured.ts b/src/server/api/endpoints/notes/featured.ts
index c44a5275bb..5d2e5b7d44 100644
--- a/src/server/api/endpoints/notes/featured.ts
+++ b/src/server/api/endpoints/notes/featured.ts
@@ -41,7 +41,7 @@ export default define(meta, async (ps, user) => {
if (user) generateMuteQuery(query, user);
- const notes = await query.orderBy('note.score', 'DESC').take(ps.limit).getMany();
+ const notes = await query.orderBy('note.score', 'DESC').take(ps.limit!).getMany();
return await Notes.packMany(notes, user);
});
diff --git a/src/server/api/endpoints/notes/global-timeline.ts b/src/server/api/endpoints/notes/global-timeline.ts
index 7bf62f366b..ceffb1cf4a 100644
--- a/src/server/api/endpoints/notes/global-timeline.ts
+++ b/src/server/api/endpoints/notes/global-timeline.ts
@@ -84,7 +84,7 @@ export default define(meta, async (ps, user) => {
}
//#endregion
- const timeline = await query.take(ps.limit).getMany();
+ const timeline = await query.take(ps.limit!).getMany();
if (user) {
activeUsersChart.update(user);
diff --git a/src/server/api/endpoints/notes/hybrid-timeline.ts b/src/server/api/endpoints/notes/hybrid-timeline.ts
index 76f1682a95..6dfb143003 100644
--- a/src/server/api/endpoints/notes/hybrid-timeline.ts
+++ b/src/server/api/endpoints/notes/hybrid-timeline.ts
@@ -185,7 +185,7 @@ export default define(meta, async (ps, user) => {
}
//#endregion
- const timeline = await query.take(ps.limit).getMany();
+ const timeline = await query.take(ps.limit!).getMany();
if (user) {
activeUsersChart.update(user);
diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts
index cd07341342..c10c0d7482 100644
--- a/src/server/api/endpoints/notes/local-timeline.ts
+++ b/src/server/api/endpoints/notes/local-timeline.ts
@@ -100,11 +100,11 @@ export default define(meta, async (ps, user) => {
query.andWhere('note.fileIds != \'{}\'');
}
- if (ps.fileType) {
+ if (ps.fileType != null) {
query.andWhere('note.fileIds != \'{}\'');
query.andWhere(new Brackets(qb => {
- for (const type of ps.fileType) {
- const i = ps.fileType.indexOf(type);
+ for (const type of ps.fileType!) {
+ const i = ps.fileType!.indexOf(type);
qb.orWhere(`:type${i} = ANY(note.attachedFileTypes)`, { [`type${i}`]: type });
}
}));
@@ -120,7 +120,7 @@ export default define(meta, async (ps, user) => {
}
//#endregion
- const timeline = await query.take(ps.limit).getMany();
+ const timeline = await query.take(ps.limit!).getMany();
if (user) {
activeUsersChart.update(user);
diff --git a/src/server/api/endpoints/notes/mentions.ts b/src/server/api/endpoints/notes/mentions.ts
index 0bbe7d3327..b7f614915b 100644
--- a/src/server/api/endpoints/notes/mentions.ts
+++ b/src/server/api/endpoints/notes/mentions.ts
@@ -74,7 +74,7 @@ export default define(meta, async (ps, user) => {
query.setParameters(followingQuery.getParameters());
}
- const mentions = await query.take(ps.limit).getMany();
+ const mentions = await query.take(ps.limit!).getMany();
for (const note of mentions) {
read(user.id, note.id);
diff --git a/src/server/api/endpoints/notes/polls/recommendation.ts b/src/server/api/endpoints/notes/polls/recommendation.ts
index ff838d4f4f..cbd4d35cd4 100644
--- a/src/server/api/endpoints/notes/polls/recommendation.ts
+++ b/src/server/api/endpoints/notes/polls/recommendation.ts
@@ -58,7 +58,7 @@ export default define(meta, async (ps, user) => {
query.setParameters(mutingQuery.getParameters());
//#endregion
- const polls = await query.take(ps.limit).skip(ps.offset).getMany();
+ const polls = await query.take(ps.limit!).skip(ps.offset).getMany();
if (polls.length === 0) return [];
diff --git a/src/server/api/endpoints/notes/polls/vote.ts b/src/server/api/endpoints/notes/polls/vote.ts
index dd4d93c7ac..68dee66828 100644
--- a/src/server/api/endpoints/notes/polls/vote.ts
+++ b/src/server/api/endpoints/notes/polls/vote.ts
@@ -14,6 +14,7 @@ import { PollVotes, NoteWatchings, Users, Polls, UserProfiles } from '../../../.
import { Not } from 'typeorm';
import { IRemoteUser } from '../../../../../models/entities/user';
import { genId } from '../../../../../misc/gen-id';
+import { ensure } from '../../../../../prelude/ensure';
export const meta = {
desc: {
@@ -87,7 +88,7 @@ export default define(meta, async (ps, user) => {
throw new ApiError(meta.errors.noPoll);
}
- const poll = await Polls.findOne({ noteId: note.id });
+ const poll = await Polls.findOne({ noteId: note.id }).then(ensure);
if (poll.expiresAt && poll.expiresAt < createdAt) {
throw new ApiError(meta.errors.alreadyExpired);
@@ -149,7 +150,7 @@ export default define(meta, async (ps, user) => {
}
});
- const profile = await UserProfiles.findOne({ userId: user.id });
+ const profile = await UserProfiles.findOne({ userId: user.id }).then(ensure);
// この投稿をWatchする
if (profile.autoWatch !== false) {
@@ -158,7 +159,7 @@ export default define(meta, async (ps, user) => {
// リモート投票の場合リプライ送信
if (note.userHost != null) {
- const pollOwner: IRemoteUser = await Users.findOne(note.userId);
+ const pollOwner = await Users.findOne(note.userId).then(ensure) as IRemoteUser;
deliver(user, renderActivity(await renderVote(user, vote, note, poll, pollOwner)), pollOwner.inbox);
}
diff --git a/src/server/api/endpoints/notes/reactions.ts b/src/server/api/endpoints/notes/reactions.ts
index b1b5ca9d33..bcb0b6d1ec 100644
--- a/src/server/api/endpoints/notes/reactions.ts
+++ b/src/server/api/endpoints/notes/reactions.ts
@@ -71,7 +71,7 @@ export default define(meta, async (ps, user) => {
const reactions = await NoteReactions.find({
where: query,
- take: ps.limit,
+ take: ps.limit!,
skip: ps.offset,
order: {
id: -1
diff --git a/src/server/api/endpoints/notes/renotes.ts b/src/server/api/endpoints/notes/renotes.ts
index 81b899836d..74a8ea918e 100644
--- a/src/server/api/endpoints/notes/renotes.ts
+++ b/src/server/api/endpoints/notes/renotes.ts
@@ -70,7 +70,7 @@ export default define(meta, async (ps, user) => {
if (user) generateVisibilityQuery(query, user);
if (user) generateMuteQuery(query, user);
- const renotes = await query.take(ps.limit).getMany();
+ const renotes = await query.take(ps.limit!).getMany();
return await Notes.packMany(renotes, user);
});
diff --git a/src/server/api/endpoints/notes/replies.ts b/src/server/api/endpoints/notes/replies.ts
index 09b0f17164..980ff2446e 100644
--- a/src/server/api/endpoints/notes/replies.ts
+++ b/src/server/api/endpoints/notes/replies.ts
@@ -61,7 +61,7 @@ export default define(meta, async (ps, user) => {
if (user) generateVisibilityQuery(query, user);
if (user) generateMuteQuery(query, user);
- const timeline = await query.take(ps.limit).getMany();
+ const timeline = await query.take(ps.limit!).getMany();
return await Notes.packMany(timeline, user);
});
diff --git a/src/server/api/endpoints/notes/search-by-tag.ts b/src/server/api/endpoints/notes/search-by-tag.ts
index 48de88d36e..cba3724b6f 100644
--- a/src/server/api/endpoints/notes/search-by-tag.ts
+++ b/src/server/api/endpoints/notes/search-by-tag.ts
@@ -100,7 +100,7 @@ export default define(meta, async (ps, me) => {
} else {
let i = 0;
query.andWhere(new Brackets(qb => {
- for (const tags of ps.query) {
+ for (const tags of ps.query!) {
qb.orWhere(new Brackets(qb => {
for (const tag of tags) {
qb.andWhere(`:tag${i} = ANY(note.tags)`, { [`tag${i}`]: tag });
@@ -140,7 +140,7 @@ export default define(meta, async (ps, me) => {
}
// Search notes
- const notes = await query.take(ps.limit).getMany();
+ const notes = await query.take(ps.limit!).getMany();
return await Notes.packMany(notes, me);
});
diff --git a/src/server/api/endpoints/notes/search.ts b/src/server/api/endpoints/notes/search.ts
index cc88fb9380..4d5ac6fbe0 100644
--- a/src/server/api/endpoints/notes/search.ts
+++ b/src/server/api/endpoints/notes/search.ts
@@ -54,7 +54,7 @@ export default define(meta, async (ps, me) => {
index: 'misskey',
type: 'note',
body: {
- size: ps.limit,
+ size: ps.limit!,
from: ps.offset,
query: {
simple_query_string: {
diff --git a/src/server/api/endpoints/notes/timeline.ts b/src/server/api/endpoints/notes/timeline.ts
index e22db4d1b0..c27f3df1b7 100644
--- a/src/server/api/endpoints/notes/timeline.ts
+++ b/src/server/api/endpoints/notes/timeline.ts
@@ -171,7 +171,7 @@ export default define(meta, async (ps, user) => {
}
//#endregion
- const timeline = await query.take(ps.limit).getMany();
+ const timeline = await query.take(ps.limit!).getMany();
activeUsersChart.update(user);
diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/src/server/api/endpoints/notes/user-list-timeline.ts
index deda04acb4..05f171af8b 100644
--- a/src/server/api/endpoints/notes/user-list-timeline.ts
+++ b/src/server/api/endpoints/notes/user-list-timeline.ts
@@ -189,7 +189,7 @@ export default define(meta, async (ps, user) => {
}
//#endregion
- const timeline = await query.take(ps.limit).getMany();
+ const timeline = await query.take(ps.limit!).getMany();
activeUsersChart.update(user);