@elisra-devops/docgen-data-provider 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/bin/helpers/helper.js +22 -7
  2. package/bin/helpers/helper.js.map +1 -1
  3. package/bin/helpers/tfs.js +62 -77
  4. package/bin/helpers/tfs.js.map +1 -1
  5. package/bin/index.d.ts +3 -1
  6. package/bin/index.js +17 -31
  7. package/bin/index.js.map +1 -1
  8. package/bin/models/tfs-data.d.ts +3 -3
  9. package/bin/models/tfs-data.js +54 -17
  10. package/bin/models/tfs-data.js.map +1 -1
  11. package/bin/modules/GitDataProvider.js +213 -259
  12. package/bin/modules/GitDataProvider.js.map +1 -1
  13. package/bin/modules/MangementDataProvider.js +26 -43
  14. package/bin/modules/MangementDataProvider.js.map +1 -1
  15. package/bin/modules/PipelinesDataProvider.js +57 -82
  16. package/bin/modules/PipelinesDataProvider.js.map +1 -1
  17. package/bin/modules/ResultDataProvider.d.ts +89 -0
  18. package/bin/modules/ResultDataProvider.js +409 -0
  19. package/bin/modules/ResultDataProvider.js.map +1 -0
  20. package/bin/modules/TestDataProvider.js +196 -236
  21. package/bin/modules/TestDataProvider.js.map +1 -1
  22. package/bin/modules/TicketsDataProvider.js +259 -300
  23. package/bin/modules/TicketsDataProvider.js.map +1 -1
  24. package/bin/modules/test/gitDataProvider.test.js +67 -76
  25. package/bin/modules/test/gitDataProvider.test.js.map +1 -1
  26. package/bin/modules/test/managmentDataProvider.test.js +16 -25
  27. package/bin/modules/test/managmentDataProvider.test.js.map +1 -1
  28. package/bin/modules/test/pipelineDataProvider.test.js +32 -41
  29. package/bin/modules/test/pipelineDataProvider.test.js.map +1 -1
  30. package/bin/modules/test/testDataProvider.test.js +56 -65
  31. package/bin/modules/test/testDataProvider.test.js.map +1 -1
  32. package/bin/modules/test/ticketsDataProvider.test.js +39 -48
  33. package/bin/modules/test/ticketsDataProvider.test.js.map +1 -1
  34. package/package.json +17 -11
  35. package/src/index.ts +19 -15
  36. package/src/modules/ResultDataProvider.ts +496 -0
  37. package/src/modules/TestDataProvider.ts +1 -0
  38. package/tsconfig.json +2 -2
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  const tfs_1 = require("../helpers/tfs");
13
4
  const tfs_data_1 = require("../models/tfs-data");
@@ -19,118 +10,106 @@ const tfs_data_5 = require("../models/tfs-data");
19
10
  const tfs_data_6 = require("../models/tfs-data");
20
11
  const logger_1 = require("../utils/logger");
21
12
  class TicketsDataProvider {
13
+ orgUrl = "";
14
+ token = "";
15
+ queriesList = new Array();
22
16
  constructor(orgUrl, token) {
23
- this.orgUrl = "";
24
- this.token = "";
25
- this.queriesList = new Array();
26
17
  this.orgUrl = orgUrl;
27
18
  this.token = token;
28
19
  }
29
- GetWorkItem(project, id) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- let url = `${this.orgUrl}${project}/_apis/wit/workitems/${id}?$expand=All`;
32
- return tfs_1.TFSServices.getItemContent(url, this.token);
33
- });
20
+ async GetWorkItem(project, id) {
21
+ let url = `${this.orgUrl}${project}/_apis/wit/workitems/${id}?$expand=All`;
22
+ return tfs_1.TFSServices.getItemContent(url, this.token);
34
23
  }
35
- GetLinksByIds(project, ids) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- var trace = new Array();
38
- let wis = yield this.PopulateWorkItemsByIds(ids, project);
39
- let linksMap = yield this.GetRelationsIds(wis);
40
- let relations;
41
- for (let i = 0; i < wis.length; i++) {
42
- let traceItem; //= new Trace();
43
- traceItem = yield this.GetParentLink(project, wis[i]);
44
- if (linksMap.get(wis[i].id).rels.length > 0) {
45
- relations = yield this.PopulateWorkItemsByIds(linksMap.get(wis[i].id).rels, project);
46
- traceItem.links = yield this.GetLinks(project, wis[i], relations);
47
- }
48
- trace.push(traceItem);
24
+ async GetLinksByIds(project, ids) {
25
+ var trace = new Array();
26
+ let wis = await this.PopulateWorkItemsByIds(ids, project);
27
+ let linksMap = await this.GetRelationsIds(wis);
28
+ let relations;
29
+ for (let i = 0; i < wis.length; i++) {
30
+ let traceItem; //= new Trace();
31
+ traceItem = await this.GetParentLink(project, wis[i]);
32
+ if (linksMap.get(wis[i].id).rels.length > 0) {
33
+ relations = await this.PopulateWorkItemsByIds(linksMap.get(wis[i].id).rels, project);
34
+ traceItem.links = await this.GetLinks(project, wis[i], relations);
49
35
  }
50
- return trace;
51
- });
36
+ trace.push(traceItem);
37
+ }
38
+ return trace;
52
39
  }
53
- GetParentLink(project, wi) {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- let trace = new helper_1.Trace();
56
- if (wi != null) {
57
- trace.id = wi.id;
58
- trace.title = wi.fields["System.Title"];
59
- trace.url = this.orgUrl + project + "/_workitems/edit/" + wi.id;
60
- if (wi.fields["System.CustomerId"] != null &&
61
- wi.fields["System.CustomerId"] != undefined) {
62
- trace.customerId = wi.fields["System.CustomerId"];
63
- }
40
+ async GetParentLink(project, wi) {
41
+ let trace = new helper_1.Trace();
42
+ if (wi != null) {
43
+ trace.id = wi.id;
44
+ trace.title = wi.fields["System.Title"];
45
+ trace.url = this.orgUrl + project + "/_workitems/edit/" + wi.id;
46
+ if (wi.fields["System.CustomerId"] != null &&
47
+ wi.fields["System.CustomerId"] != undefined) {
48
+ trace.customerId = wi.fields["System.CustomerId"];
64
49
  }
65
- return trace;
66
- });
50
+ }
51
+ return trace;
67
52
  }
68
- GetRelationsIds(ids) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- let rel = new Map();
71
- try {
72
- for (let i = 0; i < ids.length; i++) {
73
- var link = new helper_1.Relations();
74
- link.id = ids[i].id;
75
- if (ids[i].relations != null)
76
- for (let j = 0; j < ids[i].relations.length; j++) {
77
- if (ids[i].relations[j].rel != "AttachedFile") {
78
- let index = ids[i].relations[j].url.lastIndexOf("/");
79
- let id = ids[i].relations[j].url.substring(index + 1);
80
- link.rels.push(id);
81
- }
53
+ async GetRelationsIds(ids) {
54
+ let rel = new Map();
55
+ try {
56
+ for (let i = 0; i < ids.length; i++) {
57
+ var link = new helper_1.Relations();
58
+ link.id = ids[i].id;
59
+ if (ids[i].relations != null)
60
+ for (let j = 0; j < ids[i].relations.length; j++) {
61
+ if (ids[i].relations[j].rel != "AttachedFile") {
62
+ let index = ids[i].relations[j].url.lastIndexOf("/");
63
+ let id = ids[i].relations[j].url.substring(index + 1);
64
+ link.rels.push(id);
82
65
  }
83
- rel.set(ids[i].id, link);
84
- }
66
+ }
67
+ rel.set(ids[i].id, link);
85
68
  }
86
- catch (e) { }
87
- return rel;
88
- });
69
+ }
70
+ catch (e) { }
71
+ return rel;
89
72
  }
