Просмотр исходного кода

add AttachmentFilesChunksOverwriteParamsFactory

Yuki Takei 6 лет назад
Родитель
Сommit
232c85c4d7

+ 2 - 3
src/server/routes/apiv3/import.js

@@ -5,9 +5,6 @@ const logger = loggerFactory('growi:routes:apiv3:import'); // eslint-disable-lin
 const path = require('path');
 const multer = require('multer');
 
-// eslint-disable-next-line no-unused-vars
-const { ObjectId } = require('mongoose').Types;
-
 const express = require('express');
 
 const GrowiArchiveImportOption = require('@commons/models/admin/growi-archive-import-option');
@@ -54,6 +51,8 @@ const generateOverwriteParams = (collectionName, req, options) => {
       return require('./overwrite-params/pages')(req, options);
     case 'revisions':
       return require('./overwrite-params/revisions')(req, options);
+    case 'attachmentFiles.chunks':
+      return require('./overwrite-params/attachmentFiles.chunks')(req, options);
     default:
       return {};
   }

+ 32 - 0
src/server/routes/apiv3/overwrite-params/attachmentFiles.chunks.js

@@ -0,0 +1,32 @@
+const { Binary } = require('mongodb');
+const { ObjectId } = require('mongoose').Types;
+
+class AttachmentFilesChunksOverwriteParamsFactory {
+
+  /**
+   * generate overwrite params object
+   * @param {object} req
+   * @param {ImportOptionForPages} option
+   * @return object
+   *  key: property name
+   *  value: any value or a function `(value, { document, schema, propertyName }) => { return newValue }`
+   */
+  static generate(req, option) {
+    const params = {};
+
+    // Date
+    params.files_id = (value, { document, schema, propertyName }) => {
+      return ObjectId(value);
+    };
+
+    // Binary
+    params.data = (value, { document, schema, propertyName }) => {
+      return Binary(value);
+    };
+
+    return params;
+  }
+
+}
+
+module.exports = (req, option) => AttachmentFilesChunksOverwriteParamsFactory.generate(req, option);