2021-11-25
(C) Questetra, Inc. (MIT License)
2
Delete folders on Box. You can delete multiple folders at once. When you delete multiple ones, you should write one folder ID on each line.
Box 上のフォルダを削除します。一度に複数の削除が可能です。複数削除する場合、データ項目では1行につき1つずつIDを書くようにしてください。
https://support.questetra.com/bpmn-icons/box-folder-delete/
https://support.questetra.com/ja/bpmn-icons/box-folder-delete/
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAD/UlEQVRYR82XbWibVRTHf/fJ2jXJ
2qSd65x11aC0YgJWZUwEWZ0D/SJaHYKKmgykbL70Bf2k4IYwZOKWOhFRMM9QZxHUjSEo+7AOlA1E
7WSRThzdqq1tWWxjm7Zrk1y5N+SlydM2XdvN50sebs5z7u+e8z/n3iu4xo9Y1Pz+3x6F5BagAYQb
oX4BSTfIUaAbIboIeY8W63dhAH+vGyZaQLYihLsox1LBiCA4OjA9CmzOZ34Af9gP8kDRE+dPo0GM
AObtR+YimBvAfzaIEC1FrXghIymDmL42KzNrgMBZE8RzC/ld1P8SE9MbyP+mEGA5V16Ykg5MX2vu
8GwAlXNBaFErW6yxFE25msgCaLXHeq9YcMWCaGE6PenqyAEI70bwRrF+lmQn2YPp3a18ZAECYVWv
rrTj0I4bqHLaeOTgn0uay/JjFQXTV5kFUB1OyK9zjYeC9ThKBeW7epYfQHfPlBZSEbBQ/nBHCmDN
zpUCkLoiUgCBcBegenzmUQDO1QaHT0dpqC3T4yd7YrzyxZB+33V/Jds3VbBmtUH/SJzmQwN07ryR
7r4p2jtTNh88uwHPdaU8uP+iVRRPEvI2pgEuADflA6wrtxV8+GPvJBcuzfDY3RXYjBzgfxNU2A0M
AW2fD1Jht/FmUzWx6STuFyyiqDYw03tnGkDmz6QioADUZO98F8HtMHh521o9lpQwNSMxvx/l9PkJ
XtpWxSaPnZFYArfDRmQ8oeFcDhvvHv+Hts5Bax2FvGJeAFUFW97q5Yc/JrWDVx9ay74n1uv3Iz+P
0fRetkIiB+uxlxj80jfFvbfatc2Jnhhb91mGPwWUA1CQgoH9dawrX0VN+zmGxxLa/qnNLj5rrtHv
ShtPf9ifWdnfB+p02X7z6zhNd5Xr8U9PRXnmo6zN7DDIM4R8DXOK8NRrHu65xY7K+QNvX2SDaxXH
Wmqpu75U+1FhVsL78qcxDjfX8ORml05BeZmN6YTUDUalQenh/RMjC4jQogwb6x189eJGKp02YpeT
2AxBWYmgLzLDwGhcw8UTaJG57AaT0xIlJGXTcTyi09HcWMml8QTVLecKAWRuGVo0IvXF1tuc7N1e
rUspnpSE+y+z4+N+/hqJ88nzNdxX58BRajAYjbPn6DB7H1/P70PTPNzRpyf8tr2WjVUleF8/bwGQ
24jU33mt2Fq2yzYaJeTVx7v/0WaktmMxoaohsyEt23pnO4oiHTcXbsfK6JoeSNKUK3oky54D0tNd
vUMp8hAhnz8/rVfpWF648vkjkEmHPqiYSxBmFCn8V3YxyUDoq1krAnWcLrZCokjU1Sy4tKtZfsJS
l9NGhGgA6QZxR8pEngExipTdYHTNt+LiNbBCTSDf7X8FbX8wYecpbwAAAABJRU5ErkJggg==
{
configs.put('OAuth2', 'Box');
const folderIdDef = engine.createDataDefinition('フォルダ ID', 3, 'q_folderId', 'STRING_TEXTAREA');
configs.putObject('FolderIdsItem', folderIdDef);
engine.setData(folderIdDef, folderId);
return folderIdDef;
};
/**
* リクエストのテスト
* @param url
* @param method
* @param id
*/
const assertRequest = ({url, method}, folderId) => {
expect(url).toEqual(`https://api.box.com/2.0/folders/${folderId}?recursive=true`);
expect(method).toEqual('DELETE');
};
/**
* フォルダ ID が null の場合
*/
test('IDs is null', () => {
prepareConfigs(configs, null);
try {
execute();
fail('not come here');
} catch (e) {
expect(e.message).endsWith("Folder IDs aren't set.");
}
});
/**
* フォルダ ID が空白の場合
*/
test('IDs is blank', () => {
prepareConfigs(configs, '\n\n\n'); //空行が複数行あるだけ
try {
execute();
fail('not come here');
} catch (e) {
expect(e.message).endsWith("Folder IDs aren't set.");
}
});
/**
* フォルダ ID の数が最大リクエスト数を超えた場合
*/
test('Number of Folder IDs is over the limit', () => {
let ids = '';
for (let i = 0; i <= httpClient.getRequestingLimit(); i++) {
ids += `f${i}\n`;
}
prepareConfigs(configs, ids);
try {
execute();
fail('not come here');
} catch (e) {
expect(e.message).endsWith('Number of Folder IDs is over the limit.');
}
});
/**
* 削除するフォルダが複数の場合(この場合、最大リクエスト数)
*/
test('Succeed to delete multiple folders', () => {
let ids = '';
for (let i = 0; i < httpClient.getRequestingLimit(); i++) {
ids += `f${i}\n`;
}
const folderIdDef = prepareConfigs(configs, ids);
let requestCount = 0;
httpClient.setRequestHandler((request) => {
assertRequest(request, `f${requestCount++}`);
return httpClient.createHttpResponse(204, 'application/json', '{}');
});
//