|
|
@@ -1,7 +1,8 @@
|
|
|
+import { SCOPE } from '@growi/core/dist/interfaces';
|
|
|
import { ErrorV3 } from '@growi/core/dist/models';
|
|
|
|
|
|
import { SupportedAction } from '~/interfaces/activity';
|
|
|
-import { SCOPE } from '@growi/core/dist/interfaces';
|
|
|
+import type Crowi from '~/server/crowi';
|
|
|
import { accessTokenParser } from '~/server/middlewares/access-token-parser';
|
|
|
import { getImportService } from '~/server/service/import';
|
|
|
import { generateOverwriteParams } from '~/server/service/import/overwrite-params';
|
|
|
@@ -9,6 +10,7 @@ import loggerFactory from '~/utils/logger';
|
|
|
|
|
|
import { generateAddActivityMiddleware } from '../../middlewares/add-activity';
|
|
|
|
|
|
+
|
|
|
const logger = loggerFactory('growi:routes:apiv3:import'); // eslint-disable-line no-unused-vars
|
|
|
|
|
|
const path = require('path');
|
|
|
@@ -122,14 +124,13 @@ const router = express.Router();
|
|
|
* type: integer
|
|
|
* nullable: true
|
|
|
*/
|
|
|
-/** @param {import('~/server/crowi').default} crowi Crowi instance */
|
|
|
-export default function route(crowi) {
|
|
|
+export default function route(crowi: Crowi) {
|
|
|
const { growiBridgeService, socketIoService } = crowi;
|
|
|
- const importService = getImportService(crowi);
|
|
|
+ const importService = getImportService();
|
|
|
|
|
|
const loginRequired = require('../../middlewares/login-required')(crowi);
|
|
|
const adminRequired = require('../../middlewares/admin-required')(crowi);
|
|
|
- const addActivity = generateAddActivityMiddleware(crowi);
|
|
|
+ const addActivity = generateAddActivityMiddleware();
|
|
|
|
|
|
const adminEvent = crowi.event('admin');
|
|
|
const activityEvent = crowi.event('activity');
|
|
|
@@ -312,18 +313,22 @@ export default function route(crowi) {
|
|
|
/*
|
|
|
* unzip, parse
|
|
|
*/
|
|
|
- let meta = null;
|
|
|
- let fileStatsToImport = null;
|
|
|
+ let meta;
|
|
|
+ let fileStatsToImport;
|
|
|
try {
|
|
|
// unzip
|
|
|
await importService.unzip(zipFile);
|
|
|
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
|
- const { meta: parsedMeta, fileStats, innerFileStats } = await growiBridgeService.parseZipFile(zipFile);
|
|
|
- meta = parsedMeta;
|
|
|
+ const parseZipResult = await growiBridgeService.parseZipFile(zipFile);
|
|
|
+ if (parseZipResult == null) {
|
|
|
+ throw new Error('parseZipFile returns null');
|
|
|
+ }
|
|
|
+
|
|
|
+ meta = parseZipResult.meta;
|
|
|
|
|
|
// filter innerFileStats
|
|
|
- fileStatsToImport = innerFileStats.filter(({ fileName, collectionName, size }) => {
|
|
|
+ fileStatsToImport = parseZipResult.innerFileStats.filter(({ collectionName }) => {
|
|
|
return collections.includes(collectionName);
|
|
|
});
|
|
|
}
|
|
|
@@ -411,7 +416,7 @@ export default function route(crowi) {
|
|
|
async(req, res) => {
|
|
|
const { file } = req;
|
|
|
const zipFile = importService.getFile(file.filename);
|
|
|
- let data = null;
|
|
|
+ let data;
|
|
|
|
|
|
try {
|
|
|
data = await growiBridgeService.parseZipFile(zipFile);
|