summaryrefslogtreecommitdiff
path: root/src/api/models
diff options
context:
space:
mode:
authorこぴなたみぽ <Syuilotan@yahoo.co.jp>2017-11-06 19:10:10 +0900
committerGitHub <noreply@github.com>2017-11-06 19:10:10 +0900
commit03e86ec05216d49f9a1af5dd92f0fa12f2da4825 (patch)
tree9257b5d2d0abc626187a9ba9640097bc5624d158 /src/api/models
parentchore(package): update @types/serve-favicon to version 2.2.29 (diff)
parentMerge pull request #870 from syuilo/greenkeeper/@types/multer-1.3.5 (diff)
downloadmisskey-03e86ec05216d49f9a1af5dd92f0fa12f2da4825.tar.gz
misskey-03e86ec05216d49f9a1af5dd92f0fa12f2da4825.tar.bz2
misskey-03e86ec05216d49f9a1af5dd92f0fa12f2da4825.zip
Merge branch 'master' into greenkeeper/@types/serve-favicon-2.2.29
Diffstat (limited to 'src/api/models')
-rw-r--r--src/api/models/access-token.ts4
-rw-r--r--src/api/models/app.ts6
-rw-r--r--src/api/models/channel-watching.ts3
-rw-r--r--src/api/models/channel.ts14
-rw-r--r--src/api/models/drive-file.ts17
-rw-r--r--src/api/models/notification.ts5
-rw-r--r--src/api/models/post.ts15
-rw-r--r--src/api/models/user.ts53
8 files changed, 106 insertions, 11 deletions
diff --git a/src/api/models/access-token.ts b/src/api/models/access-token.ts
index 2a8a512ddc..9985be5013 100644
--- a/src/api/models/access-token.ts
+++ b/src/api/models/access-token.ts
@@ -2,7 +2,7 @@ import db from '../../db/mongodb';
const collection = db.get('access_tokens');
-(collection as any).index('token'); // fuck type definition
-(collection as any).index('hash'); // fuck type definition
+(collection as any).createIndex('token'); // fuck type definition
+(collection as any).createIndex('hash'); // fuck type definition
export default collection as any; // fuck type definition
diff --git a/src/api/models/app.ts b/src/api/models/app.ts
index bf5dc80c2c..68f2f448b0 100644
--- a/src/api/models/app.ts
+++ b/src/api/models/app.ts
@@ -2,9 +2,9 @@ import db from '../../db/mongodb';
const collection = db.get('apps');
-(collection as any).index('name_id'); // fuck type definition
-(collection as any).index('name_id_lower'); // fuck type definition
-(collection as any).index('secret'); // fuck type definition
+(collection as any).createIndex('name_id'); // fuck type definition
+(collection as any).createIndex('name_id_lower'); // fuck type definition
+(collection as any).createIndex('secret'); // fuck type definition
export default collection as any; // fuck type definition
diff --git a/src/api/models/channel-watching.ts b/src/api/models/channel-watching.ts
new file mode 100644
index 0000000000..6184ae408d
--- /dev/null
+++ b/src/api/models/channel-watching.ts
@@ -0,0 +1,3 @@
+import db from '../../db/mongodb';
+
+export default db.get('channel_watching') as any; // fuck type definition
diff --git a/src/api/models/channel.ts b/src/api/models/channel.ts
new file mode 100644
index 0000000000..c80e84dbc8
--- /dev/null
+++ b/src/api/models/channel.ts
@@ -0,0 +1,14 @@
+import * as mongo from 'mongodb';
+import db from '../../db/mongodb';
+
+const collection = db.get('channels');
+
+export default collection as any; // fuck type definition
+
+export type IChannel = {
+ _id: mongo.ObjectID;
+ created_at: Date;
+ title: string;
+ user_id: mongo.ObjectID;
+ index: number;
+};
diff --git a/src/api/models/drive-file.ts b/src/api/models/drive-file.ts
index 4c7204b1f4..8968d065cd 100644
--- a/src/api/models/drive-file.ts
+++ b/src/api/models/drive-file.ts
@@ -1,11 +1,22 @@
-import db from '../../db/mongodb';
+import * as mongodb from 'mongodb';
+import monkDb, { nativeDbConn } from '../../db/mongodb';
-const collection = db.get('drive_files');
+const collection = monkDb.get('drive_files.files');
-(collection as any).index('hash'); // fuck type definition
+(collection as any).createIndex('hash'); // fuck type definition
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/notification.ts b/src/api/models/notification.ts
index 1c1f429a0d..1065e8baaa 100644
--- a/src/api/models/notification.ts
+++ b/src/api/models/notification.ts
@@ -1,3 +1,8 @@
+import * as mongo from 'mongodb';
import db from '../../db/mongodb';
export default db.get('notifications') as any; // fuck type definition
+
+export interface INotification {
+ _id: mongo.ObjectID;
+}
diff --git a/src/api/models/post.ts b/src/api/models/post.ts
index baab63f991..7584ce182d 100644
--- a/src/api/models/post.ts
+++ b/src/api/models/post.ts
@@ -1,3 +1,5 @@
+import * as mongo from 'mongodb';
+
import db from '../../db/mongodb';
export default db.get('posts') as any; // fuck type definition
@@ -5,3 +7,16 @@ export default db.get('posts') as any; // fuck type definition
export function isValidText(text: string): boolean {
return text.length <= 1000 && text.trim() != '';
}
+
+export type IPost = {
+ _id: mongo.ObjectID;
+ channel_id: mongo.ObjectID;
+ created_at: Date;
+ media_ids: mongo.ObjectID[];
+ reply_id: mongo.ObjectID;
+ repost_id: mongo.ObjectID;
+ poll: {}; // todo
+ text: string;
+ user_id: mongo.ObjectID;
+ app_id: mongo.ObjectID;
+};
diff --git a/src/api/models/user.ts b/src/api/models/user.ts
index cd16459891..b2f3af09fa 100644
--- a/src/api/models/user.ts
+++ b/src/api/models/user.ts
@@ -1,9 +1,12 @@
+import * as mongo from 'mongodb';
+
import db from '../../db/mongodb';
+import { IPost } from './post';
const collection = db.get('users');
-(collection as any).index('username'); // fuck type definition
-(collection as any).index('token'); // fuck type definition
+(collection as any).createIndex('username'); // fuck type definition
+(collection as any).createIndex('token'); // fuck type definition
export default collection as any; // fuck type definition
@@ -31,6 +34,50 @@ export function isValidBirthday(birthday: string): boolean {
return typeof birthday == 'string' && /^([0-9]{4})\-([0-9]{2})-([0-9]{2})$/.test(birthday);
}
-export interface IUser {
+export type IUser = {
+ _id: mongo.ObjectID;
+ created_at: Date;
+ email: string;
+ followers_count: number;
+ following_count: number;
+ links: string[];
name: string;
+ password: string;
+ posts_count: number;
+ drive_capacity: number;
+ username: string;
+ username_lower: string;
+ token: string;
+ avatar_id: mongo.ObjectID;
+ banner_id: mongo.ObjectID;
+ data: any;
+ twitter: {
+ access_token: string;
+ access_token_secret: string;
+ user_id: string;
+ screen_name: string;
+ };
+ line: {
+ user_id: string;
+ };
+ description: string;
+ profile: {
+ location: string;
+ birthday: string; // 'YYYY-MM-DD'
+ tags: string[];
+ };
+ last_used_at: Date;
+ latest_post: IPost;
+ pinned_post_id: mongo.ObjectID;
+ is_pro: boolean;
+ is_suspended: boolean;
+ keywords: string[];
+};
+
+export function init(user): IUser {
+ user._id = new mongo.ObjectID(user._id);
+ user.avatar_id = new mongo.ObjectID(user.avatar_id);
+ user.banner_id = new mongo.ObjectID(user.banner_id);
+ user.pinned_post_id = new mongo.ObjectID(user.pinned_post_id);
+ return user;
}