attask 中的休假存储为一个集合,当您对集合进行编辑时,它会将集合数据替换为更新中提供的日期。这就是您的调用删除现有数据的原因。
要添加新的休假时间,您需要拨打 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 中执行此操作的唯一方法。