VSTS Dashboard Widget getWorkItem необязательный параметр раскрыть

Я пишу виджет панели инструментов VSTS, используемый для отслеживания рабочих элементов

Однако я сталкиваюсь с проблемой при использовании функции getWorkItem(). Я хочу получить идентификаторы всех возможностей данного эпоса (я уже знаю эпический идентификатор). Я уверен, что если я установлю параметр расширения getWorkItem() на "Все", я получу список всех функций и их соответствующих идентификаторов. К сожалению, я не знаю, как определить "тип" параметра расширения и как правильно передать его в качестве значения функции getWorkItem().

Вот мой код:

VSS.require(["VSS/Service", "TFS/Dashboards/WidgetHelpers", "TFS/WorkItemTracking/RestClient"],
        function (VSS_Service, WidgetHelpers, TFS_Wit_WebApi) {
            WidgetHelpers.IncludeWidgetStyles();
            VSS.register("myapp", function () {
                var fetchData = function (widgetSettings) {
                    const epicID = 123456;
                    // Get a WIT client to make REST calls to VSTS
                    return VSS_Service.getCollectionClient(TFS_Wit_WebApi.WorkItemTrackingHttpClient).getWorkItem(123456, null, null, All).
                        then(
                            //Successful retrieval of workItems
                            function (workItems) {
                                $('#myText').text(JSON.stringify(workItems));
                                console.log(workItems);
                                // Use the widget helper and return success as Widget Status
                                return WidgetHelpers.WidgetStatusHelper.Success();
                            },
                            function (error) {
                                // Use the widget helper and return failure as Widget Status
                                return WidgetHelpers.WidgetStatusHelper.Failure(error.message);
                            });
                }

Вот ссылка на VSTS для расширения. Она объясняет, какими могут быть значения, но не говорит, как передать ее в функцию getWorkItem().

Я хотел бы установить для необязательного параметра расширения функции "Все", но не знаю его тип и как правильно определить и использовать его.

2 ответа

Решение

Исходя из исходного кода, это enum, поэтому вы можете указать целое число (например, 4) в функции getWorkItem.

export enum WorkItemExpand {
    None = 0,
    Relations = 1,
    Fields = 2,
    Links = 3,
    All = 4,
}

Использование перечисления хорошо, но вы также можете передать значение из модуля 'TFS/WorkItemTracking/Contracts'. Вы можете найти ссылку здесь (показывает путь к модулю, класс и перечисления):

Ссылка выше взята из Справочника по API TFS WorkItemTracking, который можно найти здесь:

Вот как вы можете добавить его в свой код:

  1. Объявите модуль 'TFS/WorkItemTracking/Contracts'
  2. Передайте модуль в обратный вызов ('_Contracts' в примере ниже)
  3. Используйте "_Contracts" по мере необходимости

Вот ваш код, обновленный для использования модуля Contracts:

VSS.require([
    "VSS/Service", 
    "TFS/Dashboards/WidgetHelpers", 
    "TFS/WorkItemTracking/RestClient",
    "TFS/WorkItemTracking/Contracts"],
    function (VSS_Service, WidgetHelpers, TFS_Wit_WebApi, _Contracts) {

    WidgetHelpers.IncludeWidgetStyles();
    VSS.register("myapp", function () {
        var fetchData = function (widgetSettings) {
            const epicID = 123456;
            // Get a WIT client to make REST calls to VSTS
            return VSS_Service.getCollectionClient(TFS_Wit_WebApi.WorkItemTrackingHttpClient).
                getWorkItem(123456, null, null, _Contracts.WorkItemExpand.All).
                then(
                    //Successful retrieval of workItems
                    function (workItems) {
                        $('#myText').text(JSON.stringify(workItems));
                        console.log(workItems);
                        // Use the widget helper and return success as Widget Status
                        return WidgetHelpers.WidgetStatusHelper.Success();
                    },
                    function (error) {
                        // Use the widget helper and return failure as Widget Status
                        return WidgetHelpers.WidgetStatusHelper.Failure(error.message);
                    });
        }
    });
});

Надеюсь, это поможет!

Другие вопросы по тегам