UNPKG

ngx-http-client-service

Version:

<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> [![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-) <!-- ALL-CONTRIBUTORS-BADGE:END -->

89 lines 10.3 kB
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