Files
alfresco-ng2-components/e2e/actions/ACS/upload.actions.ts
2018-12-21 17:52:08 +00:00

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;
}
}