2012-09-04 67 views
1

使用Rally的rest api,我如何查询用户的电子邮件地址?Rally Rest Api:从缺陷获取用户的电子邮件地址

举例来说,我有这样的查询来获取包含谁打开它的用户的全名,谁拥有该缺陷在用户的缺陷:

QueryRequest defectRequest = new QueryRequest("defect"); 
defectRequest.setFetch(new Fetch("Project", "LastUpdateDate", "FormattedId")); 
defectRequest.setQueryFilter(new QueryFilter("Project.Name", "=", rallyProjectName).and(new QueryFilter("LastUpdateDate", ">", defectTimestamp.getTimestamp()))); 
QueryResponse projectDefects = rallyApi.query(defectRequest); 

现在我愿意回答大家的提交通过和所有者用户从缺陷获得他们的电子邮件地址。

+0

我认为你必须与2个字段添加到您的抓取,然后将这些属性应该可以通过您的QueryResponse。 – user1417835

+0

提取正在努力获取所有者的名称并由用户提交,但他们的名字不包含他们的电子邮件地址;所以我认为需要一个新的查询,只是他们的名字。我试过这个没有成功:'QueryRequest userRequest = new QueryRequest(“user”); userRequest.setFetch(new Fetch(“Email”)); userRequest.setQueryFilter(new QueryFilter(“User.Name”,“=”,“Joe User”)); QueryResponse user = rallyApi.query(userRequest);' –

回答

0

请一定要包含的字段“所有者”和“SubmittedBy”你取的缺陷:

defectRequest.setFetch(new Fetch("Project", "LastUpdateDate", "FormattedId", "Owner", "SubmittedBy")); 

然后在每一个业主,SubmittedBy领域返回缺陷(如居住在拉力赛和NOT NULL)将具有对Rally中相应用户对象的引用。那么你对此的第二个要求是倾向于现在。最简单的方法就是使用该参考文献,并直接对参考文献进行GetRequest。以下是如何在物主区为例(原谅笨拙try/catch块 - 它抓住空所有者字段):

 QueryResponse projectDefects = restApi.query(defectRequest); 
     if (projectDefects.wasSuccessful()) { 
      for (JsonElement result : projectDefects.getResults()) { 
       JsonObject defect = result.getAsJsonObject(); 
       try { 
        JsonObject ownerJsonObject = defect.get("Owner").getAsJsonObject(); 
        String ownerRef = ownerJsonObject.get("_ref").getAsString(); 
        GetRequest ownerRequest = new GetRequest(ownerRef); 
        GetResponse ownerResponse = restApi.get(ownerRequest); 
        JsonObject ownerObj = ownerResponse.getObject(); 
        System.out.println(String.format("Read owner. EmailAddress = %s", 
          ownerObj.get("EmailAddress").getAsString())); 
       } catch (java.lang.IllegalStateException ise) { 
        // System.out.println("IllegalStateException caught: "); 
        // ise.printStackTrace(); 
       } 
      } 
     } 
+0

这很好用!谢谢! –

相关问题