mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
85 lines
2.6 KiB
TypeScript
85 lines
2.6 KiB
TypeScript
/*!
|
|
* @license
|
|
* Copyright 2016 Alfresco Software, Ltd.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import path = require('path');
|
|
import fs = require('fs');
|
|
import TestConfig = require('../../test.config');
|
|
|
|
export class UploadActions {
|
|
|
|
async uploadFile(alfrescoJsApi, fileLocation, fileName, parentFolderId) {
|
|
let pathFile = path.join(TestConfig.main.rootPath + fileLocation);
|
|
let file = fs.createReadStream(pathFile);
|
|
|
|
return alfrescoJsApi.upload.uploadFile(
|
|
file,
|
|
'',
|
|
parentFolderId,
|
|
null,
|
|
{
|
|
'name': fileName,
|
|
'nodeType': 'cm:content',
|
|
'renditions': 'doclib'
|
|
}
|
|
);
|
|
}
|
|
|
|
async createEmptyFiles(alfrescoJsApi, emptyFileNames: string[], parentFolderId) {
|
|
let filesRequest = [];
|
|
|
|
for (let i = 0; i < emptyFileNames.length; i++) {
|
|
let jsonItem = {};
|
|
jsonItem['name'] = emptyFileNames[i];
|
|
jsonItem['nodeType'] = 'cm:content';
|
|
filesRequest.push(jsonItem);
|
|
}
|
|
|
|
return alfrescoJsApi.nodes.addNode(parentFolderId, filesRequest, {}, {
|
|
filedata: ''
|
|
});
|
|
}
|
|
|
|
async createFolder(alfrescoJsApi, folderName, parentFolderId) {
|
|
return alfrescoJsApi.nodes.addNode(parentFolderId, {
|
|
'name': folderName,
|
|
'nodeType': 'cm:folder'
|
|
}, {}, {});
|
|
}
|
|
|
|
async deleteFilesOrFolder(alfrescoJsApi, folderId) {
|
|
return alfrescoJsApi.nodes.deleteNode(folderId, { permanent: true } );
|
|
}
|
|
|
|
async uploadFolder(alfrescoJsApi, sourcePath, folder) {
|
|
let absolutePath = '../../' + sourcePath;
|
|
let files = fs.readdirSync(path.join(__dirname, absolutePath));
|
|
let uploadedFiles;
|
|
let promises = [];
|
|
|
|
if (files && files.length > 0) {
|
|
|
|
for (const fileName of files) {
|
|
let pathFile = path.join(sourcePath, fileName);
|
|
promises.push(this.uploadFile(alfrescoJsApi, pathFile, fileName, folder));
|
|
}
|
|
uploadedFiles = await Promise.all(promises);
|
|
}
|
|
|
|
return uploadedFiles;
|
|
}
|
|
}
|