summaryrefslogtreecommitdiff
path: root/src/server/api/models/drive-file.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/models/drive-file.ts')
-rw-r--r--src/server/api/models/drive-file.ts113
1 files changed, 0 insertions, 113 deletions
diff --git a/src/server/api/models/drive-file.ts b/src/server/api/models/drive-file.ts
deleted file mode 100644
index 04c9c54bd4..0000000000
--- a/src/server/api/models/drive-file.ts
+++ /dev/null
@@ -1,113 +0,0 @@
-import * as mongodb from 'mongodb';
-import deepcopy = require('deepcopy');
-import { pack as packFolder } from './drive-folder';
-import config from '../../../conf';
-import monkDb, { nativeDbConn } from '../../../db/mongodb';
-
-const DriveFile = monkDb.get<IDriveFile>('driveFiles.files');
-
-export default DriveFile;
-
-const getGridFSBucket = async (): Promise<mongodb.GridFSBucket> => {
- const db = await nativeDbConn();
- const bucket = new mongodb.GridFSBucket(db, {
- bucketName: 'driveFiles'
- });
- return bucket;
-};
-
-export { getGridFSBucket };
-
-export type IDriveFile = {
- _id: mongodb.ObjectID;
- uploadDate: Date;
- md5: string;
- filename: string;
- contentType: string;
- metadata: {
- properties: any;
- userId: mongodb.ObjectID;
- folderId: mongodb.ObjectID;
- }
-};
-
-export function validateFileName(name: string): boolean {
- return (
- (name.trim().length > 0) &&
- (name.length <= 200) &&
- (name.indexOf('\\') === -1) &&
- (name.indexOf('/') === -1) &&
- (name.indexOf('..') === -1)
- );
-}
-
-/**
- * Pack a drive file for API response
- *
- * @param {any} file
- * @param {any} options?
- * @return {Promise<any>}
- */
-export const pack = (
- file: any,
- options?: {
- detail: boolean
- }
-) => new Promise<any>(async (resolve, reject) => {
- const opts = Object.assign({
- detail: false
- }, options);
-
- let _file: any;
-
- // Populate the file if 'file' is ID
- if (mongodb.ObjectID.prototype.isPrototypeOf(file)) {
- _file = await DriveFile.findOne({
- _id: file
- });
- } else if (typeof file === 'string') {
- _file = await DriveFile.findOne({
- _id: new mongodb.ObjectID(file)
- });
- } else {
- _file = deepcopy(file);
- }
-
- if (!_file) return reject('invalid file arg.');
-
- // rendered target
- let _target: any = {};
-
- _target.id = _file._id;
- _target.createdAt = _file.uploadDate;
- _target.name = _file.filename;
- _target.type = _file.contentType;
- _target.datasize = _file.length;
- _target.md5 = _file.md5;
-
- _target = Object.assign(_target, _file.metadata);
-
- _target.url = `${config.drive_url}/${_target.id}/${encodeURIComponent(_target.name)}`;
-
- if (_target.properties == null) _target.properties = {};
-
- if (opts.detail) {
- if (_target.folderId) {
- // Populate folder
- _target.folder = await packFolder(_target.folderId, {
- detail: true
- });
- }
-
- /*
- if (_target.tags) {
- // Populate tags
- _target.tags = await _target.tags.map(async (tag: any) =>
- await serializeDriveTag(tag)
- );
- }
- */
- }
-
- resolve(_target);
-});