2023-09-28 (C) Questetra, Inc. (MIT License) 3 2 This item gets a list ID on Trello. この工程は、Trello のリスト ID を取得します。 https://support.questetra.com/bpmn-icons/service-task-trello-listid-get/ https://support.questetra.com/ja/bpmn-icons/service-task-trello-listid-get/ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAzBJREFUWEfF l11IFFEUx/93xnH9iPzow0jBaIOsSNJWI+glX6KHJLcvkiKwF7WXolJ76iWiSLBeUortoSSLcDfp pZfwJXrQVV8MIsNEjFbwI5T1e/bGndnZnRlnZ8ZZau/b3HvuOb97zrnnniFI8SC27Z8KZoGPeMHz x0FpGSh2gSBP2k8xC4IxEDIEUeyFyPnxwbNgR7c1wLm+HRBJM0DqAWTYUQpgCaAd4OlDvKsMme0x B6gJ1oOgFUC2TcN6sTAobiHg6Ui0PzGAN/gUQINDw/pt7fB7Go10GQPU9L8GIRfZhgyBQ3qadaSM lM8tivFpSrsQqKjVy63XHD15aXEmAs1u7C5wOXbCyhqF79MUGp+NKzrWeUILIMe8nUl/uV+Co3ud hl7L7G4cxujksjxJ0aDOiTiAlO3cDyXhlt6UwyU4c73eZQ8CIdzp/KVMh8FH9ii3I27B298GkOuK 1PLbck3s5xdF/AnLMXUJHLbnpMXsrIoUodlV6ZvjCHbmCSAq9taeSdx+OaHioo/hr7jBJmQxVmQE TKvvuRogQgH+7IDmYCFfKQpyBWmutu0nuj7PxNZ914pRV7U19r0eAEtYxRZWrGSA032XwHGv1BbU ACyZXBcGNQBjHQdRvC1dmjt5bwQfh+biBq8U4WZ1gRkAEIlcxvvKThngzIAPlNb9VwBCXqD78FUZ wBtkxyv7rwDAEPyechmgJjgTe1iiFP88BOwBC3jyFQ9QTYABbASAZThLNGX0tLhRXZFrngNs1e+J XhZvMCkApovdFDbYidRXkM0Z3AJZOAaQZAj03tN/GwLoQpBUEjoC0CShxTVcEymE89o6MPG8FIX5 ciGyGoYe0FxDi0LEDIxPrWB6fk2ylZnOoaTQbnOUIAc0hciiFFud0GrduhRLxcj8MbIyYrb+qGcS TaaPEdute46/PjmA/UX23WwGcKTlG/pGwopIgueYLasakhOHNqO7yY1sF5fM4dE7PI+qu9/jOhI2 JIqIrhk9tm8TcrJ4RxCDowv4He0TogosWjLFjKopdWTZaJPtpjSBJ5IE2WBbHvNEKn9MFIiU/pqp /Z6yn9Mkg2+1/S+COKkwjkUALAAAAABJRU5ErkJggg== { const authKey = httpClient.createAuthSettingToken( 'Trello', 'TrelloApiKey', ); configs.putObject('conf_ApiKey', authKey); const authToken = httpClient.createAuthSettingToken( 'Trello', 'TrelloApiToken', ); configs.putObject('conf_ApiToken', authToken); configs.put('conf_BoardId', boardId); configs.put('conf_ListName', listName); // 文字型データ項目を準備して、config に指定 const listIdDef = engine.createDataDefinition('リスト ID を保存するデータ項目', 3, 'q_ListId', 'STRING_TEXTFIELD'); configs.putObject('conf_ListId', listIdDef); engine.setData(listIdDef, '事前文字列'); return listIdDef; }; /** * 異常系のテスト * @param func * @param errorMsg */ const assertError = (func, errorMsg) => { try { func(); fail(); } catch (e) { expect(e.toString()).toEqual(errorMsg); } }; /** * GET リクエスト のテスト * @param url * @param method * @param boardId */ const assertRequest = ({ url, method }, boardId) => { expect(url).toEqual(`https://api.trello.com/1/boards/${encodeURIComponent(boardId)}/lists?key=TrelloApiKey&token=TrelloApiToken`); // 認証設定のトークンのテスト時の値は token expect(method).toEqual('GET'); }; /** * GET リクエストで失敗 存在しないボード ID 、権限のないボード ID など */ test("GET Failed", () => { prepareConfigs('234BCD', 'test'); httpClient.setRequestHandler((request) => { assertRequest(request, "234BCD"); return httpClient.createHttpResponse(404, "application/json", "{}"); }); assertError(main, 'Failed to get list information. status: 404'); }); /** * GET リクエストのレスポンス(ボード内のリスト情報を取得)を準備 */ const responseObj = [ { "id":"1234567890abcde", "name":"作業中", "closed": true, "pos": 2154, "softLimit": "", "idBoard": "", "subscribed": true }, { "id": "12345", "name": "完了", "closed": true, "pos": 2154, "softLimit": "", "idBoard": "", "subscribed": true }, { "id": "6789012345fghij", "name": "ToDo", "closed": true, "pos": 2154, "softLimit": "", "idBoard": "", "subscribed": true } ]; /** * 成功 - ボード内の 1 つ目のリストにリスト名がある場合 */ test("Success - first list", () => { const listIdDef = prepareConfigs('123ABC', '作業中'); httpClient.setRequestHandler((request) => { assertRequest(request, "123ABC"); return httpClient.createHttpResponse(200, 'application/json', JSON.stringify(responseObj)); }); main(); expect(engine.findData(listIdDef)).toEqual('1234567890abcde'); }); /** * 成功 - ボード内の 3 つ目のリストにリスト名がある場合 */ test("Success - third list", () => { const listIdDef = prepareConfigs('123ABC', 'ToDo'); httpClient.setRequestHandler((request) => { assertRequest(request, "123ABC"); return httpClient.createHttpResponse(200, 'application/json', JSON.stringify(responseObj)); }); main(); expect(engine.findData(listIdDef)).toEqual('6789012345fghij'); }); /** * 失敗 リスト名が存在しない */ test("Failed", () => { const listIdDef = prepareConfigs('123ABC', 'test'); httpClient.setRequestHandler((request) => { assertRequest(request, "123ABC"); return httpClient.createHttpResponse(200, 'application/json', JSON.stringify(responseObj)); }); assertError(main, 'List name: "test" not found in the Board'); }); ]]>