通过用户在集合中添加Timeoff无法正常工作

时间:2016-06-09 15:46:02

标签: attask

我发现了一些较旧的Stackverflow线程与此问题完全相同,但我无法使解决方案正常工作。

基本上,我想添加时间,我已经了解到,根据[1],唯一的方法是通过发出PUT请求,将现有对象添加到集合中并添加没有ID的新对象。

我已经复制了[1]中所示的例子:

https://[DOMAIN].attasksandbox.com/attask/api/v5.0/RESVT?method=POST&sessionID=330051c6aaa24cb48edb3eab113d3a5a&updates=[{ "userID": "57270ab200030c6814a20577576f8399", "startDate": "2016-08-12", "endDate": "2016-08-15" }, { "ID": "575e7a27001a0dd8312a29defd886b78", "objCode": "RESVT", "startDate": "2016-06-01T00:00:00:000+0200", "endDate": "2016-06-04T00:00:00:000+0200", "userID": "57270ab200030c6814a20577576f8399" }]&atomic=true

执行请求时的响应:

{ "data": [ { "objCode": "RESVT", "ID": "575e7410001a031e06534a49b3032fd1" }, { "objCode": "RESVT", "ID": "575e7410001a031f1ee4a0379c96d287" } ] }

但是我在用户的Timeoff页面(以及通过API搜索timeoff对象时)中看到的唯一时间是updates-parameter中的 last 对象。在上面的例子中,它将是6月1 - 4日。如果我重新安排更新数组,那么6月1 - 4日是列表中的第一个,那么我会看到8月12日到15日。

我也尝试过使用method = PUT而不是method = POST,但后来我收到了这条消息:

{ "error": { "class": "java.lang.IllegalArgumentException", "message": "Must specify an ID for each object that is edited" } }

我做错了什么?

[1]:php - AtTask API - 添加时间 - 堆栈溢出 AtTask API - Adding Time Off Hours

1 个答案:

答案 0 :(得分:0)

您遇到的问题是您正在RESVT对象而不是USER对象进行更新,因此每次调用都会向用户添加一个新项目timeOff替换所有以前的条目,因此您只看到Last on的原因是因为它是最后一个运行并且所有previouse条目被删除。

要纠正此问题,您需要在用户对象上进行更新并更新保留时间集合。

您可以通过以下呼叫执行此操作。

font-family: "Comic Sans MS", cursive, sans-serif;