Гидратные теги в Lookback API
Я пытаюсь получить теги, связанные с дефектом, используя API обратного просмотра. Кажется, что бы я ни пытался, я никогда не смогу заставить метки увлажняться. Есть идеи?
По возвращению запроса я получаю следующие данные:
ScheduleState: "Backlog"
Tags: Array[1]
0: 3230012667
length: 1
__proto__: Array[0]
Мой код запроса:
Ext.create('Rally.data.lookback.SnapshotStore', {
fetch: ['Name','ScheduleState', 'Project', 'Tags'],
autoLoad: true,
listeners: {
load: function(store, records) {
console.log(store);
}
},
hydrate: ['Tags'],
fields: ['Name','ScheduleState', 'Project', 'Tags'],
filters: [
{
property: '_TypeHierarchy',
operator: '=',
value: 'Defect'
},
{
property: 'ScheduleState',
operator: '!=',
value: 'Accepted'
},
{
property: '__At',
value: dateString
}
]
});
1 ответ
Решение
Я не верю, что вы можете увлажнять метки с помощью LBAPI. Вместо этого я бы использовал WSAPI для создания хэш-карты, которая сопоставляет теги Object ID с его именем. Вот некоторый код, чтобы сделать это:
Ext.create('Rally.data.WsapiDataStore', {
limit : Infinity,
model : 'Tag',
fetch : ['ObjectID','Name']
}).load({
callback: function(store) {
var tagNameMap = Ext.create('Ext.util.HashMap');
Ext.Array.each(store.getRecords(), function(record) {
tagNameMap.add(record.get('ObjectID'), record.get('Name'));
});
getDefects(tagNameMap); //Pass the tag name map to the LBAPI request
}
});
Теперь просто используйте tagNameMap.get(tagOID), чтобы получить имя тега.
Надеюсь это поможет:)