@@ -31,7 +31,7 @@ export class OneNoteApiBase {
3131 this.queryParams = queryParams;
3232 }
3333
34- protected requestPromise(url: string, data?: XHRData, contentType?: string, httpMethod?: string, isFullUrl?: boolean, urlContainsVersion?: boolean): Promise<ResponsePackage<any>> {
34+ protected requestPromise(url: string, data?: XHRData, contentType?: string, httpMethod?: string, isFullUrl?: boolean, urlContainsVersion?: boolean, extraQueryParams?: { [key: string]: string } ): Promise<ResponsePackage<any>> {
3535 let fullUrl;
3636 if (isFullUrl) {
3737 fullUrl = url;
@@ -40,7 +40,7 @@ export class OneNoteApiBase {
4040 }
4141
4242 // Append specified query params
43- fullUrl = this.appendQueryParams(fullUrl);
43+ fullUrl = this.appendQueryParams(fullUrl, extraQueryParams );
4444
4545 if (!contentType) {
4646 contentType = "application/json";
@@ -55,19 +55,32 @@ export class OneNoteApiBase {
5555 }));
5656 }
5757
58- private appendQueryParams(url: string): string {
59- let queryParams = this.queryParams;
60- if (!queryParams) {
58+ private appendQueryParams(url: string, extraQueryParams?: { [key: string]: string }): string {
59+ // Merge both constructor query params and parameter query params
60+ const newQueryParams = {};
61+ if (this.queryParams) {
62+ for (const key in this.queryParams) {
63+ newQueryParams[key] = this.queryParams[key];
64+ }
65+ }
66+ if (extraQueryParams) {
67+ for (const key in extraQueryParams) {
68+ newQueryParams[key] = extraQueryParams[key];
69+ }
70+ }
71+
72+ if (!newQueryParams || Object.keys(newQueryParams).length === 0) {
6173 return url;
6274 }
6375
6476 let queryParamArray = [];
65- for (const key in queryParams ) {
66- if (queryParams .hasOwnProperty(key)) {
67- const queryParamValue = encodeURIComponent(queryParams [key]);
77+ for (const key in newQueryParams ) {
78+ if (newQueryParams .hasOwnProperty(key)) {
79+ const queryParamValue = encodeURIComponent(newQueryParams [key]);
6880 queryParamArray.push(key + "=" + queryParamValue);
6981 }
7082 }
83+
7184 const serializedQueryParams = queryParamArray.join("&");
7285 if (url.indexOf("?") === -1) {
7386 return url + "?" + serializedQueryParams;
0 commit comments