diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-04-14 20:38:55 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-04-14 20:38:55 +0900 |
| commit | d66e4b7ff97d512e2a2523815e2eef170456b37f (patch) | |
| tree | 59ae1a102d88b5c2c2236b734ea4a584b4f9ba46 /src/server/api/endpoints/mute | |
| parent | 10.100.0 (diff) | |
| parent | 11.0.0 (diff) | |
| download | misskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.tar.gz misskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.tar.bz2 misskey-d66e4b7ff97d512e2a2523815e2eef170456b37f.zip | |
Merge branch 'develop'
Diffstat (limited to 'src/server/api/endpoints/mute')
| -rw-r--r-- | src/server/api/endpoints/mute/create.ts | 33 | ||||
| -rw-r--r-- | src/server/api/endpoints/mute/delete.ts | 23 | ||||
| -rw-r--r-- | src/server/api/endpoints/mute/list.ts | 39 |
3 files changed, 39 insertions, 56 deletions
diff --git a/src/server/api/endpoints/mute/create.ts b/src/server/api/endpoints/mute/create.ts index 7eaee90a05..d13c546fdc 100644 --- a/src/server/api/endpoints/mute/create.ts +++ b/src/server/api/endpoints/mute/create.ts @@ -1,9 +1,11 @@ import $ from 'cafy'; -import ID, { transform } from '../../../../misc/cafy-id'; -import Mute from '../../../../models/mute'; +import { ID } from '../../../../misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; +import { genId } from '../../../../misc/gen-id'; +import { Mutings, NoteWatchings } from '../../../../models'; +import { Muting } from '../../../../models/entities/muting'; export const meta = { desc: { @@ -15,12 +17,11 @@ export const meta = { requireCredential: true, - kind: 'account/write', + kind: 'write:mutes', params: { userId: { validator: $.type(ID), - transform: transform, desc: { 'ja-JP': '対象のユーザーのID', 'en-US': 'Target user ID' @@ -53,7 +54,7 @@ export default define(meta, async (ps, user) => { const muter = user; // 自分自身 - if (user._id.equals(ps.userId)) { + if (user.id === ps.userId) { throw new ApiError(meta.errors.muteeIsYourself); } @@ -64,21 +65,25 @@ export default define(meta, async (ps, user) => { }); // Check if already muting - const exist = await Mute.findOne({ - muterId: muter._id, - muteeId: mutee._id + const exist = await Mutings.findOne({ + muterId: muter.id, + muteeId: mutee.id }); - if (exist !== null) { + if (exist != null) { throw new ApiError(meta.errors.alreadyMuting); } // Create mute - await Mute.insert({ + await Mutings.save({ + id: genId(), createdAt: new Date(), - muterId: muter._id, - muteeId: mutee._id, - }); + muterId: muter.id, + muteeId: mutee.id, + } as Muting); - return; + NoteWatchings.delete({ + userId: muter.id, + noteUserId: mutee.id + }); }); diff --git a/src/server/api/endpoints/mute/delete.ts b/src/server/api/endpoints/mute/delete.ts index 1a03f6371b..1aae15af91 100644 --- a/src/server/api/endpoints/mute/delete.ts +++ b/src/server/api/endpoints/mute/delete.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import ID, { transform } from '../../../../misc/cafy-id'; -import Mute from '../../../../models/mute'; +import { ID } from '../../../../misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; +import { Mutings } from '../../../../models'; export const meta = { desc: { @@ -15,12 +15,11 @@ export const meta = { requireCredential: true, - kind: 'account/write', + kind: 'write:mutes', params: { userId: { validator: $.type(ID), - transform: transform, desc: { 'ja-JP': '対象のユーザーのID', 'en-US': 'Target user ID' @@ -53,7 +52,7 @@ export default define(meta, async (ps, user) => { const muter = user; // Check if the mutee is yourself - if (user._id.equals(ps.userId)) { + if (user.id === ps.userId) { throw new ApiError(meta.errors.muteeIsYourself); } @@ -64,19 +63,17 @@ export default define(meta, async (ps, user) => { }); // Check not muting - const exist = await Mute.findOne({ - muterId: muter._id, - muteeId: mutee._id + const exist = await Mutings.findOne({ + muterId: muter.id, + muteeId: mutee.id }); - if (exist === null) { + if (exist == null) { throw new ApiError(meta.errors.notMuting); } // Delete mute - await Mute.remove({ - _id: exist._id + await Mutings.delete({ + id: exist.id }); - - return; }); diff --git a/src/server/api/endpoints/mute/list.ts b/src/server/api/endpoints/mute/list.ts index 1b8f759496..0fd8a4860d 100644 --- a/src/server/api/endpoints/mute/list.ts +++ b/src/server/api/endpoints/mute/list.ts @@ -1,7 +1,8 @@ import $ from 'cafy'; -import ID, { transform } from '../../../../misc/cafy-id'; -import Mute, { packMany } from '../../../../models/mute'; +import { ID } from '../../../../misc/cafy-id'; import define from '../../define'; +import { makePaginationQuery } from '../../common/make-pagination-query'; +import { Mutings } from '../../../../models'; export const meta = { desc: { @@ -13,7 +14,7 @@ export const meta = { requireCredential: true, - kind: 'account/read', + kind: 'read:mutes', params: { limit: { @@ -23,12 +24,10 @@ export const meta = { sinceId: { validator: $.optional.type(ID), - transform: transform, }, untilId: { validator: $.optional.type(ID), - transform: transform, }, }, @@ -41,30 +40,12 @@ export const meta = { }; export default define(meta, async (ps, me) => { - const query = { - muterId: me._id - } as any; + const query = makePaginationQuery(Mutings.createQueryBuilder('muting'), ps.sinceId, ps.untilId) + .andWhere(`muting.muterId = :meId`, { meId: me.id }); - const sort = { - _id: -1 - }; + const mutings = await query + .take(ps.limit!) + .getMany(); - if (ps.sinceId) { - sort._id = 1; - query._id = { - $gt: ps.sinceId - }; - } else if (ps.untilId) { - query._id = { - $lt: ps.untilId - }; - } - - const mutes = await Mute - .find(query, { - limit: ps.limit, - sort: sort - }); - - return await packMany(mutes, me); + return await Mutings.packMany(mutings, me); }); |