2022-11-28
(C) Questetra, Inc. (MIT License)
2
This item deletes a Shared Link URL of the specified file on Box. An error will occur if there is no shared
link.
この工程は、Box 上の指定ファイルの共有リンク URL を削除します。共有リンクが無い場合は、エラーとなります。
https://support.questetra.com/bpmn-icons/service-task-box-file-link-delete/
https://support.questetra.com/ja/bpmn-icons/service-task-box-file-link-delete/
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");
const fileIdDef = engine.createDataDefinition(
"ファイル ID",
3,
"q_fileId",
"STRING_TEXTFIELD"
);
configs.putObject("conf_FileId", fileIdDef);
engine.setData(fileIdDef, fileId);
return fileIdDef;
};
/**
* GET リクエストのテスト
* @param url
* @param method
* @param fileId
*/
const assertGetRequest = ({ url, method }, fileId) => {
expect(url).toEqual(
`https://api.box.com/2.0/files/${fileId}?fields=shared_link`
);
expect(method).toEqual("GET");
};
/**
* PUT リクエストのテスト
* @param url
* @param method
* @param contentType
* @param body
* @param fileId
*/
const assertPutRequest = ({ url, method, contentType, body }, fileId) => {
expect(url).toEqual(
`https://api.box.com/2.0/files/${fileId}?fields=shared_link`
);
expect(method).toEqual("PUT");
expect(contentType).toEqual("application/json; charset=UTF-8");
const bodyObj = JSON.parse(body);
expect(bodyObj.shared_link).toEqual(null);
};
/**
* 正常系 / 文字型データ項目で指定されたファイル ID
*/
test("Success / fileId specified by String Data", () => {
const fileIdDef = prepareConfigs("12345");
let reqCount = 0;
httpClient.setRequestHandler((request) => {
if (reqCount === 0) {
assertGetRequest(request, "12345");
reqCount++;
return httpClient.createHttpResponse(
200,
"application/json",
JSON.stringify(HAS_SHARED_LINK)
);
}
assertPutRequest(request, "12345");
return httpClient.createHttpResponse(
200,
"application/json",
JSON.stringify(NO_SHARED_LINK)
);
});
execute();
expect(engine.findData(fileIdDef)).toEqual("12345");
});
/**
* 正常系 / 固定値で指定されたファイル ID
*/
test("Success / fileID specified with fixed value", () => {
configs.put("conf_OAuth2", "Box");
configs.put("conf_FileId", "98765");
let reqCount = 0;
httpClient.setRequestHandler((request) => {
if (reqCount === 0) {
assertGetRequest(request, "98765");
reqCount++;
return httpClient.createHttpResponse(
200,
"application/json",
JSON.stringify(HAS_SHARED_LINK)
);
}
assertPutRequest(request, "98765");
return httpClient.createHttpResponse(
200,
"application/json",
JSON.stringify(NO_SHARED_LINK)
);
});
execute();
});
/**
* ファイル ID を文字型データ項目で指定し、値が空
*/
test("FileID is null", () => {
prepareConfigs(null);
expect(execute).toThrow("File ID is blank");
});
/**
* GET が失敗
*/
test("GET Failed", () => {
prepareConfigs("12345");
httpClient.setRequestHandler((request) => {
assertGetRequest(request, "12345");
return httpClient.createHttpResponse(400, "application/json", "{}");
});
expect(execute).toThrow("Failed to get file information. status:400");
});
/**
* 共有リンクがない
*/
test("No shared link", () => {
prepareConfigs("12345");
httpClient.setRequestHandler((request) => {
assertGetRequest(request, "12345");
return httpClient.createHttpResponse(
200,
"application/json",
JSON.stringify(NO_SHARED_LINK)
);
});
expect(execute).toThrow("Failed to Delete Shared Link. \n The file(ID:12345) doesn't have a Shared link.");
});
/**
* PUT 失敗
*/
test("PUT Failed", () => {
prepareConfigs("12345");
let reqCount = 0;
httpClient.setRequestHandler((request) => {
if (reqCount === 0) {
assertGetRequest(request, "12345");
reqCount++;
return httpClient.createHttpResponse(
200,
"application/json",
JSON.stringify(HAS_SHARED_LINK)
);
}
assertPutRequest(request, "12345");
return httpClient.createHttpResponse(400, "application/json", "{}");
});
expect(execute).toThrow("Failed to delete. status:400");
});
]]>