2025-01-21
(C) Questetra, Inc. (MIT License)
3
2
This item searches for the folder with the specific name, directly under the specified folder on Google Drive.
この工程は、Google ドライブ の指定フォルダ直下に、特定の名前のフォルダがあるかどうか調べます。
https://support.questetra.com/bpmn-icons/googledrive-foldersearch/
https://support.questetra.com/ja/bpmn-icons/googledrive-foldersearch/
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA71JREFUWEfF
V11oFFcU/s7M7K6TRs1vK1VUSGmbCK2SB6VFgpLWlYC2omIDLaUlCBGfimwWgw9Fu9mW0ocSoUhE
aKmlgUgUyShiEUWSh4AW7L9CS5PGZhuTJmTi7swcmUn3d+ZOdtGy87Ts3HvOd77zfefeIZT5oVLy
h2MP3wTMViJqZqABQM1/+6cIuMvMo4B8RYuGzhUbd0kArT1TK2VWj5CEg2DUFRWYkGALX5ikf3Kl
q2bGb48vgJ0x/T2WEC86cWEmQoIsRIai6mkRCCGAcHy+F0ydRVW81CLik1qk4pDXMk8A4bj+NRhv
LRW3pPeEs1pEbXeTVPDPE63clc3NRB4DTs8JfX6V7d2soKVRgizlk5cyGBdvmbj8velLDDHez9VE
JoqtdoXU3/wE19Io452tCtQgUP2Uu3u/TliInE1CT/pgICQM1p9LuyMTZUdMP06Eo37wYweC2LhO
wsQ0o245QZHzVxsm8O2IgS+vG74sMOPEpajabS/KAAjH9Um/6vdvUdD+qoKQAiykgFmdUb/CzcLE
DCN+PoWfxi0xCEJCi6j1GQDOhCNrQLRjdQ2h+40g1tdnE/4zy6gIkdOO3Mdi4OodE59eTPmbhKU9
9sR0IoZj870gsec7tivY1axAkbIxDQuY/JexaiWBCoiYnmd8fsnAzV98BMl8UotWHHK27uzRhxnY
7AX55XUSjrQFULvcTbdNs92G2kr3u1u/W4h+I1YjASNDXeqWRQZ69EnAe85Hdwew9QXZVeXsAqP3
soENayS0bZJR4EpHJ2eupTA4KmQhoXWpi00N9+j2qhyCF7l4/SUZHdsUVC7Lr9Du87UfTXx8IYW1
dYRje4JYXe1m4d7fjI8GkxibYi9yLa1LlYUAbHEd3xdE0xoXLhQqPdchuZlsnZwfNXDqqqct8wC4
WlBK0FLA5gDMtsBLhJ+9HcSLz7qrH3/AmFtgBJR8ym0uQwG4tGJawNBtE/3D+Szki9DDhrubZbzb
EsCyQBaz3wASmX7sAePDgST+SBToINeGokF0Yn8Qm9ZLTlXMwF/TjKdXuEewKHnSAPpHDHx1w0MD
uYPIcYLHKH7leRmHdyioqiCHdltU9u9inx/+tNDd73E4FY5iO6DoMPqgLYBtTTLuzzBWVZHL7yIw
cw8Zfd8Z0G6754DnYSQ6jm2fd74WQMMzhMpQcdXb7br+s4nYoMd5IDqOnZFcxIWkWPpF64QXkvSG
sl7JsiDKeCn9X5go9VqeBlHWD5M0iLJ+mhUquSwfp49ru6X2PwLQFL0wM02BagAAAABJRU5ErkJg
gg==
{
// 認証設定を作成し、指定
const jwtAuth = httpClient.createAuthSettingOAuth2JwtBearer('JWT', scope, '', '', privateKeyId, privateKey, serviceAccount, '');
configs.putObject('OAuth_V2', jwtAuth);
configs.put('ParentFolderId', folderId,);
configs.put('FolderName', folderName);
// 文字型データ項目を準備して、config に指定
let dataType = 'STRING_TEXTAREA';
if (isSingleLine) {
dataType = 'STRING_TEXTFIELD';
}
const idDef = engine.createDataDefinition('ファイルID', 3, 'q_ids', dataType);
configs.putObject('FolderIdItem', idDef);
engine.setData(idDef, '事前文字列');
const urlDef = engine.createDataDefinition('表示URL', 4, 'q_urls', dataType);
configs.putObject('WebViewUrlItem', urlDef);
engine.setData(urlDef, '事前文字列');
return {
idDef,
urlDef
};
};
/**
* 異常系のテスト
* @param errorMsg
*/
const assertError = (errorMsg) => {
let failed = false;
try {
main();
} catch (e) {
failed = true;
expect(e.message).toEqual(errorMsg);
}
if (!failed) {
fail();
}
};
/**
* スコープが空
*/
test('Scope is empty', () => {
const privateKeyId = 'key-12345';
const serviceAccount = 'service@questetra.com';
prepareConfigs('', privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1');
assertError(`Scope ${SCOPE} must be included in the scope.`);
});
const ANOTHER_SCOPE = 'https://www.googleapis.com/auth/cloud-platform';
/**
* スコープに必須スコープを含まない
*/
test('Required scope is missing', () => {
const privateKeyId = 'key-12345';
const serviceAccount = 'service@questetra.com';
prepareConfigs(ANOTHER_SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1');
assertError(`Scope ${SCOPE} must be included in the scope.`);
});
/**
* 秘密鍵 ID が空
*/
test('Private Key ID is empty', () => {
const privateKeyId = '';
const serviceAccount = 'service@questetra.com';
prepareConfigs(SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1');
assertError('Private Key ID is required.');
});
/**
* カスタム秘密情報1 に設定されているサービスアカウントが空
*/
test('Service Account is empty', () => {
const privateKeyId = 'key-12345';
const serviceAccount = '';
prepareConfigs(SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1');
assertError('Service Account must be set to Custom Secret 1.');
});
/**
* フォルダ名が空でエラーになる場合
*/
test('Folder Name is blank.', () => {
const privateKeyId = 'key-12345';
const serviceAccount = 'service@questetra.com';
prepareConfigs(SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', '');
});
/**
* 検索したフォルダの ID を保存する文字型データ項目と検索したフォルダの表示 URL を保存するデータ項目の両方が未設定でエラーになる場合
*/
test('Neither of Data Items to save result are set.', () => {
const privateKeyId = 'key-12345';
const serviceAccount = 'service@questetra.com';
prepareConfigs(SCOPE, privateKeyId, PRIVATE_KEY, serviceAccount, 'folderId-12345', 'フォルダ1');
// ID を保存する文字型データ項目を未設定に上書き
configs.put('FolderIdItem', '');
// URL を保存する文字型データ項目を未設定に上書き
configs.put('WebViewUrlItem', '');
//