ngx-http-client-service
Version:
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> [](#contributors-) <!-- ALL-CONTRIBUTORS-BADGE:END -->
90 lines • 10.6 kB
JavaScript
import * as tslib_1 from "tslib";
import { ApiPathConstants } from '../../constants/api-path-generation.constants';
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
/**
* Injectable Http Options Service
*/
var ApiPathService = /** @class */ (function () {
/**
* @description creates an instance of APIPathGenerationLibrary
*/
function ApiPathService() {
// Common Constants
this.PATH_BASE = ApiPathConstants.PATH_BASE;
this.PATH_DIVIDER = ApiPathConstants.PATH_DIVIDER;
this.QUERY_SPECIFIER = ApiPathConstants.QUERY_SPECIFIER;
this.QUERY_DIVIDER = ApiPathConstants.QUERY_DIVIDER;
this.QUERY_ASSIGNER = ApiPathConstants.QUERY_ASSIGNER;
}
/**
* @description validating QueryParam.
* @param pathQuery as an argument of type PathQuery.
* @return constructed PathQuery Object.
*/
ApiPathService.prototype.modifyPathQuery = function (pathQuery) {
var constructedPathQuery = {};
Object.entries(pathQuery).filter(function (_a) {
var _b = tslib_1.__read(_a, 2), query = _b[0], queryValue = _b[1];
if (query) {
constructedPathQuery[query] = queryValue;
}
});
return constructedPathQuery;
};
/**
* @description createApiPath is a constructing method.
* @param pathComponent contains an array of string.
* @returns returns constructed api path url.
*/
ApiPathService.prototype.createApiPath = function (pathComponent) {
var _this = this;
var path = this.PATH_BASE;
pathComponent = pathComponent.filter(function (param) {
return param !== _this.PATH_DIVIDER;
});
path = path + pathComponent.join(this.PATH_DIVIDER);
return encodeURI(path);
};
/**
* @description Returns router parameterized path.
* @param apiPathParams contains partial url.
* @param pathQuery contains parameters to be passed as query parameters.
* @returns returns generated routed paramerized path.
*/
ApiPathService.prototype.createApiPathWithQuery = function (apiPathParams, pathQuery) {
var _this = this;
var path = this.createApiPath(apiPathParams);
if (!pathQuery) {
return path;
}
else {
pathQuery = this.modifyPathQuery(pathQuery);
if (Object.keys(pathQuery).length) {
path = decodeURI(path) + this.QUERY_SPECIFIER;
Object.entries(pathQuery).forEach(function (_a, index) {
var _b = tslib_1.__read(_a, 2), query = _b[0], queryValue = _b[1];
if (Object.keys(pathQuery).length === (index + 1)) {
path = path + query + _this.QUERY_ASSIGNER + queryValue;
}
else {
path = path + query + _this.QUERY_ASSIGNER + queryValue + _this.QUERY_DIVIDER;
}
});
}
return encodeURI(path);
}
};
ApiPathService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function ApiPathService_Factory() { return new ApiPathService(); }, token: ApiPathService, providedIn: "root" });
ApiPathService = tslib_1.__decorate([
Injectable({
providedIn: 'root'
})
/** api url generator Service all reusable and repeated functionalities can be managed
* It can contains common methods and common methods related params.
*/
], ApiPathService);
return ApiPathService;
}());
export { ApiPathService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXBhdGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1odHRwLWNsaWVudC1zZXJ2aWNlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2FwaS1wYXRoL2FwaS1wYXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDOztHQUVHO0FBUUg7SUFDRTs7T0FFRztJQUNIO1FBR0EsbUJBQW1CO1FBQ1gsY0FBUyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztRQUN2QyxpQkFBWSxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQztRQUM3QyxvQkFBZSxHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztRQUMvQyxtQkFBYyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztJQVB6RCxDQUFDO0lBVUQ7Ozs7T0FJRztJQUNLLHdDQUFlLEdBQXZCLFVBQXdCLFNBQW9CO1FBQzFDLElBQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsRUFBbUI7Z0JBQW5CLDBCQUFtQixFQUFsQixhQUFLLEVBQUUsa0JBQVU7WUFDbEQsSUFBSSxLQUFLLEVBQUU7Z0JBQ1Qsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDO2FBQzFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksc0NBQWEsR0FBcEIsVUFBcUIsYUFBdUI7UUFBNUMsaUJBT0M7UUFOQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFCLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQUMsS0FBYTtZQUNqRCxPQUFPLEtBQUssS0FBSyxLQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxHQUFHLElBQUksR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSwrQ0FBc0IsR0FBN0IsVUFBOEIsYUFBdUIsRUFBRSxTQUFvQjtRQUEzRSxpQkFrQkM7UUFqQkMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBQ0wsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDakMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEVBQW1CLEVBQUUsS0FBSzt3QkFBMUIsMEJBQW1CLEVBQWxCLGFBQUssRUFBRSxrQkFBVTtvQkFDbkQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTt3QkFDakQsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsS0FBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUM7cUJBQ3hEO3lCQUFNO3dCQUNMLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxHQUFHLEtBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxHQUFHLEtBQUksQ0FBQyxhQUFhLENBQUM7cUJBQzdFO2dCQUNILENBQUMsQ0FBQyxDQUFDO2FBQ0o7WUFDRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7O0lBcEVVLGNBQWM7UUFQMUIsVUFBVSxDQUFDO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQztRQUVGOztXQUVHO09BQ1UsY0FBYyxDQXFFMUI7eUJBbkZEO0NBbUZDLEFBckVELElBcUVDO1NBckVZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlQYXRoQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2FwaS1wYXRoLWdlbmVyYXRpb24uY29uc3RhbnRzJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXRoUXVlcnkgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tbW9uLWxpYi5tb2RlbCc7XHJcblxyXG4vKipcclxuICogSW5qZWN0YWJsZSBIdHRwIE9wdGlvbnMgU2VydmljZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5cclxuLyoqIGFwaSB1cmwgZ2VuZXJhdG9yIFNlcnZpY2UgYWxsIHJldXNhYmxlIGFuZCByZXBlYXRlZCBmdW5jdGlvbmFsaXRpZXMgY2FuIGJlIG1hbmFnZWRcclxuICogSXQgY2FuIGNvbnRhaW5zIGNvbW1vbiBtZXRob2RzIGFuZCBjb21tb24gbWV0aG9kcyByZWxhdGVkIHBhcmFtcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBcGlQYXRoU2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIGNyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQVBJUGF0aEdlbmVyYXRpb25MaWJyYXJ5XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICAvLyBDb21tb24gQ29uc3RhbnRzXHJcbiAgcHJpdmF0ZSBQQVRIX0JBU0UgPSBBcGlQYXRoQ29uc3RhbnRzLlBBVEhfQkFTRTtcclxuICBwcml2YXRlIFBBVEhfRElWSURFUiA9IEFwaVBhdGhDb25zdGFudHMuUEFUSF9ESVZJREVSO1xyXG4gIHByaXZhdGUgUVVFUllfU1BFQ0lGSUVSID0gQXBpUGF0aENvbnN0YW50cy5RVUVSWV9TUEVDSUZJRVI7XHJcbiAgcHJpdmF0ZSBRVUVSWV9ESVZJREVSID0gQXBpUGF0aENvbnN0YW50cy5RVUVSWV9ESVZJREVSO1xyXG4gIHByaXZhdGUgUVVFUllfQVNTSUdORVIgPSBBcGlQYXRoQ29uc3RhbnRzLlFVRVJZX0FTU0lHTkVSO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIHZhbGlkYXRpbmcgUXVlcnlQYXJhbS5cclxuICAgKiBAcGFyYW0gcGF0aFF1ZXJ5IGFzIGFuIGFyZ3VtZW50IG9mIHR5cGUgUGF0aFF1ZXJ5LlxyXG4gICAqIEByZXR1cm4gY29uc3RydWN0ZWQgUGF0aFF1ZXJ5IE9iamVjdC5cclxuICAgKi9cclxuICBwcml2YXRlIG1vZGlmeVBhdGhRdWVyeShwYXRoUXVlcnk6IFBhdGhRdWVyeSk6IFBhdGhRdWVyeSB7XHJcbiAgICBjb25zdCBjb25zdHJ1Y3RlZFBhdGhRdWVyeSA9IHt9O1xyXG4gICAgT2JqZWN0LmVudHJpZXMocGF0aFF1ZXJ5KS5maWx0ZXIoKFtxdWVyeSwgcXVlcnlWYWx1ZV0pID0+IHtcclxuICAgICAgaWYgKHF1ZXJ5KSB7XHJcbiAgICAgICAgY29uc3RydWN0ZWRQYXRoUXVlcnlbcXVlcnldID0gcXVlcnlWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY29uc3RydWN0ZWRQYXRoUXVlcnk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gY3JlYXRlQXBpUGF0aCBpcyBhIGNvbnN0cnVjdGluZyBtZXRob2QuXHJcbiAgICogQHBhcmFtIHBhdGhDb21wb25lbnQgY29udGFpbnMgYW4gYXJyYXkgb2Ygc3RyaW5nLlxyXG4gICAqIEByZXR1cm5zIHJldHVybnMgY29uc3RydWN0ZWQgYXBpIHBhdGggdXJsLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGVBcGlQYXRoKHBhdGhDb21wb25lbnQ6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIGxldCBwYXRoID0gdGhpcy5QQVRIX0JBU0U7XHJcbiAgICBwYXRoQ29tcG9uZW50ID0gcGF0aENvbXBvbmVudC5maWx0ZXIoKHBhcmFtOiBzdHJpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIHBhcmFtICE9PSB0aGlzLlBBVEhfRElWSURFUjtcclxuICAgIH0pO1xyXG4gICAgcGF0aCA9IHBhdGggKyBwYXRoQ29tcG9uZW50LmpvaW4odGhpcy5QQVRIX0RJVklERVIpO1xyXG4gICAgcmV0dXJuIGVuY29kZVVSSShwYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBSZXR1cm5zIHJvdXRlciBwYXJhbWV0ZXJpemVkIHBhdGguXHJcbiAgICogQHBhcmFtIGFwaVBhdGhQYXJhbXMgY29udGFpbnMgcGFydGlhbCB1cmwuXHJcbiAgICogQHBhcmFtIHBhdGhRdWVyeSBjb250YWlucyBwYXJhbWV0ZXJzIHRvIGJlIHBhc3NlZCBhcyBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqIEByZXR1cm5zIHJldHVybnMgZ2VuZXJhdGVkIHJvdXRlZCBwYXJhbWVyaXplZCBwYXRoLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGVBcGlQYXRoV2l0aFF1ZXJ5KGFwaVBhdGhQYXJhbXM6IHN0cmluZ1tdLCBwYXRoUXVlcnk6IFBhdGhRdWVyeSk6IHN0cmluZyB7XHJcbiAgICBsZXQgcGF0aCA9IHRoaXMuY3JlYXRlQXBpUGF0aChhcGlQYXRoUGFyYW1zKTtcclxuICAgIGlmICghcGF0aFF1ZXJ5KSB7XHJcbiAgICAgIHJldHVybiBwYXRoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGF0aFF1ZXJ5ID0gdGhpcy5tb2RpZnlQYXRoUXVlcnkocGF0aFF1ZXJ5KTtcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKHBhdGhRdWVyeSkubGVuZ3RoKSB7XHJcbiAgICAgICAgcGF0aCA9IGRlY29kZVVSSShwYXRoKSArIHRoaXMuUVVFUllfU1BFQ0lGSUVSO1xyXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHBhdGhRdWVyeSkuZm9yRWFjaCgoW3F1ZXJ5LCBxdWVyeVZhbHVlXSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhwYXRoUXVlcnkpLmxlbmd0aCA9PT0gKGluZGV4ICsgMSkpIHtcclxuICAgICAgICAgICAgcGF0aCA9IHBhdGggKyBxdWVyeSArIHRoaXMuUVVFUllfQVNTSUdORVIgKyBxdWVyeVZhbHVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcGF0aCA9IHBhdGggKyBxdWVyeSArIHRoaXMuUVVFUllfQVNTSUdORVIgKyBxdWVyeVZhbHVlICsgdGhpcy5RVUVSWV9ESVZJREVSO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBlbmNvZGVVUkkocGF0aCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbiJdfQ==