From fdc81f395d9555da1cdbc81dbe34970f3e683247 Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Tue, 3 Apr 2018 23:45:13 +0900 Subject: Enforce URI uniquness --- src/models/drive-file.ts | 16 +++++++++++----- src/models/post.ts | 3 +++ src/models/remote-user-object.ts | 15 --------------- 3 files changed, 14 insertions(+), 20 deletions(-) delete mode 100644 src/models/remote-user-object.ts (limited to 'src/models') diff --git a/src/models/drive-file.ts b/src/models/drive-file.ts index fba1aebdae..c86570f0f7 100644 --- a/src/models/drive-file.ts +++ b/src/models/drive-file.ts @@ -6,6 +6,8 @@ import monkDb, { nativeDbConn } from '../db/mongodb'; const DriveFile = monkDb.get('driveFiles.files'); +DriveFile.createIndex('metadata.uri', { sparse: true, unique: true }); + export default DriveFile; const getGridFSBucket = async (): Promise => { @@ -18,17 +20,21 @@ const getGridFSBucket = async (): Promise => { export { getGridFSBucket }; +export type IMetadata = { + properties: any; + userId: mongodb.ObjectID; + folderId: mongodb.ObjectID; + comment: string; + uri: string; +}; + export type IDriveFile = { _id: mongodb.ObjectID; uploadDate: Date; md5: string; filename: string; contentType: string; - metadata: { - properties: any; - userId: mongodb.ObjectID; - folderId: mongodb.ObjectID; - } + metadata: IMetadata; }; export function validateFileName(name: string): boolean { diff --git a/src/models/post.ts b/src/models/post.ts index 798c18e4b1..2f2b51b946 100644 --- a/src/models/post.ts +++ b/src/models/post.ts @@ -11,6 +11,8 @@ import { pack as packFile } from './drive-file'; const Post = db.get('posts'); +Post.createIndex('uri', { sparse: true, unique: true }); + export default Post; export function isValidText(text: string): boolean { @@ -49,6 +51,7 @@ export type IPost = { heading: number; speed: number; }; + uri: string; }; /** diff --git a/src/models/remote-user-object.ts b/src/models/remote-user-object.ts deleted file mode 100644 index fb5b337c90..0000000000 --- a/src/models/remote-user-object.ts +++ /dev/null @@ -1,15 +0,0 @@ -import * as mongodb from 'mongodb'; -import db from '../db/mongodb'; - -const RemoteUserObject = db.get('remoteUserObjects'); - -export default RemoteUserObject; - -export type IRemoteUserObject = { - _id: mongodb.ObjectID; - uri: string; - object: { - $ref: string; - $id: mongodb.ObjectID; - } -}; -- cgit v1.2.3-freya