summaryrefslogtreecommitdiff
path: root/src/models/favorite.ts
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-04-12 03:46:32 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-04-12 03:46:32 +0900
commit553fccd719690a659f5985e7956e875af92d17e0 (patch)
treeb70092f1a19aa5a7a72fe85146a1f9b49443384c /src/models/favorite.ts
parentMerge branch 'master' of https://github.com/syuilo/misskey (diff)
downloadmisskey-553fccd719690a659f5985e7956e875af92d17e0.tar.gz
misskey-553fccd719690a659f5985e7956e875af92d17e0.tar.bz2
misskey-553fccd719690a659f5985e7956e875af92d17e0.zip
wip
Diffstat (limited to 'src/models/favorite.ts')
-rw-r--r--src/models/favorite.ts31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/models/favorite.ts b/src/models/favorite.ts
index 73f8881926..b2c5828088 100644
--- a/src/models/favorite.ts
+++ b/src/models/favorite.ts
@@ -1,8 +1,8 @@
import * as mongo from 'mongodb';
import db from '../db/mongodb';
-const Favorites = db.get<IFavorite>('favorites');
-export default Favorites;
+const Favorite = db.get<IFavorite>('favorites');
+export default Favorite;
export type IFavorite = {
_id: mongo.ObjectID;
@@ -10,3 +10,30 @@ export type IFavorite = {
userId: mongo.ObjectID;
noteId: mongo.ObjectID;
};
+
+/**
+ * Favoriteを物理削除します
+ */
+export async function deleteFavorite(favorite: string | mongo.ObjectID | IFavorite) {
+ let f: IFavorite;
+
+ // Populate
+ if (mongo.ObjectID.prototype.isPrototypeOf(favorite)) {
+ f = await Favorite.findOne({
+ _id: favorite
+ });
+ } else if (typeof favorite === 'string') {
+ f = await Favorite.findOne({
+ _id: new mongo.ObjectID(favorite)
+ });
+ } else {
+ f = favorite as IFavorite;
+ }
+
+ if (f == null) return;
+
+ // このFavoriteを削除
+ await Favorite.remove({
+ _id: f._id
+ });
+}