首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在什么情况下,一个补丁的事件参与者可以导致删除该事件在谷歌日历?

在什么情况下,一个补丁的事件参与者可以导致删除该事件在谷歌日历?
EN

Stack Overflow用户
提问于 2019-08-29 18:47:46
回答 1查看 50关注 0票数 0

我为我工作的学校开发了一个应用程序,在我们的注册系统和Google之间搭建了一座桥梁。简而言之,它根据注册系统的数据填充多个日历(教师、学生、教室和包含所有课程的日历),它允许教师注册每个班级的学生出勤率和家庭作业,它还可以做许多其他事情。

该应用程序还允许教师在注意到已注册的学生未作为日历事件中的助理输入时触发对学生列表的更新。

在守则中:

  1. 我打电话给注册系统,以获得这门课程的最新学生名单。
  2. 我调用Google来获取表示日历中的过程的事件的递归。
  3. 我调用Google对每次重复的“与会者”数组进行批处理 this.updateEvent =函数( calendarId,eventId,resource) {返回$window.gapi.client.calendar.events.patch({ calendarId: calendarId,eventId: eventId,资源:资源});};this.batchUpdateEvents =函数(calendarId,eventList) { var计数器= 0;var batchPromises = [];for(var i=0;i< eventList.length;i++) { if(counter === 0) { var ===0= $window.gapi.client.newBatch();} var event = eventListi;batch.add(this.updateEvent(calendarId,event.id,event.resource),{id: event.id});counter++;if(计数器=== 50 \I_( === )事件列表长度-1){计数器= 0;batchPromises.push(batch.then());} return $q.all(batchPromises).then(响应){ var updateResults = {};Response.forEach(BatchResponse){ updateResults = Object.assign(updateResults,batchResponse.result);};返回updateResults;};

它在大多数情况下运行良好,但定期删除与课程相关的所有日历事件。我不知道如何重现这个错误,因为所有的代码都是用javascript编写的,所以我无法记录错误。

在这个过程中,这是我的应用程序与Google交互的2次。我真的不明白到达请求是如何删除任何内容的,所以我假设这批补丁请求就是问题所在。虽然我在补丁中包含的唯一东西是与会者数组,但实际上很难把它弄乱到那个程度。

有人知道我该调查的方向吗?我有点不知所措。

EN

回答 1

Stack Overflow用户

发布于 2019-08-29 19:30:33

batchUpdateEvents可能正在接收一个有效的calendarId,但是一个具有空白值的eventList。如果是这种情况,那么在进入for循环之前检查eventList.resource中的有效值将防止保存空事件值(这可能会导致Google删除事件)。如果这个脚本只应该添加事件而不删除它们,那么在将它添加到批处理之前检查event.resource也是有益的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57716215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档