Introduce processor
This commit is contained in:
parent
68ce6d5748
commit
90f8fe7e53
582 changed files with 246 additions and 188 deletions
51
src/server/api/endpoints/drive/files/create.ts
Normal file
51
src/server/api/endpoints/drive/files/create.ts
Normal file
|
@ -0,0 +1,51 @@
|
|||
/**
|
||||
* Module dependencies
|
||||
*/
|
||||
import $ from 'cafy';
|
||||
import { validateFileName, pack } from '../../../models/drive-file';
|
||||
import create from '../../../common/drive/add-file';
|
||||
|
||||
/**
|
||||
* Create a file
|
||||
*
|
||||
* @param {any} file
|
||||
* @param {any} params
|
||||
* @param {any} user
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
module.exports = async (file, params, user): Promise<any> => {
|
||||
if (file == null) {
|
||||
throw 'file is required';
|
||||
}
|
||||
|
||||
// Get 'name' parameter
|
||||
let name = file.originalname;
|
||||
if (name !== undefined && name !== null) {
|
||||
name = name.trim();
|
||||
if (name.length === 0) {
|
||||
name = null;
|
||||
} else if (name === 'blob') {
|
||||
name = null;
|
||||
} else if (!validateFileName(name)) {
|
||||
throw 'invalid name';
|
||||
}
|
||||
} else {
|
||||
name = null;
|
||||
}
|
||||
|
||||
// Get 'folder_id' parameter
|
||||
const [folderId = null, folderIdErr] = $(params.folder_id).optional.nullable.id().$;
|
||||
if (folderIdErr) throw 'invalid folder_id param';
|
||||
|
||||
try {
|
||||
// Create file
|
||||
const driveFile = await create(user, file.path, name, null, folderId);
|
||||
|
||||
// Serialize
|
||||
return pack(driveFile);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
||||
throw e;
|
||||
}
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue