使用Rally API选择基于功能的用户素材

时间:2014-05-12 14:38:53

标签: node.js rally

我试图获取属于某个功能但有孩子的所有用户故事。

这是我如何使用拉力赛节点创建查询。

async.map(features, function(feature, cb) {
  self.restApi.query({
      type: 'hierarchicalrequirement',
      limit: Infinity,
      order: 'Rank',
      fetch: ['FormattedID', 'Name', 'Children'],
      parent: feature.ObjectID,
      query: queryUtils.where('DirectChildrenCount', '>', 0)
 }, cb);
}, function(err, results) {
   //user stories
});

以下是我的功能的样子:

 { _rallyAPIMajor: '2',
_rallyAPIMinor: '0',
_ref: 'https://rally1.rallydev.com/slm/webservice/v2.0/portfolioitem/feature/18846103932',
_refObjectUUID: 'c01d7f828-a6d6-4efc-8160-c0c19ad0fabc',
_objectVersion: '7',
_refObjectName: 'Dashboard Widgets',
ObjectID: 18836103932,
FormattedID: 'F1',
DirectChildrenCount: 2,
Name: 'Dashboard Widgets',
UserStories: 
 { _rallyAPIMajor: '2',
   _rallyAPIMinor: '0',
   _ref: 'https://rally1.rallydev.com/slm/webservice/v2.0/PortfolioItem/Feature/18846103932/UserStories',
   _type: 'HierarchicalRequirement',
   Count: 2 },
_type: 'PortfolioItem/Feature' },

我是集会的新手,所以任何进一步的帮助都会对文档等有所帮助。非常感谢。

1 个答案:

答案 0 :(得分:1)

这是一个完整的示例,其中查询功能并获取其UserStories集合然后水合。

由于性能原因,

v2.0删除了在同一响应中返回子集合的功能。现在,获取一个集合将返回一个带有count的对象和从中获取集合数据的url。需要单独的请求来保护集合。

此更改记录在案here

我在帖子中没有看到问题,我不确定您遇到了什么问题,但他的代码根据功能获取用户故事,按('DirectChildrenCount', '>', 0)

过滤
var rally = require('rally'),
    queryUtils = rally.util.query;
    mySettings = {
        apiKey: '_secret',
        server: 'https://rally1.rallydev.com',  //this is the default and may be omitted
        requestOptions: {
            headers: {
                'X-RallyIntegrationName': 'My cool node.js program',  
                'X-RallyIntegrationVendor': 'My company',             
                'X-RallyIntegrationVersion': '1.0'                    
            },
        }
    },
    restApi = rally(mySettings);

function queryFeature() {
    return restApi.query({
        type: 'portfolioitem/feature',
        fetch: ['FormattedID', 'Name', 'UserStories'],
        query: queryUtils.where('FormattedID', '=', 'F7')
    });
}

function queryChildren(result) {
    return restApi.query({
        ref: result.Results[0].UserStories,
        limit: Infinity,
        order: 'Rank',
        fetch: ['FormattedID', 'Name'],
        query: queryUtils.where('DirectChildrenCount', '>', 0)
    });
}

function onSuccess(result) {
    console.log('Success!', result);
}

function onError(errors) {
    console.log('Failure!', errors);
}

queryFeature()
    .then(queryChildren)
    .then(onSuccess)
    .fail(onError);