Rest Basecamp API-检索时间
我被要求查看一个报告的创建,该报告将为项目列表提取时间输入数据。给出项目名称/id,检索花费在该项目上的所有时间的总和,以及过去一周的小时数总和 但是我看不出在新的API中有什么东西可以给我时间条目,至少,检索过程不在Basecamp文档中 我一直在看这个页面,它描述了API:Rest Basecamp API-检索时间,rest,basecamp,Rest,Basecamp,我被要求查看一个报告的创建,该报告将为项目列表提取时间输入数据。给出项目名称/id,检索花费在该项目上的所有时间的总和,以及过去一周的小时数总和 但是我看不出在新的API中有什么东西可以给我时间条目,至少,检索过程不在Basecamp文档中 我一直在看这个页面,它描述了API: 到目前为止,我们所看到的是,没有一种简单的方法可以获得在任何项目上花费的实际时间。您可以做一些简单的事情,比如从项目创建到关闭/删除的时间 我们看到这样做的下注方式是查看每个待办事项列表,然后查看下面的待办事项。找出该项
到目前为止,我们所看到的是,没有一种简单的方法可以获得在任何项目上花费的实际时间。您可以做一些简单的事情,比如从项目创建到关闭/删除的时间 我们看到这样做的下注方式是查看每个待办事项列表,然后查看下面的待办事项。找出该项目每个待办事项列表下每个待办事项花费的累计时间,这将是该项目花费的实际时间(最接近的准确时间) 您可以使用API来获取这个todo级别的详细信息,这样就可以了
如果有人有更好的选择,也请告诉我们:)从今天起,我们正在做上述工作 事实证明,您可以从他们的旧API中获得它: 这将为您提供XML形式的时间条目,这是一个难题。它还对结果进行分页。在返回的标题中有两个字段,告诉您总共有多少条记录,以及有多少页:
var pageCount = headers["X-Pages"];
var recCount = headers["X-Records"];
您可以按如下方式处理返回的记录:
function processRecords(response)
{
var respObj =
{
totalHours: 0,
thisWeekHours: 0
}
var doc = null;
if (response.getContentText)
{
doc = Xml.parse(response.getContentText(), true);
}
else if (response.getElements)
{
doc = response;
}
else
{
var name = typeof response;
if (response.constructor) name = response.constructor.name;
throw new Exception("Incompatible type: " + name);
}
var root = doc.getElement();
var records = root.getElements("time-entry");
if (records.length > 0)
{
for (i = 0;i < records.length; i++)
{
var hours = Number(records[i].hours.getText());
var recordDate = records[i].date.getText();
if (recordDate >= previousSunday && recordDate <= previousSaturday)
{
respObj.thisWeekHours = respObj.thisWeekHours + hours;
}
respObj.totalHours = respObj.totalHours + hours;
}
}
return respObj;
}
函数处理记录(响应)
{
var respObj=
{
总小时数:0,
本周:0
}
var doc=null;
if(response.getContentText)
{
doc=Xml.parse(response.getContentText(),true);
}
else if(response.getElements)
{
doc=响应;
}
其他的
{
变量名称=响应类型;
if(response.constructor)name=response.constructor.name;
抛出新异常(“不兼容类型:“+name”);
}
var root=doc.getElement();
var记录=root.getElements(“时间输入”);
如果(记录长度>0)
{
对于(i=0;i 如果(recordDate>=previousSunday&&recordDate)不知道你为什么会被记下来。哦,好吧。看看我上面的答案,有一种方法可以获取信息。