我正在使用Chrome Advanced Rest Client来测试AtTask API。我找到了很多东西,但也得到了一些意想不到的结果。最新的是将新记录添加到AtTask Time Off Calendar。
我可以轻松地为日历添加时间。我使用POST方法,使用以下URL:
https://COMPANY.attasksandbox.com/attask/api/v4.0/resvt?sessionID=SESSIONIDGOESHERE&userID=USERIDGOESHERE&startDate=2014-11-24T00:00:00&endDate=2014-11-28T23:59:59
此标记为11月24日至11月28日期间的所有日期。很棒,到目前为止。问题是它删除了指定用户的所有其他rime-off记录。我没有发布DELETE,所以我不理解清除记录的情况。更重要的是,我不了解如何防止它们被删除。
再一次,先谢谢。
答案 0 :(得分:2)
attask中的time-off存储为集合,当您对集合进行编辑时,它将使用更新中提供的日期替换集合数据。这就是您的呼叫正在删除现有数据的原因。
为了增加新的休假时间,您需要拨打2个电话1以获得现有的休息时间,并使用新电话号码输入数据。
注意 - 我正在使用自己的数据,所以日期对我来说有点不同,但概念是相同的
您的来电将是
GET /api/resvt/search?userID=[userID]&fields=endDate,startDate,ID
返回类似
的内容{
"data": [
{
"ID": "547debb6000dea62198bd66b7c73e174",
"objCode": "RESVT",
"endDate": "2014-07-08T23:59:00:163-0600",
"startDate": "2014-07-08T00:00:00:163-0600"
},
{
"ID": "547debb6000dea61b8c695ba24918fe8",
"objCode": "RESVT",
"endDate": "2014-02-13T23:59:00:329-0700",
"startDate": "2014-02-13T00:00:00:329-0700"
}
]
}
完成此操作后,您可以使用用户对象上的更新命令将新时间添加到集合中。请注意,您正在为系统中已有的休假提供ID,而新的时间 - 您没有提供ID
PUT /attask/api/v4.0/user/[userID]?&sessionID=[sessionID]&updates={reservedTimes: [ { "ID": "547debb6000dea62198bd66b7c73e174", "objCode": "RESVT", "endDate": "2014-07-08T23:59:00:163-0600", "startDate": "2014-07-08T00:00:00:163-0600" }, { "ID": "547debb6000dea61b8c695ba24918fe8", "objCode": "RESVT", "endDate": "2014-02-13T23:59:00:329-0700", "startDate": "2014-02-13T00:00:00:329-0700" }, { "objCode": "RESVT", "endDate": "2014-02-14T23:59:00:329-0700", "startDate": "2014-02-14T00:00:00:329-0700" } ] }
这有点笨重而复杂,但目前只能在API中执行此操作。