UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

38 lines 5.38 kB
import { map, pickBy, identity } from 'lodash-es'; export class RequestConfiguration { constructor(requestConfiguration) { this.headers = new RequestConfigurationDynamicArray(requestConfiguration.headers); this.method = requestConfiguration.method; this.operation = requestConfiguration.operation; this.requestParams = new RequestConfigurationDynamicArray(requestConfiguration.requestParams); this.body = requestConfiguration.body; this.url = requestConfiguration.url; } toRequest() { return pickBy({ body: this.method === 'GET' ? '' : this.body, headers: this.headers.toObject(), method: this.method, operation: this.operation, requestParams: this.requestParams.toObject(), url: this.url }, identity); } } // tslint:disable-next-line:max-classes-per-file export class RequestConfigurationDynamicArray extends Array { constructor(obj) { super(); this.push(...map(obj, (value, key) => ({ key, value }))); } toObject() { return this.reduce((obj, element) => { obj[element.key] = element.value; return obj; }, {}); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jb25maWd1cmF0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYXV0aC1jb25maWd1cmF0aW9uL3Nzby1jb25maWd1cmF0aW9uL3RlbXBsYXRlLXBhcnRzL3JlcXVlc3QtY29uZmlndXJhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFbEQsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixZQUFZLG9CQUFnQztRQUMxQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZ0NBQWdDLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUM7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGdDQUFnQyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlGLElBQUksQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxHQUFHLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxNQUFNLENBQ1g7WUFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDNUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQzVDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztTQUNkLEVBQ0QsUUFBUSxDQUNLLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBRUQsZ0RBQWdEO0FBQ2hELE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxLQUFLO0lBQ3pELFlBQVksR0FBK0I7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsSUFBSSxDQUNQLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0IsR0FBRztZQUNILEtBQUs7U0FDTixDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDbEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ2pDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1NPUmVxdWVzdFBhcmFtcywgSGVhZGVycywgU1NPUmVxdWVzdCB9IGZyb20gJy4uL3Nzby1jb25maWd1cmF0aW9uLm1vZGVsJztcbmltcG9ydCB7IG1hcCwgcGlja0J5LCBpZGVudGl0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBjbGFzcyBSZXF1ZXN0Q29uZmlndXJhdGlvbiB7XG4gIGJvZHk/OiBzdHJpbmc7XG4gIGhlYWRlcnM6IFJlcXVlc3RDb25maWd1cmF0aW9uRHluYW1pY0FycmF5O1xuICBtZXRob2Q6IHN0cmluZztcbiAgb3BlcmF0aW9uOiBzdHJpbmc7XG4gIHJlcXVlc3RQYXJhbXM6IFJlcXVlc3RDb25maWd1cmF0aW9uRHluYW1pY0FycmF5O1xuICB1cmw/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocmVxdWVzdENvbmZpZ3VyYXRpb246IFNTT1JlcXVlc3QpIHtcbiAgICB0aGlzLmhlYWRlcnMgPSBuZXcgUmVxdWVzdENvbmZpZ3VyYXRpb25EeW5hbWljQXJyYXkocmVxdWVzdENvbmZpZ3VyYXRpb24uaGVhZGVycyk7XG4gICAgdGhpcy5tZXRob2QgPSByZXF1ZXN0Q29uZmlndXJhdGlvbi5tZXRob2Q7XG4gICAgdGhpcy5vcGVyYXRpb24gPSByZXF1ZXN0Q29uZmlndXJhdGlvbi5vcGVyYXRpb247XG4gICAgdGhpcy5yZXF1ZXN0UGFyYW1zID0gbmV3IFJlcXVlc3RDb25maWd1cmF0aW9uRHluYW1pY0FycmF5KHJlcXVlc3RDb25maWd1cmF0aW9uLnJlcXVlc3RQYXJhbXMpO1xuICAgIHRoaXMuYm9keSA9IHJlcXVlc3RDb25maWd1cmF0aW9uLmJvZHk7XG4gICAgdGhpcy51cmwgPSByZXF1ZXN0Q29uZmlndXJhdGlvbi51cmw7XG4gIH1cblxuICB0b1JlcXVlc3QoKTogU1NPUmVxdWVzdCB7XG4gICAgcmV0dXJuIHBpY2tCeShcbiAgICAgIHtcbiAgICAgICAgYm9keTogdGhpcy5tZXRob2QgPT09ICdHRVQnID8gJycgOiB0aGlzLmJvZHksXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycy50b09iamVjdCgpLFxuICAgICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgICBvcGVyYXRpb246IHRoaXMub3BlcmF0aW9uLFxuICAgICAgICByZXF1ZXN0UGFyYW1zOiB0aGlzLnJlcXVlc3RQYXJhbXMudG9PYmplY3QoKSxcbiAgICAgICAgdXJsOiB0aGlzLnVybFxuICAgICAgfSxcbiAgICAgIGlkZW50aXR5XG4gICAgKSBhcyBTU09SZXF1ZXN0O1xuICB9XG59XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtY2xhc3Nlcy1wZXItZmlsZVxuZXhwb3J0IGNsYXNzIFJlcXVlc3RDb25maWd1cmF0aW9uRHluYW1pY0FycmF5IGV4dGVuZHMgQXJyYXkge1xuICBjb25zdHJ1Y3RvcihvYmo6IFNTT1JlcXVlc3RQYXJhbXMgfCBIZWFkZXJzKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnB1c2goXG4gICAgICAuLi5tYXAob2JqLCAodmFsdWUsIGtleSkgPT4gKHtcbiAgICAgICAga2V5LFxuICAgICAgICB2YWx1ZVxuICAgICAgfSkpXG4gICAgKTtcbiAgfVxuXG4gIHRvT2JqZWN0KCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiB0aGlzLnJlZHVjZSgob2JqLCBlbGVtZW50KSA9PiB7XG4gICAgICBvYmpbZWxlbWVudC5rZXldID0gZWxlbWVudC52YWx1ZTtcbiAgICAgIHJldHVybiBvYmo7XG4gICAgfSwge30pO1xuICB9XG59XG4iXX0=