diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-04-12 04:05:03 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-04-12 04:05:03 +0900 |
| commit | 92dd4b3e5a701823ebb5a453aa42202da8a326ea (patch) | |
| tree | fc573e1345e82de1db0df4a33b8f18e00a244be3 /src/models/messaging-message.ts | |
| parent | wip (diff) | |
| download | misskey-92dd4b3e5a701823ebb5a453aa42202da8a326ea.tar.gz misskey-92dd4b3e5a701823ebb5a453aa42202da8a326ea.tar.bz2 misskey-92dd4b3e5a701823ebb5a453aa42202da8a326ea.zip | |
wip
Diffstat (limited to 'src/models/messaging-message.ts')
| -rw-r--r-- | src/models/messaging-message.ts | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/src/models/messaging-message.ts b/src/models/messaging-message.ts index 974ee54ab8..9d62fab4fa 100644 --- a/src/models/messaging-message.ts +++ b/src/models/messaging-message.ts @@ -3,6 +3,7 @@ import deepcopy = require('deepcopy'); import { pack as packUser } from './user'; import { pack as packFile } from './drive-file'; import db from '../db/mongodb'; +import MessagingHistory, { deleteMessagingHistory } from './messaging-history'; const MessagingMessage = db.get<IMessagingMessage>('messagingMessages'); export default MessagingMessage; @@ -23,12 +24,39 @@ export function isValidText(text: string): boolean { } /** + * MessagingMessageを物理削除します + */ +export async function deleteMessagingMessage(messagingMessage: string | mongo.ObjectID | IMessagingMessage) { + let m: IMessagingMessage; + + // Populate + if (mongo.ObjectID.prototype.isPrototypeOf(messagingMessage)) { + m = await MessagingMessage.findOne({ + _id: messagingMessage + }); + } else if (typeof messagingMessage === 'string') { + m = await MessagingMessage.findOne({ + _id: new mongo.ObjectID(messagingMessage) + }); + } else { + m = messagingMessage as IMessagingMessage; + } + + if (m == null) return; + + // このMessagingMessageを指すMessagingHistoryをすべて削除 + await Promise.all(( + await MessagingHistory.find({ messageId: m._id }) + ).map(x => deleteMessagingHistory(x))); + + // このMessagingMessageを削除 + await MessagingMessage.remove({ + _id: m._id + }); +} + +/** * Pack a messaging message for API response - * - * @param {any} message - * @param {any} me? - * @param {any} options? - * @return {Promise<any>} */ export const pack = ( message: any, |