summaryrefslogtreecommitdiff
path: root/src/api/models
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/models')
-rw-r--r--src/api/models/drive-file.ts17
-rw-r--r--src/api/models/meta.ts7
-rw-r--r--src/api/models/notification.ts39
-rw-r--r--src/api/models/sw-subscription.ts3
4 files changed, 62 insertions, 4 deletions
diff --git a/src/api/models/drive-file.ts b/src/api/models/drive-file.ts
index 8d158cf563..802ee5a5fe 100644
--- a/src/api/models/drive-file.ts
+++ b/src/api/models/drive-file.ts
@@ -1,11 +1,20 @@
-import db from '../../db/mongodb';
+import * as mongodb from 'mongodb';
+import monkDb, { nativeDbConn } from '../../db/mongodb';
-const collection = db.get('drive_files');
-
-(collection as any).createIndex('hash'); // fuck type definition
+const collection = monkDb.get('drive_files.files');
export default collection as any; // fuck type definition
+const getGridFSBucket = async (): Promise<mongodb.GridFSBucket> => {
+ const db = await nativeDbConn();
+ const bucket = new mongodb.GridFSBucket(db, {
+ bucketName: 'drive_files'
+ });
+ return bucket;
+};
+
+export { getGridFSBucket };
+
export function validateFileName(name: string): boolean {
return (
(name.trim().length > 0) &&
diff --git a/src/api/models/meta.ts b/src/api/models/meta.ts
new file mode 100644
index 0000000000..c7dba8fcba
--- /dev/null
+++ b/src/api/models/meta.ts
@@ -0,0 +1,7 @@
+import db from '../../db/mongodb';
+
+export default db.get('meta') as any; // fuck type definition
+
+export type IMeta = {
+ top_image: string;
+};
diff --git a/src/api/models/notification.ts b/src/api/models/notification.ts
index 1065e8baaa..e3dc6c70a3 100644
--- a/src/api/models/notification.ts
+++ b/src/api/models/notification.ts
@@ -1,8 +1,47 @@
import * as mongo from 'mongodb';
import db from '../../db/mongodb';
+import { IUser } from './user';
export default db.get('notifications') as any; // fuck type definition
export interface INotification {
_id: mongo.ObjectID;
+ created_at: Date;
+
+ /**
+ * 通知の受信者
+ */
+ notifiee?: IUser;
+
+ /**
+ * 通知の受信者
+ */
+ notifiee_id: mongo.ObjectID;
+
+ /**
+ * イニシエータ(initiator)、Origin。通知を行う原因となったユーザー
+ */
+ notifier?: IUser;
+
+ /**
+ * イニシエータ(initiator)、Origin。通知を行う原因となったユーザー
+ */
+ notifier_id: mongo.ObjectID;
+
+ /**
+ * 通知の種類。
+ * follow - フォローされた
+ * mention - 投稿で自分が言及された
+ * reply - (自分または自分がWatchしている)投稿が返信された
+ * repost - (自分または自分がWatchしている)投稿がRepostされた
+ * quote - (自分または自分がWatchしている)投稿が引用Repostされた
+ * reaction - (自分または自分がWatchしている)投稿にリアクションされた
+ * poll_vote - (自分または自分がWatchしている)投稿の投票に投票された
+ */
+ type: 'follow' | 'mention' | 'reply' | 'repost' | 'quote' | 'reaction' | 'poll_vote';
+
+ /**
+ * 通知が読まれたかどうか
+ */
+ is_read: Boolean;
}
diff --git a/src/api/models/sw-subscription.ts b/src/api/models/sw-subscription.ts
new file mode 100644
index 0000000000..ecca04cb91
--- /dev/null
+++ b/src/api/models/sw-subscription.ts
@@ -0,0 +1,3 @@
+import db from '../../db/mongodb';
+
+export default db.get('sw_subscriptions') as any; // fuck type definition