summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/notes/renotes.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-14 20:38:55 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-14 20:38:55 +0900
commitd66e4b7ff97d512e2a2523815e2eef170456b37f (patch)
tree59ae1a102d88b5c2c2236b734ea4a584b4f9ba46 /src/server/api/endpoints/notes/renotes.ts
parent10.100.0 (diff)
parent11.0.0 (diff)
downloadmisskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.tar.gz
misskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.tar.bz2
misskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.zip
Merge branch 'develop'
Diffstat (limited to 'src/server/api/endpoints/notes/renotes.ts')
-rw-r--r--src/server/api/endpoints/notes/renotes.ts39
1 files changed, 12 insertions, 27 deletions
diff --git a/src/server/api/endpoints/notes/renotes.ts b/src/server/api/endpoints/notes/renotes.ts
index 15dcf55dce..74a8ea918e 100644
--- a/src/server/api/endpoints/notes/renotes.ts
+++ b/src/server/api/endpoints/notes/renotes.ts
@@ -1,9 +1,12 @@
import $ from 'cafy';
-import ID, { transform } from '../../../../misc/cafy-id';
-import Note, { packMany } from '../../../../models/note';
+import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { getNote } from '../../common/getters';
import { ApiError } from '../../error';
+import { generateVisibilityQuery } from '../../common/generate-visibility-query';
+import { generateMuteQuery } from '../../common/generate-mute-query';
+import { makePaginationQuery } from '../../common/make-pagination-query';
+import { Notes } from '../../../../models';
export const meta = {
desc: {
@@ -18,7 +21,6 @@ export const meta = {
params: {
noteId: {
validator: $.type(ID),
- transform: transform,
desc: {
'ja-JP': '対象の投稿のID',
'en-US': 'Target note ID'
@@ -32,12 +34,10 @@ export const meta = {
sinceId: {
validator: $.optional.type(ID),
- transform: transform,
},
untilId: {
validator: $.optional.type(ID),
- transform: transform,
}
},
@@ -63,29 +63,14 @@ export default define(meta, async (ps, user) => {
throw e;
});
- const sort = {
- _id: -1
- };
+ const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
+ .andWhere(`note.renoteId = :renoteId`, { renoteId: note.id })
+ .leftJoinAndSelect('note.user', 'user');
- const query = {
- renoteId: note._id
- } as any;
+ if (user) generateVisibilityQuery(query, user);
+ if (user) generateMuteQuery(query, user);
- if (ps.sinceId) {
- sort._id = 1;
- query._id = {
- $gt: ps.sinceId
- };
- } else if (ps.untilId) {
- query._id = {
- $lt: ps.untilId
- };
- }
-
- const renotes = await Note.find(query, {
- limit: ps.limit,
- sort: sort
- });
+ const renotes = await query.take(ps.limit!).getMany();
- return await packMany(renotes, user);
+ return await Notes.packMany(renotes, user);
});