(C) Questetra, Inc. (MIT License)
2
2021-10-28
Copy the File and save it in the specified Folder
既存ファイルを複製し、指定フォルダに新規保存します
https://support.questetra.com/bpmn-icons/box-file-copy/
https://support.questetra.com/ja/bpmn-icons/box-file-copy/
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEBElEQVRYR82Xb2jbRRjHP/fL2jXJ
0qSd65x11aK0YgJWZUwEWZ0DfSNaHYKKmgykbP7pH/SVghvCkIlb6kREwfyGOougbgxB2Yt1oGwg
aietdOJoV21ty2ob26xdm+TkLsufJr+2Sdtt3pv8uDx3z+ee+z53zwmucRMF+ff/9ijEtwB1IDwI
9QtIOkGOA50I0UHIezTfeRcH8Pd64GITyGaE8OQ1sVQwIgiONsxqBTZvWxjA3+UHDuTtONuNBjEC
mLcfmY9gfgB/dxBBU14rXsxIyiCmr8XKzBog0GWCeG6xeQv6X2JiegPZY3IBVnLlOVtCG6a3ObN7
LoDacyFCBa2sUGMpGjI1kQbQao/0Lllw+YJoYTqrk9mRAdC9G8Eb+c6zLDvJHkzvbjVHGiDQpXLX
nZw4tOMGyp02Hjn457J8WQ5WUTB9ZWkAdcIJ+XWm8XCwFkexwLWrZ+UB9OmZ0EIiAhbKH2lLAKzZ
eaUAEhmRAAh0dYBQZ3yqKQDnaoPDp8PUVZXo/pM9EV75Ylh/77q/jO2bSlmz2mBgLErjoUHad95I
Z/80re0Jmw+e3UD1dcU8uP+8RRTlSUK++ssA3X3ATdkA61y2nIE/9k7Rd2GWx+4uxWZkAP8bo9Ru
YAho+XyIUruNNxsqiMzE8bxgEUV1gZneO5MAMtuTioACUM7e+W4Uj8Pg5W1rdV9cwvSsxPx+nNPn
LvLStnI2VdsZi8TwOGyMTsY0nNth493j/9DSPmSto5BXLAigsmDLW7388MeUnuDVh9ay74n1+vvI
zxM0vJfOkNGDtdiLDH7pn+beW+3a5kRPhK37rMJ/mScDIGcLBvfXsM61isrWs4xMxPSIpza7+ayx
Un8rbTz94UBqZX8fqNFp+82vkzTc5dL9n54K88xHaZu5YZBnCPnq5hXhqdequecWO2rPH3j7PBvc
qzjWVEXN9cV6HhVmJbwvf5rgcGMlT2526y1wldiYiUl9wKhtUHp4/8TYIiK0SMP6WgdfvbiRMqeN
yKU4NkNQUiToH51lcDyq4aIxtMjcdoOpGYkSkrJpOz6qt6OxvowLkzEqms7mAsjMNLQ4iNSIrbc5
2bu9QqdSNC7pHrjEjo8H+GssyifPV3JfjQNHscFQOMqeoyPsfXw9vw/P8HBbv3b4bWsVG8uL8L5+
zgIg8yBSf2cdxdayXaleGSbk0+Xd/+gyUtexiPRlXkgrtd4s9YeRzptzr2NldU0LkiTmlS3JUnVA
0t3VK0qRhwj5VJk/p12lsjxdAeUPoDWhCpW4KtFTlVJhwpRhpOFf2sMkpQn9NGtGyOb8QZRj/TQL
Lu9plr1c/TiV9QipHqUeEHckTOQZYBwpOkF0LLTiwragsHgvyfo/g3CBMFgjn40AAAAASUVORK5C
YII=
{
configs.put('conf_OAuth2', 'Box');
// 文字型データ項目を準備して、config に指定
const sourceFileIdDef = engine.createDataDefinition('コピー元ファイルID', 1, 'q_sourceFileId', 'STRING_TEXTFIELD');
configs.putObject('conf_SourceFileId', sourceFileIdDef);
// 文字型データ項目の値(コピー元ファイルID)を指定
engine.setData(sourceFileIdDef, sourceFileId);
configs.put('conf_NewFileName', newFileName);
// 文字型データ項目を準備して、config に指定
const folderIdDef = engine.createDataDefinition('保存先フォルダID', 2, 'q_folderId', 'STRING_TEXTFIELD');
configs.putObject('conf_FolderId', folderIdDef);
// 文字型データ項目の値(保存先フォルダID)を指定
engine.setData(folderIdDef, folderId);
// 文字型データ項目を準備して、config に指定
const idDef = engine.createDataDefinition('ファイルID', 3, 'q_ids', 'STRING_TEXTAREA');
configs.putObject('conf_DataForId', idDef);
// 文字型データ項目の値(ファイル ID を保存するデータ項目)を指定
engine.setData(idDef, '事前文字列');
// 文字型データ項目を準備して、config に指定
const urlDef = engine.createDataDefinition('ファイルURL', 4, 'q_urls', 'STRING_TEXTAREA');
configs.putObject('conf_DataForUrl', urlDef);
// 文字型データ項目の値(ファイル URL を保存するデータ項目)を指定
engine.setData(urlDef, '事前文字列');
return {
sourceFileIdDef,
folderIdDef,
idDef,
urlDef
};
};
/**
* リクエストのテスト(ファイルが配置されているフォルダのIDを取得)
* @param {Object} request
* @param request.url
* @param request.method
* @param fileId
*/
const assertGetRequest = ({url, method}, fileId) => {
expect(url).toEqual(`https://api.box.com/2.0/files/${fileId}?fields=parent`);
expect(method).toEqual('GET');
};
/**
* リクエストのテスト(ファイルコピー)
* @param {Object} request
* @param request.url
* @param request.method
* @param request.contentType
* @param request.body
* @param folderId
* @param newFileName
*/
const assertPostRequest = ({url, method, contentType, body}, fileId, folderId, newFileName) => {
expect(url).toEqual(`https://api.box.com/2.0/files/${fileId}/copy?fields=id`);
expect(method).toEqual('POST');
expect(contentType).toEqual('application/json; charset=UTF-8');
const bodyObj = JSON.parse(body);
expect(bodyObj.parent.id).toEqual(folderId);
if ( newFileName !== "" && newFileName !== null ){
expect(bodyObj.name).toEqual(newFileName);
}else{
//newFileName が空の場合、bodyObj に name の指定がないことを確認
expect(bodyObj.name === undefined).toEqual(true);
}
};
/**
* conf_SourceFileId にデータ項目を設定しているが、そのデータ項目の値が空でエラーになる場合
*/
test('No Source File ID - FileId specified by String Data', () => {
prepareConfigs(configs, null, '12345', 'test.txt');
//