diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-05-25 18:41:49 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-05-25 18:41:49 +0900 |
| commit | bd434ed02dd69b4a120de5a727a3e5d321f3cbfe (patch) | |
| tree | e83ad93481d5253b2c911de6b5d7d9dc2167a075 /src/server/api/endpoints | |
| parent | Update welcome.vue (diff) | |
| download | sharkey-bd434ed02dd69b4a120de5a727a3e5d321f3cbfe.tar.gz sharkey-bd434ed02dd69b4a120de5a727a3e5d321f3cbfe.tar.bz2 sharkey-bd434ed02dd69b4a120de5a727a3e5d321f3cbfe.zip | |
Refactor and some fixes
Diffstat (limited to 'src/server/api/endpoints')
| -rw-r--r-- | src/server/api/endpoints/drive/files/create.ts | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts index e9348e4e2f..dd748d6bba 100644 --- a/src/server/api/endpoints/drive/files/create.ts +++ b/src/server/api/endpoints/drive/files/create.ts @@ -1,6 +1,7 @@ /** * Module dependencies */ +import * as fs from 'fs'; import $ from 'cafy'; import ID from '../../../../../cafy-id'; import { validateFileName, pack } from '../../../../../models/drive-file'; import create from '../../../../../services/drive/add-file'; @@ -32,15 +33,23 @@ module.exports = async (file, params, user): Promise<any> => { const [folderId = null, folderIdErr] = $.type(ID).optional().nullable().get(params.folderId); if (folderIdErr) throw 'invalid folderId param'; + function cleanup() { + fs.unlink(file.path, () => {}); + } + try { // Create file const driveFile = await create(user, file.path, name, null, folderId); + cleanup(); + // Serialize return pack(driveFile); } catch (e) { console.error(e); + cleanup(); + throw e; } }; |