ngx-http-client-service
Version:
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> [](#contributors-) <!-- ALL-CONTRIBUTORS-BADGE:END -->
89 lines • 10.3 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
*/
let ApiPathService =
/** api url generator Service all reusable and repeated functionalities can be managed
* It can contains common methods and common methods related params.
*/
class ApiPathService {
/**
* @description creates an instance of APIPathGenerationLibrary
*/
constructor() {
// 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.
*/
modifyPathQuery(pathQuery) {
const constructedPathQuery = {};
Object.entries(pathQuery).filter(([query, queryValue]) => {
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.
*/
createApiPath(pathComponent) {
let path = this.PATH_BASE;
pathComponent = pathComponent.filter((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.
*/
createApiPathWithQuery(apiPathParams, pathQuery) {
let 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(([query, queryValue], index) => {
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);
export { ApiPathService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXBhdGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1odHRwLWNsaWVudC1zZXJ2aWNlLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2FwaS1wYXRoL2FwaS1wYXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDOztHQUVHO0FBUUgsSUFBYSxjQUFjO0FBSDNCOztHQUVHO0FBQ0gsTUFBYSxjQUFjO0lBQ3pCOztPQUVHO0lBQ0g7UUFHQSxtQkFBbUI7UUFDWCxjQUFTLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDO1FBQ3ZDLGlCQUFZLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1FBQzdDLG9CQUFlLEdBQUcsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1FBQ25ELGtCQUFhLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1FBQy9DLG1CQUFjLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDO0lBUHpELENBQUM7SUFVRDs7OztPQUlHO0lBQ0ssZUFBZSxDQUFDLFNBQW9CO1FBQzFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLEtBQUssRUFBRTtnQkFDVCxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUM7YUFDMUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sb0JBQW9CLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsYUFBdUI7UUFDMUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3JELE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLEdBQUcsSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLHNCQUFzQixDQUFDLGFBQXVCLEVBQUUsU0FBb0I7UUFDekUsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUM7U0FDYjthQUFNO1lBQ0wsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDakMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUMvRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO3dCQUNqRCxJQUFJLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQztxQkFDeEQ7eUJBQU07d0JBQ0wsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztxQkFDN0U7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztDQUNGLENBQUE7O0FBckVZLGNBQWM7SUFQMUIsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztJQUVGOztPQUVHO0dBQ1UsY0FBYyxDQXFFMUI7U0FyRVksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwaVBhdGhDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXBpLXBhdGgtZ2VuZXJhdGlvbi5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhdGhRdWVyeSB9IGZyb20gJy4uLy4uL21vZGVscy9jb21tb24tbGliLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBJbmplY3RhYmxlIEh0dHAgT3B0aW9ucyBTZXJ2aWNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcblxyXG4vKiogYXBpIHVybCBnZW5lcmF0b3IgU2VydmljZSBhbGwgcmV1c2FibGUgYW5kIHJlcGVhdGVkIGZ1bmN0aW9uYWxpdGllcyBjYW4gYmUgbWFuYWdlZFxyXG4gKiBJdCBjYW4gY29udGFpbnMgY29tbW9uIG1ldGhvZHMgYW5kIGNvbW1vbiBtZXRob2RzIHJlbGF0ZWQgcGFyYW1zLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFwaVBhdGhTZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gY3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBBUElQYXRoR2VuZXJhdGlvbkxpYnJhcnlcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIC8vIENvbW1vbiBDb25zdGFudHNcclxuICBwcml2YXRlIFBBVEhfQkFTRSA9IEFwaVBhdGhDb25zdGFudHMuUEFUSF9CQVNFO1xyXG4gIHByaXZhdGUgUEFUSF9ESVZJREVSID0gQXBpUGF0aENvbnN0YW50cy5QQVRIX0RJVklERVI7XHJcbiAgcHJpdmF0ZSBRVUVSWV9TUEVDSUZJRVIgPSBBcGlQYXRoQ29uc3RhbnRzLlFVRVJZX1NQRUNJRklFUjtcclxuICBwcml2YXRlIFFVRVJZX0RJVklERVIgPSBBcGlQYXRoQ29uc3RhbnRzLlFVRVJZX0RJVklERVI7XHJcbiAgcHJpdmF0ZSBRVUVSWV9BU1NJR05FUiA9IEFwaVBhdGhDb25zdGFudHMuUVVFUllfQVNTSUdORVI7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gdmFsaWRhdGluZyBRdWVyeVBhcmFtLlxyXG4gICAqIEBwYXJhbSBwYXRoUXVlcnkgYXMgYW4gYXJndW1lbnQgb2YgdHlwZSBQYXRoUXVlcnkuXHJcbiAgICogQHJldHVybiBjb25zdHJ1Y3RlZCBQYXRoUXVlcnkgT2JqZWN0LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgbW9kaWZ5UGF0aFF1ZXJ5KHBhdGhRdWVyeTogUGF0aFF1ZXJ5KTogUGF0aFF1ZXJ5IHtcclxuICAgIGNvbnN0IGNvbnN0cnVjdGVkUGF0aFF1ZXJ5ID0ge307XHJcbiAgICBPYmplY3QuZW50cmllcyhwYXRoUXVlcnkpLmZpbHRlcigoW3F1ZXJ5LCBxdWVyeVZhbHVlXSkgPT4ge1xyXG4gICAgICBpZiAocXVlcnkpIHtcclxuICAgICAgICBjb25zdHJ1Y3RlZFBhdGhRdWVyeVtxdWVyeV0gPSBxdWVyeVZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjb25zdHJ1Y3RlZFBhdGhRdWVyeTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBjcmVhdGVBcGlQYXRoIGlzIGEgY29uc3RydWN0aW5nIG1ldGhvZC5cclxuICAgKiBAcGFyYW0gcGF0aENvbXBvbmVudCBjb250YWlucyBhbiBhcnJheSBvZiBzdHJpbmcuXHJcbiAgICogQHJldHVybnMgcmV0dXJucyBjb25zdHJ1Y3RlZCBhcGkgcGF0aCB1cmwuXHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZUFwaVBhdGgocGF0aENvbXBvbmVudDogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgbGV0IHBhdGggPSB0aGlzLlBBVEhfQkFTRTtcclxuICAgIHBhdGhDb21wb25lbnQgPSBwYXRoQ29tcG9uZW50LmZpbHRlcigocGFyYW06IHN0cmluZykgPT4ge1xyXG4gICAgICByZXR1cm4gcGFyYW0gIT09IHRoaXMuUEFUSF9ESVZJREVSO1xyXG4gICAgfSk7XHJcbiAgICBwYXRoID0gcGF0aCArIHBhdGhDb21wb25lbnQuam9pbih0aGlzLlBBVEhfRElWSURFUik7XHJcbiAgICByZXR1cm4gZW5jb2RlVVJJKHBhdGgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIFJldHVybnMgcm91dGVyIHBhcmFtZXRlcml6ZWQgcGF0aC5cclxuICAgKiBAcGFyYW0gYXBpUGF0aFBhcmFtcyBjb250YWlucyBwYXJ0aWFsIHVybC5cclxuICAgKiBAcGFyYW0gcGF0aFF1ZXJ5IGNvbnRhaW5zIHBhcmFtZXRlcnMgdG8gYmUgcGFzc2VkIGFzIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICogQHJldHVybnMgcmV0dXJucyBnZW5lcmF0ZWQgcm91dGVkIHBhcmFtZXJpemVkIHBhdGguXHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZUFwaVBhdGhXaXRoUXVlcnkoYXBpUGF0aFBhcmFtczogc3RyaW5nW10sIHBhdGhRdWVyeTogUGF0aFF1ZXJ5KTogc3RyaW5nIHtcclxuICAgIGxldCBwYXRoID0gdGhpcy5jcmVhdGVBcGlQYXRoKGFwaVBhdGhQYXJhbXMpO1xyXG4gICAgaWYgKCFwYXRoUXVlcnkpIHtcclxuICAgICAgcmV0dXJuIHBhdGg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwYXRoUXVlcnkgPSB0aGlzLm1vZGlmeVBhdGhRdWVyeShwYXRoUXVlcnkpO1xyXG4gICAgICBpZiAoT2JqZWN0LmtleXMocGF0aFF1ZXJ5KS5sZW5ndGgpIHtcclxuICAgICAgICBwYXRoID0gZGVjb2RlVVJJKHBhdGgpICsgdGhpcy5RVUVSWV9TUEVDSUZJRVI7XHJcbiAgICAgICAgT2JqZWN0LmVudHJpZXMocGF0aFF1ZXJ5KS5mb3JFYWNoKChbcXVlcnksIHF1ZXJ5VmFsdWVdLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgaWYgKE9iamVjdC5rZXlzKHBhdGhRdWVyeSkubGVuZ3RoID09PSAoaW5kZXggKyAxKSkge1xyXG4gICAgICAgICAgICBwYXRoID0gcGF0aCArIHF1ZXJ5ICsgdGhpcy5RVUVSWV9BU1NJR05FUiArIHF1ZXJ5VmFsdWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwYXRoID0gcGF0aCArIHF1ZXJ5ICsgdGhpcy5RVUVSWV9BU1NJR05FUiArIHF1ZXJ5VmFsdWUgKyB0aGlzLlFVRVJZX0RJVklERVI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGVuY29kZVVSSShwYXRoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG5cclxuIl19