Skip to content

Commit 4efdb55

Browse files
committed
Add extension management apis.
1 parent 0c21b04 commit 4efdb55

10 files changed

+4325
-27
lines changed

api/ClientApiBases.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class ClientApiBase {
2929
this.httpClient.userAgent = userAgent;
3030
}
3131

32-
public connect(): Q.Promise<any> {
32+
public connect(): Promise<any> {
3333
var defer = Q.defer();
3434

3535
this.restClient.getJson(this.vsoClient.resolveUrl('/_apis/connectionData'), "", null, null, (err: any, statusCode: number, obj: any) => {

api/ContributionsApi.ts

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
/*
2+
* ---------------------------------------------------------
3+
* Copyright(C) Microsoft Corporation. All rights reserved.
4+
* ---------------------------------------------------------
5+
*
6+
* ---------------------------------------------------------
7+
* Generated file, DO NOT EDIT
8+
* ---------------------------------------------------------
9+
*/
10+
11+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
12+
13+
14+
import Q = require('q');
15+
import restm = require('./RestClient');
16+
import httpm = require('./HttpClient');
17+
import vsom = require('./VsoClient');
18+
import basem = require('./ClientApiBases');
19+
import VsoBaseInterfaces = require('./interfaces/common/VsoBaseInterfaces');
20+
import ContributionsInterfaces = require("./interfaces/ContributionsInterfaces");
21+
22+
export interface IContributionsApi extends basem.ClientApiBase {
23+
queryDataProviders(query: ContributionsInterfaces.DataProviderQuery): Promise<ContributionsInterfaces.DataProviderResult>;
24+
getInstalledExtensions(contributionIds?: string[], includeDisabledApps?: boolean, assetTypes?: string[]): Promise<ContributionsInterfaces.InstalledExtension[]>;
25+
getInstalledExtensionByName(publisherName: string, extensionName: string, assetTypes?: string[]): Promise<ContributionsInterfaces.InstalledExtension>;
26+
}
27+
28+
export class ContributionsApi extends basem.ClientApiBase implements IContributionsApi {
29+
constructor(baseUrl: string, handlers: VsoBaseInterfaces.IRequestHandler[]) {
30+
super(baseUrl, handlers, 'node-Contributions-api');
31+
}
32+
33+
/**
34+
* @param {ContributionsInterfaces.DataProviderQuery} query
35+
*/
36+
public queryDataProviders(
37+
query: ContributionsInterfaces.DataProviderQuery
38+
): Promise<ContributionsInterfaces.DataProviderResult> {
39+
40+
let deferred = Q.defer<ContributionsInterfaces.DataProviderResult>();
41+
42+
let onResult = (err: any, statusCode: number, dataProvidersQuery: ContributionsInterfaces.DataProviderResult) => {
43+
if (err) {
44+
err.statusCode = statusCode;
45+
deferred.reject(err);
46+
}
47+
else {
48+
deferred.resolve(dataProvidersQuery);
49+
}
50+
};
51+
52+
let routeValues: any = {
53+
};
54+
55+
this.vsoClient.getVersioningData("3.0-preview.1", "Contribution", "738368db-35ee-4b85-9f94-77ed34af2b0d", routeValues)
56+
.then((versioningData: vsom.ClientVersioningData) => {
57+
let url: string = versioningData.requestUrl;
58+
let apiVersion: string = versioningData.apiVersion;
59+
let serializationData = { responseIsCollection: false };
60+
61+
this.restClient.create(url, apiVersion, query, null, serializationData, onResult);
62+
})
63+
.fail((error) => {
64+
onResult(error, error.statusCode, null);
65+
});
66+
67+
return deferred.promise;
68+
}
69+
70+
/**
71+
* @param {string[]} contributionIds
72+
* @param {boolean} includeDisabledApps
73+
* @param {string[]} assetTypes
74+
*/
75+
public getInstalledExtensions(
76+
contributionIds?: string[],
77+
includeDisabledApps?: boolean,
78+
assetTypes?: string[]
79+
): Promise<ContributionsInterfaces.InstalledExtension[]> {
80+
81+
let deferred = Q.defer<ContributionsInterfaces.InstalledExtension[]>();
82+
83+
let onResult = (err: any, statusCode: number, InstalledApps: ContributionsInterfaces.InstalledExtension[]) => {
84+
if (err) {
85+
err.statusCode = statusCode;
86+
deferred.reject(err);
87+
}
88+
else {
89+
deferred.resolve(InstalledApps);
90+
}
91+
};
92+
93+
let routeValues: any = {
94+
};
95+
96+
let queryValues: any = {
97+
contributionIds: contributionIds && contributionIds.join(";"),
98+
includeDisabledApps: includeDisabledApps,
99+
assetTypes: assetTypes && assetTypes.join(":"),
100+
};
101+
102+
this.vsoClient.getVersioningData("3.0-preview.1", "Contribution", "2648442b-fd63-4b9a-902f-0c913510f139", routeValues, queryValues)
103+
.then((versioningData: vsom.ClientVersioningData) => {
104+
let url: string = versioningData.requestUrl;
105+
let apiVersion: string = versioningData.apiVersion;
106+
let serializationData = { responseTypeMetadata: ContributionsInterfaces.TypeInfo.InstalledExtension, responseIsCollection: true };
107+
108+
this.restClient.getJson(url, apiVersion, null, serializationData, onResult);
109+
})
110+
.fail((error) => {
111+
onResult(error, error.statusCode, null);
112+
});
113+
114+
return deferred.promise;
115+
}
116+
117+
/**
118+
* @param {string} publisherName
119+
* @param {string} extensionName
120+
* @param {string[]} assetTypes
121+
*/
122+
public getInstalledExtensionByName(
123+
publisherName: string,
124+
extensionName: string,
125+
assetTypes?: string[]
126+
): Promise<ContributionsInterfaces.InstalledExtension> {
127+
128+
let deferred = Q.defer<ContributionsInterfaces.InstalledExtension>();
129+
130+
let onResult = (err: any, statusCode: number, InstalledApp: ContributionsInterfaces.InstalledExtension) => {
131+
if (err) {
132+
err.statusCode = statusCode;
133+
deferred.reject(err);
134+
}
135+
else {
136+
deferred.resolve(InstalledApp);
137+
}
138+
};
139+
140+
let routeValues: any = {
141+
publisherName: publisherName,
142+
extensionName: extensionName
143+
};
144+
145+
let queryValues: any = {
146+
assetTypes: assetTypes && assetTypes.join(":"),
147+
};
148+
149+
this.vsoClient.getVersioningData("3.0-preview.1", "Contribution", "3e2f6668-0798-4dcb-b592-bfe2fa57fde2", routeValues, queryValues)
150+
.then((versioningData: vsom.ClientVersioningData) => {
151+
let url: string = versioningData.requestUrl;
152+
let apiVersion: string = versioningData.apiVersion;
153+
let serializationData = { responseTypeMetadata: ContributionsInterfaces.TypeInfo.InstalledExtension, responseIsCollection: false };
154+
155+
this.restClient.getJson(url, apiVersion, null, serializationData, onResult);
156+
})
157+
.fail((error) => {
158+
onResult(error, error.statusCode, null);
159+
});
160+
161+
return deferred.promise;
162+
}
163+
164+
}

0 commit comments

Comments
 (0)