wip
This commit is contained in:
@@ -4,10 +4,8 @@
|
||||
* Module dependencies
|
||||
*/
|
||||
import * as fs from 'fs';
|
||||
import * as mongo from 'mongodb';
|
||||
import File from '../../../models/drive-file';
|
||||
import it from '../../../it';
|
||||
import { validateFileName } from '../../../models/drive-file';
|
||||
import User from '../../../models/user';
|
||||
import serialize from '../../../serializers/drive-file';
|
||||
import create from '../../../common/add-file-to-drive';
|
||||
|
||||
@@ -45,15 +43,11 @@ module.exports = (file, params, user) =>
|
||||
}
|
||||
|
||||
// Get 'folder_id' parameter
|
||||
let folder = params.folder_id;
|
||||
if (folder === undefined || folder === null) {
|
||||
folder = null;
|
||||
} else {
|
||||
folder = new mongo.ObjectID(folder);
|
||||
}
|
||||
const [folderId, folderIdErr] = it(params.folder_id).expect.nullable.id().default(null).qed();
|
||||
if (folderIdErr) return rej('invalid folder_id param');
|
||||
|
||||
// Create file
|
||||
const driveFile = await create(user, buffer, name, null, folder);
|
||||
const driveFile = await create(user, buffer, name, null, folderId);
|
||||
|
||||
// Serialize
|
||||
const fileObj = await serialize(driveFile);
|
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
import * as mongo from 'mongodb';
|
||||
import it from '../../../it';
|
||||
import DriveFile from '../../../models/drive-file';
|
||||
import serialize from '../../../serializers/drive-file';
|
||||
|
||||
@@ -18,25 +18,19 @@ module.exports = (params, user) =>
|
||||
new Promise(async (res, rej) =>
|
||||
{
|
||||
// Get 'name' parameter
|
||||
const name = params.name;
|
||||
if (name === undefined || name === null) {
|
||||
return rej('name is required');
|
||||
}
|
||||
const [name, nameErr] = it(params.name).expect.string().required().qed();
|
||||
if (nameErr) return rej('invalid name param');
|
||||
|
||||
// Get 'folder_id' parameter
|
||||
let folder = params.folder_id;
|
||||
if (folder === undefined || folder === null) {
|
||||
folder = null;
|
||||
} else {
|
||||
folder = new mongo.ObjectID(folder);
|
||||
}
|
||||
const [folderId, folderIdErr] = it(params.folder_id).expect.nullable.id().default(null).qed();
|
||||
if (folderIdErr) return rej('invalid folder_id param');
|
||||
|
||||
// Issue query
|
||||
const files = await DriveFile
|
||||
.find({
|
||||
name: name,
|
||||
user_id: user._id,
|
||||
folder_id: folder
|
||||
folder_id: folderId
|
||||
}, {
|
||||
fields: {
|
||||
data: false
|
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
import * as mongo from 'mongodb';
|
||||
import it from '../../../it';
|
||||
import DriveFile from '../../../models/drive-file';
|
||||
import serialize from '../../../serializers/drive-file';
|
||||
|
||||
@@ -18,14 +18,13 @@ module.exports = (params, user) =>
|
||||
new Promise(async (res, rej) =>
|
||||
{
|
||||
// Get 'file_id' parameter
|
||||
const fileId = params.file_id;
|
||||
if (fileId === undefined || fileId === null) {
|
||||
return rej('file_id is required');
|
||||
}
|
||||
const [fileId, fileIdErr] = it(params.file_id).expect.id().required().qed();
|
||||
if (fileIdErr) return rej('invalid file_id param');
|
||||
|
||||
// Fetch file
|
||||
const file = await DriveFile
|
||||
.findOne({
|
||||
_id: new mongo.ObjectID(fileId),
|
||||
_id: fileId,
|
||||
user_id: user._id
|
||||
}, {
|
||||
fields: {
|
@@ -3,7 +3,7 @@
|
||||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
import * as mongo from 'mongodb';
|
||||
import it from '../../../it';
|
||||
import DriveFolder from '../../../models/drive-folder';
|
||||
import DriveFile from '../../../models/drive-file';
|
||||
import { validateFileName } from '../../../models/drive-file';
|
||||
@@ -21,19 +21,13 @@ module.exports = (params, user) =>
|
||||
new Promise(async (res, rej) =>
|
||||
{
|
||||
// Get 'file_id' parameter
|
||||
const fileId = params.file_id;
|
||||
if (fileId === undefined || fileId === null) {
|
||||
return rej('file_id is required');
|
||||
}
|
||||
|
||||
// Validate id
|
||||
if (!mongo.ObjectID.isValid(fileId)) {
|
||||
return rej('incorrect file_id');
|
||||
}
|
||||
const [fileId, fileIdErr] = it(params.file_id).expect.id().required().qed();
|
||||
if (fileIdErr) return rej('invalid file_id param');
|
||||
|
||||
// Fetch file
|
||||
const file = await DriveFile
|
||||
.findOne({
|
||||
_id: new mongo.ObjectID(fileId),
|
||||
_id: fileId,
|
||||
user_id: user._id
|
||||
}, {
|
||||
fields: {
|
||||
@@ -46,29 +40,19 @@ module.exports = (params, user) =>
|
||||
}
|
||||
|
||||
// Get 'name' parameter
|
||||
let name = params.name;
|
||||
if (name) {
|
||||
name = name.trim();
|
||||
if (validateFileName(name)) {
|
||||
file.name = name;
|
||||
} else {
|
||||
return rej('invalid file name');
|
||||
}
|
||||
}
|
||||
const [name, nameErr] = it(params.name).expect.string().validate(validateFileName).qed();
|
||||
if (nameErr) return rej('invalid name param');
|
||||
if (name) file.name = name;
|
||||
|
||||
// Get 'folder_id' parameter
|
||||
let folderId = params.folder_id;
|
||||
const [folderId, folderIdErr] = it(params.folder_id).expect.nullable.id().qed();
|
||||
if (folderIdErr) return rej('invalid folder_id param');
|
||||
|
||||
if (folderId !== undefined) {
|
||||
if (folderId === null) {
|
||||
file.folder_id = null;
|
||||
} else {
|
||||
// Validate id
|
||||
if (!mongo.ObjectID.isValid(folderId)) {
|
||||
return rej('incorrect folder_id');
|
||||
}
|
||||
|
||||
folderId = new mongo.ObjectID(folderId);
|
||||
|
||||
// Fetch folder
|
||||
const folder = await DriveFolder
|
||||
.findOne({
|
||||
_id: folderId,
|
@@ -5,10 +5,8 @@
|
||||
*/
|
||||
import * as URL from 'url';
|
||||
const download = require('download');
|
||||
import * as mongo from 'mongodb';
|
||||
import File from '../../../models/drive-file';
|
||||
import it from '../../../it';
|
||||
import { validateFileName } from '../../../models/drive-file';
|
||||
import User from '../../../models/user';
|
||||
import serialize from '../../../serializers/drive-file';
|
||||
import create from '../../../common/add-file-to-drive';
|
||||
|
||||
@@ -24,10 +22,8 @@ module.exports = (params, user) =>
|
||||
{
|
||||
// Get 'url' parameter
|
||||
// TODO: Validate this url
|
||||
const url = params.url;
|
||||
if (url == null) {
|
||||
return rej('url is required');
|
||||
}
|
||||
const [url, urlErr] = it(params.url).expect.string().required().qed();
|
||||
if (urlErr) return rej('invalid url param');
|
||||
|
||||
let name = URL.parse(url).pathname.split('/').pop();
|
||||
if (!validateFileName(name)) {
|
||||
@@ -35,18 +31,14 @@ module.exports = (params, user) =>
|
||||
}
|
||||
|
||||
// Get 'folder_id' parameter
|
||||
let folder = params.folder_id;
|
||||
if (folder === undefined || folder === null) {
|
||||
folder = null;
|
||||
} else {
|
||||
folder = new mongo.ObjectID(folder);
|
||||
}
|
||||
const [folderId, folderIdErr] = it(params.folder_id).expect.nullable.id().default(null).qed();
|
||||
if (folderIdErr) return rej('invalid folder_id param');
|
||||
|
||||
// Download file
|
||||
const data = await download(url);
|
||||
|
||||
// Create file
|
||||
const driveFile = await create(user, data, name, null, folder);
|
||||
const driveFile = await create(user, data, name, null, folderId);
|
||||
|
||||
// Serialize
|
||||
const fileObj = await serialize(driveFile);
|
Reference in New Issue
Block a user