(C) Questetra, Inc. (MIT License) 3 2 2024-06-28 This item moves the folder to the specified folder. Folder ID and URL won't change. この工程は、既存フォルダを指定フォルダに移動します。フォルダの ID・URL は変化しません。 https://support.questetra.com/bpmn-icons/service-task-box-folder-move/ https://support.questetra.com/ja/bpmn-icons/service-task-box-folder-move/ 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= { const auth = httpClient.createAuthSettingOAuth2( 'Box', 'https://account.box.com/api/oauth2/authorize', 'https://api.box.com/oauth2/token', 'root_readwrite', 'consumer_key', 'consumer_secret', 'access_token' ); configs.putObject('conf_OAuth2', auth); const folderIdDef = engine.createDataDefinition('移動させるフォルダ ID', 1, 'q_sourceFolderId', 'STRING_TEXTFIELD'); configs.putObject('conf_FolderId', folderIdDef); engine.setData(folderIdDef, folderId); const parentFolderIdDef = engine.createDataDefinition('移動先フォルダ ID', 2, 'q_parentFolderId', 'STRING_TEXTFIELD'); configs.putObject('conf_ParentFolderId', parentFolderIdDef); engine.setData(parentFolderIdDef, parentFolderId); }; /** * API リクエストのテスト * @param {Object} request * @param request.url * @param request.method * @param request.headers * @param request.contentType * @param request.body * @param folderId * @param parentFolderId */ const assertRequest = ({url, method, headers, contentType, body}, folderId, parentFolderId) => { expect(url).toEqual(`https://api.box.com/2.0/folders/${folderId}?fields=id`); expect(method).toEqual('PUT'); expect(headers.Authorization).toEqual('Bearer access_token'); expect(contentType).toEqual('application/json; charset=UTF-8'); const bodyObj = JSON.parse(body); expect(bodyObj.parent.id).toEqual(parentFolderId); }; /** * 異常系のテスト * @param errorMsg */ const assertError = (errorMsg) => { let failed = false; try { main(); } catch (e) { failed = true; expect(e.message).toEqual(errorMsg); } if (!failed) { fail('No error was thrown.'); } }; /** * conf_FolderId にデータ項目を設定しているが、そのデータ項目の値が空でエラーになる場合 */ test('Folder ID to move is blank', () => { prepareConfigs(null, '12345'); assertError('Folder ID to move is blank.'); }); /** * conf_FolderId にルートフォルダの ID が設定されていてエラーになる場合 */ test('Root folder cannot be moved', () => { prepareConfigs('0', '12345'); assertError('Root folder cannot be moved.'); }); /** * conf_ParentFolderId にデータ項目を設定しているが、そのデータ項目の値が空でエラーになる場合 */ test('Destination Folder ID is blank', () => { prepareConfigs('12345678', null); assertError('Destination Folder ID is blank.'); }); /** * conf_FolderId と conf_ParentFolderId に同じ値が設定されていてエラーになる場合 */ test('Folder cannot be moved to itself', () => { prepareConfigs('12345', '12345'); assertError('Folder cannot be moved to itself.'); }); /** * ファイル移動失敗 * Box への API リクエストでエラー */ test('Failed to move - PUT Failed', () => { prepareConfigs('87654321', '54321'); httpClient.setRequestHandler((request) => { assertRequest(request, '87654321', '54321'); return httpClient.createHttpResponse(400, 'application/json', '{}'); }); assertError('Failed to move. status: 400'); }); /** * ファイル移動成功 * 移動先フォルダの ID を文字型データ項目で指定 */ test('200 Success - String type data item', () => { prepareConfigs('12345678', '12345'); httpClient.setRequestHandler((request) => { assertRequest(request, '12345678', '12345'); return httpClient.createHttpResponse(200, 'application/json', '{"id": "12345678"}'); }); //