90
- GetLinks(project, wi, links) {
91
- return __awaiter(this, void 0, void 0, function* () {
92
- var linkList = new Array();
93
- for (let i = 0; i < wi.relations.length; i++) {
94
- for (let j = 0; j < links.length; j++) {
95
- let index = wi.relations[i].url.lastIndexOf("/");
96
- let linkId = wi.relations[i].url.substring(index + 1);
97
- if (linkId == links[j].id) {
98
- var link = new helper_1.Links();
99
- link.type = wi.relations[i].rel;
100
- link.id = links[j].id;
101
- link.title = links[j].fields["System.Title"];
102
- link.description = links[j].fields["System.Description"];
103
- link.url = this.orgUrl + project + "/_workitems/edit/" + linkId;
104
- linkList.push(link);
105
- break;
106
- }
73
+ async GetLinks(project, wi, links) {
74
+ var linkList = new Array();
75
+ for (let i = 0; i < wi.relations.length; i++) {
76
+ for (let j = 0; j < links.length; j++) {
77
+ let index = wi.relations[i].url.lastIndexOf("/");
78
+ let linkId = wi.relations[i].url.substring(index + 1);
79
+ if (linkId == links[j].id) {
80
+ var link = new helper_1.Links();
81
+ link.type = wi.relations[i].rel;
82
+ link.id = links[j].id;
83
+ link.title = links[j].fields["System.Title"];
84
+ link.description = links[j].fields["System.Description"];
85
+ link.url = this.orgUrl + project + "/_workitems/edit/" + linkId;
86
+ linkList.push(link);
87
+ break;
107
88
  }
108
89
  }
109
- return linkList;
110
- });
90
+ }
91
+ return linkList;
111
92
  }
112
93
  // gets queries recursiv
113
- GetSharedQueries(project, path) {
114
- return __awaiter(this, void 0, void 0, function* () {
115
- let url;
116
- try {
117
- if (path == "")
118
- url = `${this.orgUrl}${project}/_apis/wit/queries/Shared%20Queries?$depth=1`;
119
- else
120
- url = `${this.orgUrl}${project}/_apis/wit/queries/${path}?$depth=1`;
121
- let queries = yield tfs_1.TFSServices.getItemContent(url, this.token);
122
- for (let i = 0; i < queries.children.length; i++)
123
- if (queries.children[i].isFolder) {
124
- this.queriesList.push(queries.children[i]);
125
- yield this.GetSharedQueries(project, queries.children[i].path);
126
- }
127
- else {
128
- this.queriesList.push(queries.children[i]);
129
- }
130
- return this.GetModeledQuery(this.queriesList);
131
- }
132
- catch (e) { }
133
- });
94
+ async GetSharedQueries(project, path) {
95
+ let url;
96
+ try {
97
+ if (path == "")
98
+ url = `${this.orgUrl}${project}/_apis/wit/queries/Shared%20Queries?$depth=1`;
99
+ else
100
+ url = `${this.orgUrl}${project}/_apis/wit/queries/${path}?$depth=1`;
101
+ let queries = await tfs_1.TFSServices.getItemContent(url, this.token);
102
+ for (let i = 0; i < queries.children.length; i++)
103
+ if (queries.children[i].isFolder) {
104
+ this.queriesList.push(queries.children[i]);
105
+ await this.GetSharedQueries(project, queries.children[i].path);
106
+ }
107
+ else {
108
+ this.queriesList.push(queries.children[i]);
109
+ }
110
+ return this.GetModeledQuery(this.queriesList);
111
+ }
112
+ catch (e) { }
134
113
  }
135
114
  // get queris structured
136
115
  GetModeledQuery(list) {
@@ -146,170 +125,160 @@ class TicketsDataProvider {
146
125
  return queryListObject;
147
126
  }
148
127
  // gets query results
149
- GetQueryResultsByWiqlHref(wiqlHref, project) {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- try {
152
- let results = yield tfs_1.TFSServices.getItemContent(wiqlHref, this.token);
153
- let modeledResult = yield this.GetModeledQueryResults(results, project);
154
- if (modeledResult.queryType == "tree") {
155
- let levelResults = helper_1.Helper.LevelBuilder(modeledResult, modeledResult.workItems[0].fields[0].value);
156
- return levelResults;
157
- }
158
- return modeledResult.workItems;
128
+ async GetQueryResultsByWiqlHref(wiqlHref, project) {
129
+ try {
130
+ let results = await tfs_1.TFSServices.getItemContent(wiqlHref, this.token);
131
+ let modeledResult = await this.GetModeledQueryResults(results, project);
132
+ if (modeledResult.queryType == "tree") {
133
+ let levelResults = helper_1.Helper.LevelBuilder(modeledResult, modeledResult.workItems[0].fields[0].value);
134
+ return levelResults;
159
135
  }
160
- catch (e) { }
161
- });
136
+ return modeledResult.workItems;
137
+ }
138
+ catch (e) { }
162
139
  }
163
140
  // gets query results
164
- GetQueryResultsByWiqlString(wiql, projectName) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- let res;
167
- let url = `${this.orgUrl}${projectName}/_apis/wit/wiql?$top=2147483646&expand={all}`;
141
+ async GetQueryResultsByWiqlString(wiql, projectName) {
142
+ let res;
143
+ let url = `${this.orgUrl}${projectName}/_apis/wit/wiql?$top=2147483646&expand={all}`;
144
+ try {
145
+ res = await tfs_1.TFSServices.getItemContent(url, this.token, "post", {
146
+ query: wiql,
147
+ });
148
+ }
149
+ catch (error) {
150
+ console.log(error);
151
+ return [];
152
+ }
153
+ return res;
154
+ }
155
+ async GetQueryResultById(query, project) {
156
+ var url = `${this.orgUrl}${project}/_apis/wit/queries/${query}`;
157
+ let querie = await tfs_1.TFSServices.getItemContent(url, this.token);
158
+ var wiql = querie._links.wiql;
159
+ return await this.GetQueryResultsByWiqlHref(wiql.href, project);
160
+ }
161
+ async PopulateWorkItemsByIds(workItemsArray = [], projectName = "") {
162
+ let url = `${this.orgUrl}${projectName}/_apis/wit/workitemsbatch`;
163
+ let res = [];
164
+ let divByMax = Math.floor(workItemsArray.length / 200);
165
+ let modulusByMax = workItemsArray.length % 200;
166
+ //iterating
167
+ for (let i = 0; i < divByMax; i++) {
168
+ let from = i * 200;
169
+ let to = (i + 1) * 200;
170
+ let currentIds = workItemsArray.slice(from, to);
168
171
  try {
169
- res = yield tfs_1.TFSServices.getItemContent(url, this.token, "post", {
170
- query: wiql,
172
+ let subRes = await tfs_1.TFSServices.getItemContent(url, this.token, "post", {
173
+ $expand: "Relations",
174
+ ids: currentIds,
171
175
  });
176
+ res = [...res, ...subRes.value];
172
177
  }
173
178
  catch (error) {
174
- console.log(error);
179
+ logger_1.default.error(`error populating workitems array`);
180
+ logger_1.default.error(JSON.stringify(error));
175
181
  return [];
176
182
  }
177
- return res;
178
- });
179
- }
180
- GetQueryResultById(query, project) {
181
- return __awaiter(this, void 0, void 0, function* () {
182
- var url = `${this.orgUrl}${project}/_apis/wit/queries/${query}`;
183
- let querie = yield tfs_1.TFSServices.getItemContent(url, this.token);
184
- var wiql = querie._links.wiql;
185
- return yield this.GetQueryResultsByWiqlHref(wiql.href, project);
186
- });
183
+ }
184
+ //compliting the rimainder
185
+ if (modulusByMax !== 0) {
186
+ try {
187
+ let currentIds = workItemsArray.slice(workItemsArray.length - modulusByMax, workItemsArray.length);
188
+ let subRes = await tfs_1.TFSServices.getItemContent(url, this.token, "post", {
189
+ $expand: "Relations",
190
+ ids: currentIds,
191
+ });
192
+ res = [...res, ...subRes.value];
193
+ }
194
+ catch (error) {
195
+ logger_1.default.error(`error populating workitems array`);
196
+ logger_1.default.error(JSON.stringify(error));
197
+ return [];
198
+ }
199
+ } //if
200
+ return res;
187
201
  }
188
- PopulateWorkItemsByIds(workItemsArray = [], projectName = "") {
189
- return __awaiter(this, void 0, void 0, function* () {
190
- let url = `${this.orgUrl}${projectName}/_apis/wit/workitemsbatch`;
191
- let res = [];
192
- let divByMax = Math.floor(workItemsArray.length / 200);
193
- let modulusByMax = workItemsArray.length % 200;
194
- //iterating
195
- for (let i = 0; i < divByMax; i++) {
196
- let from = i * 200;
197
- let to = (i + 1) * 200;
198
- let currentIds = workItemsArray.slice(from, to);
199
- try {
200
- let subRes = yield tfs_1.TFSServices.getItemContent(url, this.token, "post", {
201
- $expand: "Relations",
202
- ids: currentIds,
203
- });
204
- res = [...res, ...subRes.value];
202
+ async GetModeledQueryResults(results, project) {
203
+ let ticketsDataProvider = new TicketsDataProvider(this.orgUrl, this.token);
204
+ var queryResult = new tfs_data_2.Query();
205
+ queryResult.asOf = results.asOf;
206
+ queryResult.queryResultType = results.queryResultType;
207
+ queryResult.queryType = results.queryType;
208
+ if (results.queryType == tfs_data_3.QueryType.Flat) {
209
+ // //Flat Query
210
+ //TODo: attachment
211
+ //TODO:check if wi.relations exist
212
+ //TODO: add attachment to any list from 1
213
+ for (var j = 0; j < results.workItems.length; j++) {
214
+ let wi = await ticketsDataProvider.GetWorkItem(project, results.workItems[j].id);
215
+ queryResult.workItems[j] = new tfs_data_1.Workitem();
216
+ queryResult.workItems[j].url = results.workItems[j].url;
217
+ queryResult.workItems[j].fields = new Array(results.columns.length);
218
+ if (wi.relations != null) {
219
+ queryResult.workItems[j].attachments = wi.relations;
205
220
  }
206
- catch (error) {
207
- logger_1.default.error(`error populating workitems array`);
208
- logger_1.default.error(JSON.stringify(error));
209
- return [];
221
+ var rel = new tfs_data_4.QueryAllTypes();
222
+ for (var i = 0; i < results.columns.length; i++) {
223
+ queryResult.columns[i] = new tfs_data_5.Column();
224
+ queryResult.workItems[j].fields[i] = new tfs_data_6.value();
225
+ queryResult.columns[i].name = results.columns[i].name;
226
+ queryResult.columns[i].referenceName =
227
+ results.columns[i].referenceName;
228
+ queryResult.columns[i].url = results.columns[i].url;
229
+ if (results.columns[i].referenceName.toUpperCase() == "SYSTEM.ID") {
230
+ queryResult.workItems[j].fields[i].value = wi.id.toString();
231
+ queryResult.workItems[j].fields[i].name = "ID";
232
+ }
233
+ else if (results.columns[i].referenceName.toUpperCase() ==
234
+ "SYSTEM.ASSIGNEDTO" &&
235
+ wi.fields[results.columns[i].referenceName] != null)
236
+ queryResult.workItems[j].fields[i].value =
237
+ wi.fields[results.columns[i].referenceName].displayName;
238
+ else {
239
+ let s = wi.fields[results.columns[i].referenceName];
240
+ queryResult.workItems[j].fields[i].value =
241
+ wi.fields[results.columns[i].referenceName];
242
+ queryResult.workItems[j].fields[i].name = results.columns[i].name;
243
+ }
210
244
  }
211
245
  }
212
- //compliting the rimainder
213
- if (modulusByMax !== 0) {
214
- try {
215
- let currentIds = workItemsArray.slice(workItemsArray.length - modulusByMax, workItemsArray.length);
216
- let subRes = yield tfs_1.TFSServices.getItemContent(url, this.token, "post", {
217
- $expand: "Relations",
218
- ids: currentIds,
219
- });
220
- res = [...res, ...subRes.value];
221
- }
222
- catch (error) {
223
- logger_1.default.error(`error populating workitems array`);
224
- logger_1.default.error(JSON.stringify(error));
225
- return [];
226
- }
227
- } //if
228
- return res;
229
- });
230
- }
231
- GetModeledQueryResults(results, project) {
232
- return __awaiter(this, void 0, void 0, function* () {
233
- let ticketsDataProvider = new TicketsDataProvider(this.orgUrl, this.token);
234
- var queryResult = new tfs_data_2.Query();
235
- queryResult.asOf = results.asOf;
236
- queryResult.queryResultType = results.queryResultType;
237
- queryResult.queryType = results.queryType;
238
- if (results.queryType == tfs_data_3.QueryType.Flat) {
239
- // //Flat Query
240
- //TODo: attachment
241
- //TODO:check if wi.relations exist
242
- //TODO: add attachment to any list from 1
243
- for (var j = 0; j < results.workItems.length; j++) {
244
- let wi = yield ticketsDataProvider.GetWorkItem(project, results.workItems[j].id);
246
+ } //Tree Query
247
+ else {
248
+ this.BuildColumns(results, queryResult);
249
+ for (var j = 0; j < results.workItemRelations.length; j++) {
250
+ if (results.workItemRelations[j].target != null) {
251
+ let wiT = await ticketsDataProvider.GetWorkItem(project, results.workItemRelations[j].target.id);
252
+ // var rel = new QueryAllTypes();
245
253
  queryResult.workItems[j] = new tfs_data_1.Workitem();
246
- queryResult.workItems[j].url = results.workItems[j].url;
254
+ queryResult.workItems[j].url = wiT.url;
247
255
  queryResult.workItems[j].fields = new Array(results.columns.length);
248
- if (wi.relations != null) {
249
- queryResult.workItems[j].attachments = wi.relations;
256
+ if (wiT.relations != null) {
257
+ queryResult.workItems[j].attachments = wiT.relations;
250
258
  }
251
- var rel = new tfs_data_4.QueryAllTypes();
252
- for (var i = 0; i < results.columns.length; i++) {
253
- queryResult.columns[i] = new tfs_data_5.Column();
259
+ // rel.q = queryResult;
260
+ for (i = 0; i < queryResult.columns.length; i++) {
261
+ //.. rel.q.workItems[j].fields[i] = new value();
254
262
  queryResult.workItems[j].fields[i] = new tfs_data_6.value();
255
- queryResult.columns[i].name = results.columns[i].name;
256
- queryResult.columns[i].referenceName =
257
- results.columns[i].referenceName;
258
- queryResult.columns[i].url = results.columns[i].url;
259
- if (results.columns[i].referenceName.toUpperCase() == "SYSTEM.ID") {
260
- queryResult.workItems[j].fields[i].value = wi.id.toString();
261
- queryResult.workItems[j].fields[i].name = "ID";
262
- }
263
- else if (results.columns[i].referenceName.toUpperCase() ==
263
+ queryResult.workItems[j].fields[i].name =
264
+ queryResult.columns[i].name;
265
+ if (results.columns[i].referenceName.toUpperCase() ==
264
266
  "SYSTEM.ASSIGNEDTO" &&
265
- wi.fields[results.columns[i].referenceName] != null)
267
+ wiT.fields[results.columns[i].referenceName] != null)
266
268
  queryResult.workItems[j].fields[i].value =
267
- wi.fields[results.columns[i].referenceName].displayName;
268
- else {
269
- let s = wi.fields[results.columns[i].referenceName];
269
+ wiT.fields[results.columns[i].referenceName].displayName;
270
+ else
270
271
  queryResult.workItems[j].fields[i].value =
271
- wi.fields[results.columns[i].referenceName];
272
- queryResult.workItems[j].fields[i].name = results.columns[i].name;
273
- }
274
- }
275
- }
276
- } //Tree Query
277
- else {
278
- this.BuildColumns(results, queryResult);
279
- for (var j = 0; j < results.workItemRelations.length; j++) {
280
- if (results.workItemRelations[j].target != null) {
281
- let wiT = yield ticketsDataProvider.GetWorkItem(project, results.workItemRelations[j].target.id);
282
- // var rel = new QueryAllTypes();
283
- queryResult.workItems[j] = new tfs_data_1.Workitem();
284
- queryResult.workItems[j].url = wiT.url;
285
- queryResult.workItems[j].fields = new Array(results.columns.length);
286
- if (wiT.relations != null) {
287
- queryResult.workItems[j].attachments = wiT.relations;
288
- }
289
- // rel.q = queryResult;
290
- for (i = 0; i < queryResult.columns.length; i++) {
291
- //.. rel.q.workItems[j].fields[i] = new value();
292
- queryResult.workItems[j].fields[i] = new tfs_data_6.value();
293
- queryResult.workItems[j].fields[i].name =
294
- queryResult.columns[i].name;
295
- if (results.columns[i].referenceName.toUpperCase() ==
296
- "SYSTEM.ASSIGNEDTO" &&
297
- wiT.fields[results.columns[i].referenceName] != null)
298
- queryResult.workItems[j].fields[i].value =
299
- wiT.fields[results.columns[i].referenceName].displayName;
300
- else
301
- queryResult.workItems[j].fields[i].value =
302
- wiT.fields[queryResult.columns[i].referenceName];
303
- //}
304
- }
305
- if (results.workItemRelations[j].source != null)
306
- queryResult.workItems[j].Source =
307
- results.workItemRelations[j].source.id;
272
+ wiT.fields[queryResult.columns[i].referenceName];
273
+ //}
308
274
  }
275
+ if (results.workItemRelations[j].source != null)
276
+ queryResult.workItems[j].Source =
277
+ results.workItemRelations[j].source.id;
309
278
  }
310
279
  }
311
- return queryResult;
312
- });
280
+ }
281
+ return queryResult;
313
282
  }
314
283
  BuildColumns(results, queryResult) {
315
284
  for (var i = 0; i < results.columns.length; i++) {
@@ -319,66 +288,56 @@ class TicketsDataProvider {
319
288
  queryResult.columns[i].url = results.columns[i].url;
320
289
  }
321
290
  }
322
- GetIterationsByTeamName(projectName, teamName) {
323
- return __awaiter(this, void 0, void 0, function* () {
324
- let res;
325
- let url;
326
- if (teamName) {
327
- url = `${this.orgUrl}${projectName}/${teamName}/_apis/work/teamsettings/iterations`;
328
- }
329
- else {
330
- url = `${this.orgUrl}${projectName}/_apis/work/teamsettings/iterations`;
331
- }
332
- res = yield tfs_1.TFSServices.getItemContent(url, this.token, "get");
333
- return res;
334
- });
291
+ async GetIterationsByTeamName(projectName, teamName) {
292
+ let res;
293
+ let url;
294
+ if (teamName) {
295
+ url = `${this.orgUrl}${projectName}/${teamName}/_apis/work/teamsettings/iterations`;
296
+ }
297
+ else {
298
+ url = `${this.orgUrl}${projectName}/_apis/work/teamsettings/iterations`;
299
+ }
300
+ res = await tfs_1.TFSServices.getItemContent(url, this.token, "get");
301
+ return res;
335
302
  } //GetIterationsByTeamName
336
- CreateNewWorkItem(projectName, wiBody, wiType, byPass) {
337
- return __awaiter(this, void 0, void 0, function* () {
338
- let url = `${this.orgUrl}${projectName}/_apis/wit/workitems/$${wiType}?bypassRules=${String(byPass).toString()}`;
339
- return tfs_1.TFSServices.getItemContent(url, this.token, "POST", wiBody, { "Content-Type": "application/json-patch+json" });
340
- });
303
+ async CreateNewWorkItem(projectName, wiBody, wiType, byPass) {
304
+ let url = `${this.orgUrl}${projectName}/_apis/wit/workitems/$${wiType}?bypassRules=${String(byPass).toString()}`;
305
+ return tfs_1.TFSServices.getItemContent(url, this.token, "POST", wiBody, { "Content-Type": "application/json-patch+json" });
341
306
  } //CreateNewWorkItem
342
- GetWorkitemAttachments(project, id) {
343
- return __awaiter(this, void 0, void 0, function* () {
344
- let attachmentList = [];
345
- let ticketsDataProvider = new TicketsDataProvider(this.orgUrl, this.token);
346
- try {
347
- let wi = yield ticketsDataProvider.GetWorkItem(project, id);
348
- if (!wi.relations)
349
- return [];
350
- yield Promise.all(wi.relations.map((relation) => __awaiter(this, void 0, void 0, function* () {
351
- if (relation.rel == "AttachedFile") {
352
- let attachment = JSON.parse(JSON.stringify(relation));
353
- attachment.downloadUrl = `${relation.url}/${relation.attributes.name}`;
354
- attachmentList.push(attachment);
355
- }
356
- })));
357
- return attachmentList;
358
- }
359
- catch (e) {
360
- logger_1.default.error(`error fetching attachments for work item ${id}`);
361
- logger_1.default.error(`${JSON.stringify(e)}`);
307
+ async GetWorkitemAttachments(project, id) {
308
+ let attachmentList = [];
309
+ let ticketsDataProvider = new TicketsDataProvider(this.orgUrl, this.token);
310
+ try {
311
+ let wi = await ticketsDataProvider.GetWorkItem(project, id);
312
+ if (!wi.relations)
362
313
  return [];
363
- }
364
- });
314
+ await Promise.all(wi.relations.map(async (relation) => {
315
+ if (relation.rel == "AttachedFile") {
316
+ let attachment = JSON.parse(JSON.stringify(relation));
317
+ attachment.downloadUrl = `${relation.url}/${relation.attributes.name}`;
318
+ attachmentList.push(attachment);
319
+ }
320
+ }));
321
+ return attachmentList;
322
+ }
323
+ catch (e) {
324
+ logger_1.default.error(`error fetching attachments for work item ${id}`);
325
+ logger_1.default.error(`${JSON.stringify(e)}`);
326
+ return [];
327
+ }
365
328
  }
366
- GetWorkitemAttachmentsJSONData(project, attachmentId) {
367
- return __awaiter(this, void 0, void 0, function* () {
368
- let wiuRL = `${this.orgUrl}${project}/_apis/wit/attachments/${attachmentId}`;
369
- let attachment = yield tfs_1.TFSServices.getItemContent(wiuRL, this.token);
370
- return attachment;
371
- });
329
+ async GetWorkitemAttachmentsJSONData(project, attachmentId) {
330
+ let wiuRL = `${this.orgUrl}${project}/_apis/wit/attachments/${attachmentId}`;
331
+ let attachment = await tfs_1.TFSServices.getItemContent(wiuRL, this.token);
332
+ return attachment;
372
333
  }
373
- UpdateWorkItem(projectName, wiBody, workItemId, byPass) {
374
- return __awaiter(this, void 0, void 0, function* () {
375
- let res;
376
- let url = `${this.orgUrl}${projectName}/_apis/wit/workitems/${workItemId}?bypassRules=${String(byPass).toString()}`;
377
- res = yield tfs_1.TFSServices.getItemContent(url, this.token, "patch", wiBody, {
378
- "Content-Type": "application/json-patch+json",
379
- });
380
- return res;
334
+ async UpdateWorkItem(projectName, wiBody, workItemId, byPass) {
335
+ let res;
336
+ let url = `${this.orgUrl}${projectName}/_apis/wit/workitems/${workItemId}?bypassRules=${String(byPass).toString()}`;
337
+ res = await tfs_1.TFSServices.getItemContent(url, this.token, "patch", wiBody, {
338
+ "Content-Type": "application/json-patch+json",
381
339
  });
340
+ return res;
382
341
  } //CreateNewWorkItem
383
342
  }
384
343
  exports.default = TicketsDataProvider;