1

我想将用户的最后时间条目标记为当前时间条目。换句话说,我想清除end给定时间条目的字段,以表明它尚未完成,它仍在运行。

有可能这样做吗?

我尝试在工作区端点上使用更新时间条目,如下所示:

curl -H 'Content-Type':'application/json' \
  -H 'X-Api-Key':'API_KEY' \
  -X PUT https://api.clockify.me/api/workspaces/WORKSPACE_ID/timeEntries/TIME_ENTRY_ID \
  -d '{"end":null}'

但响应代码为 400,响应如下:

{"message":"text","code":3002}

这个错误代码是什么意思?

4

1 回答 1

1

因此 UpdateTimeEntryRequest ( https://clockify.github.io/clockify_api_docs/#/definitions/UpdateTimeEntryRequest ) 的文档有点错误或不完整。我通过一些测试弄清楚了,这是您需要做的:

首先,您需要确保您拥有时间条目的当前数据,特别是开始日期和计费状态(因为这是 API 调用中仅有的两个“必需”字段)。您收到 400 bad request 因为您缺少这两个字段 - 错误消息显然在这里没有帮助,但是 400 响应代码表示“由于语法无效,服务器无法处理客户端发送的请求。”,这是有道理的,因为您的输入无效。

假设您已经有时间条目信息(这是我可以看到您如何知道 ID 的唯一方法),您可以重新创建整个 UpdateTimeEntryRequest 数据,然后将结束字段清空或完全忽略,如下所示:

{
  "start": START_FROM_THE_TIME_ENTRY,
  "billable": BILLABLE_FROM_THE_TIME_ENTRY,
  "description": DESC_FROM_THE_TIME_ENTRY,
  "projectId": PROJECT_ID,
  "taskId": TASK_ID,
  "end": null,
  "tagIds": TAGS_ARRAY
}

根据我的测试,这会重新启动计时器。如果您遗漏任何字段,这些字段将被重置,例如:

{
  "start": START_FROM_THE_TIME_ENTRY,
  "billable": BILLABLE_FROM_THE_TIME_ENTRY
}

将重新启动计时器,但它会清除描述、项目/任务和标签,这可能不是可取的。

于 2018-12-12T20:10:12.500 回答