34 lines
595 B
JavaScript
34 lines
595 B
JavaScript
export default class UrlBuilder {
|
|
constructor(baseUrl) {
|
|
this.baseUrl = baseUrl;
|
|
this.pathParams = {};
|
|
this.queryParams = {};
|
|
this.headerParams = {};
|
|
}
|
|
|
|
withPathParams(params = {}) {
|
|
this.pathParams = params;
|
|
return this;
|
|
}
|
|
|
|
withQueryParams(params = {}) {
|
|
this.queryParams = params;
|
|
return this;
|
|
}
|
|
|
|
withHeaderParams(params = {}) {
|
|
this.headerParams = params;
|
|
return this;
|
|
}
|
|
|
|
build() {
|
|
let path = this.baseUrl;
|
|
|
|
for (const key of Object.keys(this.pathParams)) {
|
|
path += `/:${key}`;
|
|
}
|
|
|
|
return path;
|
|
}
|
|
}
|