AtTask API - 添加时间关闭时间

时间:2014-11-21 21:34:13

标签: php api rest soap attask

我正在使用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,所以我不理解清除记录的情况。更重要的是,我不了解如何防止它们被删除。

再一次,先谢谢。

1 个答案:

答案 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中执行此操作。