START_EVENT 2022-08-18 (C) Questetra, Inc. (MIT License) 2 This item starts a process when Event's start time has passed on Google Calendar. このアイテムは、Google カレンダーに登録されている、予定の開始時刻を経過すると、プロセスを開始します。 https://support.questetra.com/bpmn-icons/start-event-google-calendar-event-started/ https://support.questetra.com/ja/bpmn-icons/start-event-google-calendar-event-started/ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEt0lEQVRYR8VXX2xTVRj/ndv2tmv3 p1cGDyqM8SBRx9jcNBEMW7apSMKYMWoiD9sSEhITQ33AB23DyOaDJmoxGqPRbBgwEhMdUSRKS4ri XMA/I4jJhkZQIEhgbdm69ra395hz72572t5u3UbwvDS99/vO+Z3v+/2+77sE//MiCzm/vT/cRYjQ AtAGAG4A7JetMQARgIwBJBTwVh4udd95AbT2hd1Wm7CLqtRDiHbovItSRIhA/EpK3RfqkyJzOcwJ oO3VcA9RyVulHpx/EAMC0N6gTxouBqIogPb+sJ8Qsmve65ZkQPwBb9WLZqamANoHwkMEpLukvUs0 oiBDQW9Vb755AQD+5utrrGirs8FmmZcqpjAmp1UcPJlAPKm/ppTuC/okD2+cszPLuUDJoGHwTm85 1t5p0f5ejaoYnVCwuUGEw2Z+7ZkkcPy3JDautUFyEagUGD6dxHvH4hkHSumTPCcyABjbLRbyF0+4 D3dWoKZa0Jwvh1WEzqXQ9aAdLrs5gJgMfP2rjLY6EcvK9a2PjiXx5hEeACLpNK011JEB0NEf7gMh e4ytm9dY0V4ngpaYYzMzgQBTCYpDIwlcn+J2onRvwCf1MZ8sgIEwKyRVxkb+7nLcf7ce/qWstAp8 fkrGB8EElwZEgj63lAGgVzjyBX/Q69tdaFxtXcrZmm8qDRwakbH/uyyAWUJqXNAiYKb53VudeKy+ CNsWAIsp4N1v4/jmzKwUZn0NRWgAOvrDIRDSwu/b0+LAMw/bYeOy8PcNFYOhBG5MqRo/Hq0X4RQB Rr7xKwrGLirY1mTHsoqsuCIxijeOzGD0vJILm9ITAZ/UqkdgIHyBgNTwFtuaRexoK8tIjpHp4EkZ Tz1kR3UlwU9/KojJVJPc8GkZVU4BlybT6Gyyo5oDwNTzyqcxXJ5U8+M2FvC6G/UIDEQKyL7pXhs8 T5Shoky/DdM0y6do1Zl7aVLFqT9S6Gy2g7Gdke3Ln5NgfjyA81fTeP6jadOkBbxuUhRA3UoLXu5y YXllbhWUFeBaVMWxs0m03idizQq9TjBwZgBGJhTs+Sw2NwCzFNx1h4DnNjrgduUCiMsUCYXi93/S WFUtYGW1ThIWgdGJFNatsqLSmfUZv5LGx3kKmFXBmaBPaihKwgdqrXip05mpaPlX+DdK8dUvMrY/ 4tB4UiwCjJi7D5hEIIeEJq23Y50NL2x2aixni/WCHycUbG0SYRWAUgFcvK5ix/tTBSnIkaFZIere 5MCzG7IyZCRkveDaTRW1KywYGdf7Qu08HGAl+LXDM5pE+WU0paKl2LOlDFsaxWytZu0UwHSC4mac YnmFoCnCWAwgAye5BNi556xGvH10BsfPpbjzaTTglbTxrmgz2vu0CxvuuTWl+JMfEjjwvZwFYNaM tOHTigtGQ+JngQVU3gLTwpmARhUFqwvaMfPkB5KdHQ48Xi/CsshpyEAyHacYPBFH4KyegqIDieFw a4fRvIBwoTfe3MahlO4PeqWe/BzdnrHc5OZzRoBLRxchGOInpYURkkYpRc+iPkyMgzR1WOABgad0 IDQKCr+Shn9Jn2b5t2UVEwAbIhoo4CaErDcaCwFYT2cfqaG5blwyBxYW6sVb/wdgbxw/u9E3bAAA AABJRU5ErkJggg== { const quser = engine.createQuser(3, 'サウスポール', 'SouthPole@questetra.com'); configs.putObject('conf_User', quser); configs.put('conf_CalendarId', calenderId); }; const DATETIME_FORMAT = 'yyyy-MM-dd\'T\'HH:mm:ssX'; /** * GET リクエストのテスト * @param {Object} request * @param request.url * @param request.method * @param calendarId */ const assertGetRequest = ({url, method}, calendarId, limit, timestampLowerLimit) => { const expectedUrl = `https://www.googleapis.com/calendar/v3/calendars/${calendarId}/events` + `?maxResults=${limit}` + `&orderBy=startTime` + `&singleEvents=true` + `&timeMin=${encodeURIComponent(dateFormatter.format(DATETIME_FORMAT, timestampLowerLimit))}` + `&timeMax=`; // 現在時刻のテストは難しいので省略 expect(url).startsWith(expectedUrl); expect(url).endsWith(`&timeZone=${encodeURIComponent(engine.getTimeZoneId())}`); expect(method).toEqual('GET'); }; /** * 返り値の event のテスト * @param event * @param eventId * @param timestamp * @param endTimestamp * @param summary * @param description * @param htmlLink */ const assertEvent = (event, eventId, timestamp, endTimestamp, summary, description, htmlLink) => { expect(event.eventId).toEqual(eventId); expect(event.timestamp).toEqual(timestamp); expect(event.id).toEqual(`${eventId}_${timestamp.getTime()}`); expect(event.endTimestamp).toEqual(endTimestamp); expect(event.summary).toEqual(summary); expect(event.description).toEqual(description); expect(event.htmlLink).toEqual(htmlLink); }; /** * 正常系のテストケース */ test('Success', () => { const SAMPLE_RESPONSE = { "kind": "calendar#events", "etag": "\"p32gdrq7bj2tvi0g\"", "summary": "TEST", "updated": "2022-08-10T02:10:27.812Z", "timeZone": "Asia/Tokyo", "items": [ { "kind": "calendar#event", "etag": "\"2439652485198000\"", "id": "mq441nohvo8nvrukgf3jt6qols", "status": "confirmed", "htmlLink": "https://www.google.com/calendar/event?eid=bXE0NDFub2h2bzhudnJ1a2dmM2p0NnFvbHMgaGF0YW5ha2FAcXVlc3RldHJhLmNvbQ", "created": "2008-08-27T05:52:58.000Z", "updated": "2008-08-27T08:37:22.599Z", "summary": "イベント1", "description": "説明1", "start": { "dateTime": "2008-09-01T13:30:00+09:00", "timeZone": "Asia/Tokyo" }, "end": { "dateTime": "2008-09-01T14:30:00+09:00", "timeZone": "Asia/Tokyo" } }, { "kind": "calendar#event", "etag": "\"2439780885850000\"", "id": "jga9498bk1bqi33jig3bkvjssk", "status": "confirmed", "htmlLink": "https://www.google.com/calendar/event?eid=amdhOTQ5OGJrMWJxaTMzamlnM2Jrdmpzc2sgaGF0YW5ha2FAcXVlc3RldHJhLmNvbQ", "created": "2008-08-26T07:45:26.000Z", "updated": "2008-08-28T02:27:22.925Z", "summary": "イベント2", "description": "説明2", "start": { "dateTime": "2008-08-28T14:00:00+09:00", "timeZone": "Asia/Tokyo" }, "end": { "dateTime": "2008-08-28T15:00:00+09:00", "timeZone": "Asia/Tokyo" } }, { "kind": "calendar#event", "etag": "\"2440848753292000\"", "id": "7vfgnrou66tvl4qi4c5m6354qo", "status": "confirmed", "htmlLink": "https://www.google.com/calendar/event?eid=N3ZmZ25yb3U2NnR2bDRxaTRjNW02MzU0cW8gaGF0YW5ha2FAcXVlc3RldHJhLmNvbQ", "created": "2008-09-01T03:51:02.000Z", "updated": "2008-09-03T06:46:16.646Z", "summary": "イベント3", "description": "説明3", "start": { "dateTime": "2008-09-08T14:00:00+09:00", "timeZone": "Asia/Tokyo" }, "end": { "dateTime": "2008-09-08T15:00:00+09:00", "timeZone": "Asia/Tokyo" } } ] }; const calendarId = '23456789'; prepareConfigs(configs, calendarId); //