2012-09-04 66 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

這很好用!謝謝! –

相關問題