@experteam-mx/ngx-services 18.8.24 → 18.8.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/apis/api-catalogs.service.mjs +10 -1
- package/esm2022/lib/apis/models/api-catalog.types.mjs +1 -1
- package/esm2022/lib/apis/models/api-reports.interfaces.mjs +1 -1
- package/fesm2022/experteam-mx-ngx-services.mjs +9 -0
- package/fesm2022/experteam-mx-ngx-services.mjs.map +1 -1
- package/lib/apis/api-catalogs.service.d.ts +7 -1
- package/lib/apis/models/api-catalog.types.d.ts +3 -0
- package/lib/apis/models/api-reports.interfaces.d.ts +1 -0
- package/package.json +1 -1
- package/esm2022/lib/apis/api-external-ops.service.mjs +0 -87
- package/esm2022/lib/apis/models/api-external-ops.interfaces.mjs +0 -2
- package/esm2022/lib/apis/models/api-external-ops.types.mjs +0 -2
- package/esm2022/lib/interceptors/api-key.interceptor.mjs +0 -48
- package/lib/apis/api-external-ops.service.d.ts +0 -54
- package/lib/apis/models/api-external-ops.interfaces.d.ts +0 -21
- package/lib/apis/models/api-external-ops.types.d.ts +0 -35
- package/lib/interceptors/api-key.interceptor.d.ts +0 -35
|
@@ -2,7 +2,7 @@ import { Environment } from '../ngx-services.models';
|
|
|
2
2
|
import { HttpClient } from '@angular/common/http';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
4
|
import { QueryParams } from './models/api.models';
|
|
5
|
-
import { BusinessPartyTraderTypesOut, CancellationReasonIn, CancellationReasonOut, CancellationReasonsOut, CountriesOut, CountryIn, CountryOut, CurrenciesOut, ExtraChargeIn, ExtraChargeOut, ExtraChargesOut, GenericFolioIn, GenericFolioOut, GenericFoliosOut, HolidayIn, HolidayOut, HolidaysOut, IdentificationTypeIn, IdentificationTypeNumberValidationIn, IdentificationTypeNumberValidationOut, IdentificationTypeOut, IdentificationTypesOut, LanguagesOut, ManagementAreasOut, OperationTypesOut, PostalLocationsOut, ProductIn, ProductOut, QuestionIn, QuestionOut, QuestionsOut, RegionsOut, ShipmentContentTypesOut, ShipmentGroupsOut, ShipmentIncomeTypeIn, ShipmentIncomeTypeOut, ShipmentIncomeTypesOut, ShipmentScopesOut, ShipmentStatusesOut, UniqueFolioIn, UniqueFolioOut, UniqueFoliosOut, UnitsOut, ZonesOut } from './models/api-catalog.types';
|
|
5
|
+
import { BusinessPartyTraderTypesOut, CancellationReasonIn, CancellationReasonOut, CancellationReasonsOut, CountriesOut, CountryIn, CountryOut, CurrenciesOut, CurrencyOut, ExtraChargeIn, ExtraChargeOut, ExtraChargesOut, GenericFolioIn, GenericFolioOut, GenericFoliosOut, HolidayIn, HolidayOut, HolidaysOut, IdentificationTypeIn, IdentificationTypeNumberValidationIn, IdentificationTypeNumberValidationOut, IdentificationTypeOut, IdentificationTypesOut, LanguagesOut, ManagementAreasOut, OperationTypesOut, PostalLocationsOut, ProductIn, ProductOut, QuestionIn, QuestionOut, QuestionsOut, RegionsOut, ShipmentContentTypesOut, ShipmentGroupsOut, ShipmentIncomeTypeIn, ShipmentIncomeTypeOut, ShipmentIncomeTypesOut, ShipmentScopesOut, ShipmentStatusesOut, UniqueFolioIn, UniqueFolioOut, UniqueFoliosOut, UnitsOut, ZonesOut } from './models/api-catalog.types';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class ApiCatalogsService {
|
|
8
8
|
private environments;
|
|
@@ -190,6 +190,12 @@ export declare class ApiCatalogsService {
|
|
|
190
190
|
* @return {Observable<CurrenciesOut>} An observable that emits the retrieved currencies data.
|
|
191
191
|
*/
|
|
192
192
|
getCurrencies(params: QueryParams): Observable<CurrenciesOut>;
|
|
193
|
+
/**
|
|
194
|
+
* Retrieves currency information by ID.
|
|
195
|
+
* @param id - The unique identifier of the currency to retrieve.
|
|
196
|
+
* @returns An Observable that emits the currency data.
|
|
197
|
+
*/
|
|
198
|
+
getCurrency(id: number): Observable<CurrencyOut>;
|
|
193
199
|
/**
|
|
194
200
|
* Fetches the list of available languages based on the provided query parameters.
|
|
195
201
|
*
|
|
@@ -120,6 +120,7 @@ export interface ShipmentReports {
|
|
|
120
120
|
export interface ShipmentLandingReport extends ActiveLessLaravelModel {
|
|
121
121
|
authorization_numbers: string[] | null;
|
|
122
122
|
commercial_invoice: boolean | null;
|
|
123
|
+
company_country_id: number;
|
|
123
124
|
company_id: number;
|
|
124
125
|
company_name: string;
|
|
125
126
|
country_id: number;
|
package/package.json
CHANGED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common/http";
|
|
5
|
-
export class ApiExternalOperationsService {
|
|
6
|
-
http;
|
|
7
|
-
environment;
|
|
8
|
-
appKey;
|
|
9
|
-
constructor(http, environment) {
|
|
10
|
-
this.http = http;
|
|
11
|
-
this.environment = environment;
|
|
12
|
-
this.appKey = environment.apiExternalOperationsKey ?? '';
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Getter method to retrieve the API's external operations URL.
|
|
16
|
-
* Fetches the URL from the `apiExternalOperationsUrl` property of the environment object.
|
|
17
|
-
* Defaults to an empty string if the property is undefined or null.
|
|
18
|
-
*
|
|
19
|
-
* @return {string} The external operations URL or an empty string if unavailable.
|
|
20
|
-
*/
|
|
21
|
-
get url() {
|
|
22
|
-
return this.environment.apiExternalOperationsUrl ?? '';
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Retrieves delivery confirmation details based on the provided OTP code.
|
|
26
|
-
*
|
|
27
|
-
* @param {string} otpCode - The OTP code used to search for delivery confirmation.
|
|
28
|
-
* @return {Observable<DeliveryConfirmationData>} An observable containing the delivery confirmation data.
|
|
29
|
-
*/
|
|
30
|
-
getDeliveryConfirmation(otpCode) {
|
|
31
|
-
return this.http.get(`${this.url}/delivery-confirmation/search/${otpCode}`)
|
|
32
|
-
.pipe(map(({ data }) => data));
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Generates a delivery confirmation by sending the provided payload to the API.
|
|
36
|
-
*
|
|
37
|
-
* @param {DeliveryConfirmationGenerateIn} payload - The input payload required to generate the delivery confirmation.
|
|
38
|
-
* @return {Observable<DeliveryConfirmationGenerateOut>} An observable that emits the generated delivery confirmation data.
|
|
39
|
-
*/
|
|
40
|
-
postDeliveryConfirmationGenerate(payload) {
|
|
41
|
-
return this.http.post(`${this.url}/delivery-confirmation/generate`, payload, {
|
|
42
|
-
headers: this.getAppKeyHeader(),
|
|
43
|
-
}).pipe(map(({ data }) => data));
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Confirms the completion of a delivery operation by making a PATCH request.
|
|
47
|
-
*
|
|
48
|
-
* @param {Object} input - The input parameters for the method.
|
|
49
|
-
* @param {string} input.operationId - The unique identifier of the delivery operation to be confirmed.
|
|
50
|
-
* @param {string} input.keyOTP - The one-time password (OTP) key associated with the delivery confirmation.
|
|
51
|
-
* @return {Observable<Object>} - An observable containing the response data from the API.
|
|
52
|
-
*/
|
|
53
|
-
patchDeliveryConfirmationComplete({ keyOTP, operationId, }) {
|
|
54
|
-
return this.http.patch(`${this.url}/delivery-confirmation/completed/${keyOTP}`, null, {
|
|
55
|
-
headers: this.getAppKeyHeader(),
|
|
56
|
-
params: { operation_id: operationId }
|
|
57
|
-
}).pipe(map(({ data }) => data));
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Cancels a delivery confirmation by sending an OTP and additional data to the server.
|
|
61
|
-
*
|
|
62
|
-
* @param {Object} param0 - The parameter object containing the required properties.
|
|
63
|
-
* @param {string} param0.otp - The one-time password to authenticate the cancellation request.
|
|
64
|
-
* @param {Object} param0.body - Additional body data required for cancellation.
|
|
65
|
-
* @return {Observable<Object>} An observable that emits the server's response when the cancellation is processed.
|
|
66
|
-
*/
|
|
67
|
-
putDeliveryConfirmation({ otp, ...body }) {
|
|
68
|
-
return this.http.put(`${this.url}/delivery-confirmation/confirmation/${otp}`, body, {
|
|
69
|
-
headers: this.getAppKeyHeader(),
|
|
70
|
-
}).pipe(map(({ data }) => data));
|
|
71
|
-
}
|
|
72
|
-
getAppKeyHeader() {
|
|
73
|
-
return { ...(this.appKey && { AppKey: this.appKey }) };
|
|
74
|
-
}
|
|
75
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiExternalOperationsService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
76
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiExternalOperationsService, providedIn: 'root' });
|
|
77
|
-
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiExternalOperationsService, decorators: [{
|
|
79
|
-
type: Injectable,
|
|
80
|
-
args: [{
|
|
81
|
-
providedIn: 'root'
|
|
82
|
-
}]
|
|
83
|
-
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
84
|
-
type: Inject,
|
|
85
|
-
args: ['env']
|
|
86
|
-
}] }] });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWV4dGVybmFsLW9wcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWV4dGVybmFsLW9wcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTs7O0FBY3BDLE1BQU0sT0FBTyw0QkFBNEI7SUFJN0I7SUFDZTtJQUpqQixNQUFNLENBQVE7SUFFdEIsWUFDVSxJQUFnQixFQUNELFdBQXdCO1FBRHZDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUUvQyxJQUFJLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyx3QkFBd0IsSUFBSSxFQUFFLENBQUE7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyx3QkFBd0IsSUFBSSxFQUFFLENBQUE7SUFDeEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksdUJBQXVCLENBQUUsT0FBZTtRQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE0QyxHQUFHLElBQUksQ0FBQyxHQUFHLGlDQUFpQyxPQUFPLEVBQUUsQ0FBQzthQUNuSCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxnQ0FBZ0MsQ0FBRSxPQUF1QztRQUM5RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxHQUFHLGlDQUFpQyxFQUM1QyxPQUFPLEVBQUU7WUFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtTQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxpQ0FBaUMsQ0FBRSxFQUN4QyxNQUFNLEVBQ04sV0FBVyxHQUNvQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUNwQixHQUFHLElBQUksQ0FBQyxHQUFHLG9DQUFvQyxNQUFNLEVBQUUsRUFDdkQsSUFBSSxFQUFFO1lBQ0osT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDL0IsTUFBTSxFQUFFLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRTtTQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSx1QkFBdUIsQ0FBRSxFQUM5QixHQUFHLEVBQ0gsR0FBRyxJQUFJLEVBQ2dCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUNBQXVDLEdBQUcsRUFBRSxFQUN2RCxJQUFJLEVBQUU7WUFDSixPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRTtTQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVPLGVBQWU7UUFDckIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUE7SUFDeEQsQ0FBQzt3R0F2RlUsNEJBQTRCLDRDQUs3QixLQUFLOzRHQUxKLDRCQUE0QixjQUYzQixNQUFNOzs0RkFFUCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQge1xyXG4gIERlbGl2ZXJ5Q29uZmlybWF0aW9uQ29tcGxldGVJbixcclxuICBEZWxpdmVyeUNvbmZpcm1hdGlvbkdlbmVyYXRlSW4sXHJcbiAgRGVsaXZlcnlDb25maXJtYXRpb25HZW5lcmF0ZU91dCxcclxuICBEZWxpdmVyeUNvbmZpcm1hdGlvbkluLFxyXG4gIERlbGl2ZXJ5Q29uZmlybWF0aW9uU2VhcmNoT3V0XHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLWV4dGVybmFsLW9wcy50eXBlcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlFeHRlcm5hbE9wZXJhdGlvbnNTZXJ2aWNlIHtcclxuICBwcml2YXRlIGFwcEtleTogc3RyaW5nXHJcblxyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50XHJcbiAgKSB7XHJcbiAgICB0aGlzLmFwcEtleSA9IGVudmlyb25tZW50LmFwaUV4dGVybmFsT3BlcmF0aW9uc0tleSA/PyAnJ1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0dGVyIG1ldGhvZCB0byByZXRyaWV2ZSB0aGUgQVBJJ3MgZXh0ZXJuYWwgb3BlcmF0aW9ucyBVUkwuXHJcbiAgICogRmV0Y2hlcyB0aGUgVVJMIGZyb20gdGhlIGBhcGlFeHRlcm5hbE9wZXJhdGlvbnNVcmxgIHByb3BlcnR5IG9mIHRoZSBlbnZpcm9ubWVudCBvYmplY3QuXHJcbiAgICogRGVmYXVsdHMgdG8gYW4gZW1wdHkgc3RyaW5nIGlmIHRoZSBwcm9wZXJ0eSBpcyB1bmRlZmluZWQgb3IgbnVsbC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGV4dGVybmFsIG9wZXJhdGlvbnMgVVJMIG9yIGFuIGVtcHR5IHN0cmluZyBpZiB1bmF2YWlsYWJsZS5cclxuICAgKi9cclxuICBnZXQgdXJsICgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnQuYXBpRXh0ZXJuYWxPcGVyYXRpb25zVXJsID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgZGVsaXZlcnkgY29uZmlybWF0aW9uIGRldGFpbHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIE9UUCBjb2RlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG90cENvZGUgLSBUaGUgT1RQIGNvZGUgdXNlZCB0byBzZWFyY2ggZm9yIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERlbGl2ZXJ5Q29uZmlybWF0aW9uRGF0YT59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgZGVsaXZlcnkgY29uZmlybWF0aW9uIGRhdGEuXHJcbiAgICovXHJcbiAgcHVibGljIGdldERlbGl2ZXJ5Q29uZmlybWF0aW9uIChvdHBDb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERlbGl2ZXJ5Q29uZmlybWF0aW9uU2VhcmNoT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPERlbGl2ZXJ5Q29uZmlybWF0aW9uU2VhcmNoT3V0Pj4oYCR7dGhpcy51cmx9L2RlbGl2ZXJ5LWNvbmZpcm1hdGlvbi9zZWFyY2gvJHtvdHBDb2RlfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGEgZGVsaXZlcnkgY29uZmlybWF0aW9uIGJ5IHNlbmRpbmcgdGhlIHByb3ZpZGVkIHBheWxvYWQgdG8gdGhlIEFQSS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RGVsaXZlcnlDb25maXJtYXRpb25HZW5lcmF0ZUlufSBwYXlsb2FkIC0gVGhlIGlucHV0IHBheWxvYWQgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhlIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGdlbmVyYXRlZCBkZWxpdmVyeSBjb25maXJtYXRpb24gZGF0YS5cclxuICAgKi9cclxuICBwdWJsaWMgcG9zdERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGUgKHBheWxvYWQ6IERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVJbik6IE9ic2VydmFibGU8RGVsaXZlcnlDb25maXJtYXRpb25HZW5lcmF0ZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8RGVsaXZlcnlDb25maXJtYXRpb25HZW5lcmF0ZU91dD4+KFxyXG4gICAgICBgJHt0aGlzLnVybH0vZGVsaXZlcnktY29uZmlybWF0aW9uL2dlbmVyYXRlYCxcclxuICAgICAgcGF5bG9hZCwge1xyXG4gICAgICAgIGhlYWRlcnM6IHRoaXMuZ2V0QXBwS2V5SGVhZGVyKCksXHJcbiAgICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25maXJtcyB0aGUgY29tcGxldGlvbiBvZiBhIGRlbGl2ZXJ5IG9wZXJhdGlvbiBieSBtYWtpbmcgYSBQQVRDSCByZXF1ZXN0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGlucHV0IC0gVGhlIGlucHV0IHBhcmFtZXRlcnMgZm9yIHRoZSBtZXRob2QuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGlucHV0Lm9wZXJhdGlvbklkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBkZWxpdmVyeSBvcGVyYXRpb24gdG8gYmUgY29uZmlybWVkLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dC5rZXlPVFAgLSBUaGUgb25lLXRpbWUgcGFzc3dvcmQgKE9UUCkga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVsaXZlcnkgY29uZmlybWF0aW9uLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8T2JqZWN0Pn0gLSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIGRhdGEgZnJvbSB0aGUgQVBJLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYXRjaERlbGl2ZXJ5Q29uZmlybWF0aW9uQ29tcGxldGUgKHtcclxuICAgIGtleU9UUCxcclxuICAgIG9wZXJhdGlvbklkLFxyXG4gIH06IERlbGl2ZXJ5Q29uZmlybWF0aW9uQ29tcGxldGVJbik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8QXBpU3VjY2Vzczx7fT4+KFxyXG4gICAgICBgJHt0aGlzLnVybH0vZGVsaXZlcnktY29uZmlybWF0aW9uL2NvbXBsZXRlZC8ke2tleU9UUH1gLFxyXG4gICAgICBudWxsLCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRBcHBLZXlIZWFkZXIoKSxcclxuICAgICAgICBwYXJhbXM6IHsgb3BlcmF0aW9uX2lkOiBvcGVyYXRpb25JZCB9XHJcbiAgICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWxzIGEgZGVsaXZlcnkgY29uZmlybWF0aW9uIGJ5IHNlbmRpbmcgYW4gT1RQIGFuZCBhZGRpdGlvbmFsIGRhdGEgdG8gdGhlIHNlcnZlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbTAgLSBUaGUgcGFyYW1ldGVyIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1aXJlZCBwcm9wZXJ0aWVzLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbTAub3RwIC0gVGhlIG9uZS10aW1lIHBhc3N3b3JkIHRvIGF1dGhlbnRpY2F0ZSB0aGUgY2FuY2VsbGF0aW9uIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtMC5ib2R5IC0gQWRkaXRpb25hbCBib2R5IGRhdGEgcmVxdWlyZWQgZm9yIGNhbmNlbGxhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPE9iamVjdD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2VydmVyJ3MgcmVzcG9uc2Ugd2hlbiB0aGUgY2FuY2VsbGF0aW9uIGlzIHByb2Nlc3NlZC5cclxuICAgKi9cclxuICBwdWJsaWMgcHV0RGVsaXZlcnlDb25maXJtYXRpb24gKHtcclxuICAgIG90cCxcclxuICAgIC4uLmJvZHlcclxuICB9OiBEZWxpdmVyeUNvbmZpcm1hdGlvbkluKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2Vzczx7fT4+KFxyXG4gICAgICBgJHt0aGlzLnVybH0vZGVsaXZlcnktY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi8ke290cH1gLFxyXG4gICAgICBib2R5LCB7XHJcbiAgICAgICAgaGVhZGVyczogdGhpcy5nZXRBcHBLZXlIZWFkZXIoKSxcclxuICAgICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QXBwS2V5SGVhZGVyICgpIHtcclxuICAgIHJldHVybiB7IC4uLih0aGlzLmFwcEtleSAmJiB7IEFwcEtleTogdGhpcy5hcHBLZXkgfSkgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWV4dGVybmFsLW9wcy5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvbW9kZWxzL2FwaS1leHRlcm5hbC1vcHMuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFyYXZlbE1vZGVsIH0gZnJvbSAnLi9hcGkubW9kZWxzJ1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcGVyYXRpb24gZXh0ZW5kcyBMYXJhdmVsTW9kZWwge1xyXG4gIF9pZDogc3RyaW5nXHJcbiAgb3BlcmF0aW9uX2lkOiBudW1iZXJcclxuICBzdGF0dXM6ICdQZW5kaW5nJyB8ICdDb21wbGV0ZWQnIHwgJ0NhbmNlbGVkJ1xyXG4gIGNvZGU6IG51bWJlclxyXG4gIHNpZ25hdHVyZToge1xyXG4gICAgc2lnbmF0dXJlX2Jhc2VfNjQ6IHN0cmluZ1xyXG4gICAgbWltZV90eXBlOiAnaW1hZ2UvcG5nJ1xyXG4gICAgY2xpZW50OiB7XHJcbiAgICAgIGZ1bGxfbmFtZTogc3RyaW5nXHJcbiAgICB9LFxyXG4gICAgcGFja2FnZV9kZXRhaWw6IHtcclxuICAgICAgc2hpcG1lbnRfdHJhY2tpbmdfbnVtYmVyOiBzdHJpbmdcclxuICAgICAgcGllY2VzOiB7XHJcbiAgICAgICAgdHJhY2tpbmdfbnVtYmVyOiBzdHJpbmdcclxuICAgICAgICBzdGF0dXM6IG51bGwgfCAnZGFtYWdlZCcgfCAnbG9zdCdcclxuICAgICAgfVtdXHJcbiAgICB9W11cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWV4dGVybmFsLW9wcy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL21vZGVscy9hcGktZXh0ZXJuYWwtb3BzLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tICcuL2FwaS1leHRlcm5hbC1vcHMuaW50ZXJmYWNlcydcclxuXHJcbmV4cG9ydCB0eXBlIERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVPdXQgPSB7XHJcbiAgY29kZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERlbGl2ZXJ5Q29uZmlybWF0aW9uR2VuZXJhdGVJbiA9IHtcclxuICBvcGVyYXRpb25faWQ6IG51bWJlclxyXG4gIHNpZ25hdHVyZToge1xyXG4gICAgY2xpZW50OiB7XHJcbiAgICAgIGZ1bGxfbmFtZTogc3RyaW5nXHJcbiAgICB9XHJcbiAgICBwYWNrYWdlX2RldGFpbDoge1xyXG4gICAgICBzaGlwbWVudF90cmFja2luZ19udW1iZXI6IHN0cmluZ1xyXG4gICAgICBwaWVjZXM6IHtcclxuICAgICAgICB0cmFja2luZ19udW1iZXI6IHN0cmluZ1xyXG4gICAgICAgIHN0YXR1czogc3RyaW5nXHJcbiAgICAgIH1bXVxyXG4gICAgfVtdXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEZWxpdmVyeUNvbmZpcm1hdGlvbkNvbXBsZXRlSW4gPSB7XHJcbiAgb3BlcmF0aW9uSWQ6IG51bWJlclxyXG4gIGtleU9UUDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERlbGl2ZXJ5Q29uZmlybWF0aW9uSW4gPSB7XHJcbiAgc2lnbmF0dXJlOiB7XHJcbiAgICBzdGF0dXM6IHN0cmluZ1xyXG4gICAgb3BlcmF0aW9uX2lkOiBudW1iZXJcclxuICAgIHNpZ25hdHVyZV9iYXNlXzY0OiBzdHJpbmdcclxuICAgIG1pbWVfdHlwZTogc3RyaW5nXHJcbiAgfVxyXG4gIG90cD86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEZWxpdmVyeUNvbmZpcm1hdGlvblNlYXJjaE91dCA9IHtcclxuICBvcGVyYXRpb246IE9wZXJhdGlvblxyXG59XHJcbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { inject } from '@angular/core';
|
|
2
|
-
import { ENVIRONMENT_TOKEN } from '../ngx-services.models';
|
|
3
|
-
/**
|
|
4
|
-
* HTTP interceptor that injects the external operations API key into outbound requests.
|
|
5
|
-
*
|
|
6
|
-
* The interceptor:
|
|
7
|
-
* 1. Reads `apiExternalOperationsKey` from the injected `ENVIRONMENT_TOKEN`.
|
|
8
|
-
* 2. Skips modification if the key is absent.
|
|
9
|
-
* 3. Leaves the request unchanged if it already contains an `AppKey` header (caller override).
|
|
10
|
-
* 4. Otherwise clones the request adding `AppKey: apiExternalOperationsKey`.
|
|
11
|
-
*
|
|
12
|
-
* This enables centralized, transparent authentication for services targeting external
|
|
13
|
-
* operations endpoints while allowing explicit per-request overrides.
|
|
14
|
-
*
|
|
15
|
-
* Example:
|
|
16
|
-
* ```ts
|
|
17
|
-
* provideHttpClient(
|
|
18
|
-
* withInterceptors([apiKeyInterceptor])
|
|
19
|
-
* );
|
|
20
|
-
* ```
|
|
21
|
-
*
|
|
22
|
-
* @param request The original immutable `HttpRequest` instance.
|
|
23
|
-
* @param next The next handler in the interceptor chain, used to forward the (possibly cloned) request.
|
|
24
|
-
* @returns An `Observable` stream of the HTTP events for the (potentially augmented) request.
|
|
25
|
-
*
|
|
26
|
-
* @remarks
|
|
27
|
-
* - If you need to intentionally send a different key for a specific request, set the `AppKey`
|
|
28
|
-
* header manually before this interceptor runs.
|
|
29
|
-
* - If `apiExternalOperationsKey` is undefined (e.g., missing configuration), the request is passed through unchanged.
|
|
30
|
-
* - Order matters: place this interceptor before others that rely on the presence of the `AppKey` header.
|
|
31
|
-
*
|
|
32
|
-
* @see HttpRequest
|
|
33
|
-
* @see HttpHandlerFn
|
|
34
|
-
*/
|
|
35
|
-
export function apiKeyInterceptor(request, next) {
|
|
36
|
-
const { apiExternalOperationsKey } = inject(ENVIRONMENT_TOKEN);
|
|
37
|
-
if (!apiExternalOperationsKey)
|
|
38
|
-
return next(request);
|
|
39
|
-
if (request.headers.has('AppKey'))
|
|
40
|
-
return next(request);
|
|
41
|
-
request = request.clone({
|
|
42
|
-
setHeaders: {
|
|
43
|
-
AppKey: apiExternalOperationsKey
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
return next(request);
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWtleS5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9pbnRlcmNlcHRvcnMvYXBpLWtleS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXRDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRTFEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFFLE9BQTZCLEVBQUUsSUFBbUI7SUFDbkYsTUFBTSxFQUFFLHdCQUF3QixFQUFFLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFFOUQsSUFBSSxDQUFDLHdCQUF3QjtRQUFFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRW5ELElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQUUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFdkQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDdEIsVUFBVSxFQUFFO1lBQ1YsTUFBTSxFQUFFLHdCQUF3QjtTQUNqQztLQUNGLENBQUMsQ0FBQTtJQUVGLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyRm4sIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBFTlZJUk9OTUVOVF9UT0tFTiB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcblxyXG4vKipcclxuICogSFRUUCBpbnRlcmNlcHRvciB0aGF0IGluamVjdHMgdGhlIGV4dGVybmFsIG9wZXJhdGlvbnMgQVBJIGtleSBpbnRvIG91dGJvdW5kIHJlcXVlc3RzLlxyXG4gKlxyXG4gKiBUaGUgaW50ZXJjZXB0b3I6XHJcbiAqIDEuIFJlYWRzIGBhcGlFeHRlcm5hbE9wZXJhdGlvbnNLZXlgIGZyb20gdGhlIGluamVjdGVkIGBFTlZJUk9OTUVOVF9UT0tFTmAuXHJcbiAqIDIuIFNraXBzIG1vZGlmaWNhdGlvbiBpZiB0aGUga2V5IGlzIGFic2VudC5cclxuICogMy4gTGVhdmVzIHRoZSByZXF1ZXN0IHVuY2hhbmdlZCBpZiBpdCBhbHJlYWR5IGNvbnRhaW5zIGFuIGBBcHBLZXlgIGhlYWRlciAoY2FsbGVyIG92ZXJyaWRlKS5cclxuICogNC4gT3RoZXJ3aXNlIGNsb25lcyB0aGUgcmVxdWVzdCBhZGRpbmcgYEFwcEtleTogYXBpRXh0ZXJuYWxPcGVyYXRpb25zS2V5YC5cclxuICpcclxuICogVGhpcyBlbmFibGVzIGNlbnRyYWxpemVkLCB0cmFuc3BhcmVudCBhdXRoZW50aWNhdGlvbiBmb3Igc2VydmljZXMgdGFyZ2V0aW5nIGV4dGVybmFsXHJcbiAqIG9wZXJhdGlvbnMgZW5kcG9pbnRzIHdoaWxlIGFsbG93aW5nIGV4cGxpY2l0IHBlci1yZXF1ZXN0IG92ZXJyaWRlcy5cclxuICpcclxuICogRXhhbXBsZTpcclxuICogYGBgdHNcclxuICogcHJvdmlkZUh0dHBDbGllbnQoXHJcbiAqICAgd2l0aEludGVyY2VwdG9ycyhbYXBpS2V5SW50ZXJjZXB0b3JdKVxyXG4gKiApO1xyXG4gKiBgYGBcclxuICpcclxuICogQHBhcmFtIHJlcXVlc3QgVGhlIG9yaWdpbmFsIGltbXV0YWJsZSBgSHR0cFJlcXVlc3RgIGluc3RhbmNlLlxyXG4gKiBAcGFyYW0gbmV4dCBUaGUgbmV4dCBoYW5kbGVyIGluIHRoZSBpbnRlcmNlcHRvciBjaGFpbiwgdXNlZCB0byBmb3J3YXJkIHRoZSAocG9zc2libHkgY2xvbmVkKSByZXF1ZXN0LlxyXG4gKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgc3RyZWFtIG9mIHRoZSBIVFRQIGV2ZW50cyBmb3IgdGhlIChwb3RlbnRpYWxseSBhdWdtZW50ZWQpIHJlcXVlc3QuXHJcbiAqXHJcbiAqIEByZW1hcmtzXHJcbiAqIC0gSWYgeW91IG5lZWQgdG8gaW50ZW50aW9uYWxseSBzZW5kIGEgZGlmZmVyZW50IGtleSBmb3IgYSBzcGVjaWZpYyByZXF1ZXN0LCBzZXQgdGhlIGBBcHBLZXlgXHJcbiAqICAgaGVhZGVyIG1hbnVhbGx5IGJlZm9yZSB0aGlzIGludGVyY2VwdG9yIHJ1bnMuXHJcbiAqIC0gSWYgYGFwaUV4dGVybmFsT3BlcmF0aW9uc0tleWAgaXMgdW5kZWZpbmVkIChlLmcuLCBtaXNzaW5nIGNvbmZpZ3VyYXRpb24pLCB0aGUgcmVxdWVzdCBpcyBwYXNzZWQgdGhyb3VnaCB1bmNoYW5nZWQuXHJcbiAqIC0gT3JkZXIgbWF0dGVyczogcGxhY2UgdGhpcyBpbnRlcmNlcHRvciBiZWZvcmUgb3RoZXJzIHRoYXQgcmVseSBvbiB0aGUgcHJlc2VuY2Ugb2YgdGhlIGBBcHBLZXlgIGhlYWRlci5cclxuICpcclxuICogQHNlZSBIdHRwUmVxdWVzdFxyXG4gKiBAc2VlIEh0dHBIYW5kbGVyRm5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhcGlLZXlJbnRlcmNlcHRvciAocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyRm4pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj4ge1xyXG4gIGNvbnN0IHsgYXBpRXh0ZXJuYWxPcGVyYXRpb25zS2V5IH0gPSBpbmplY3QoRU5WSVJPTk1FTlRfVE9LRU4pXHJcblxyXG4gIGlmICghYXBpRXh0ZXJuYWxPcGVyYXRpb25zS2V5KSByZXR1cm4gbmV4dChyZXF1ZXN0KVxyXG5cclxuICBpZiAocmVxdWVzdC5oZWFkZXJzLmhhcygnQXBwS2V5JykpIHJldHVybiBuZXh0KHJlcXVlc3QpXHJcblxyXG4gIHJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKHtcclxuICAgIHNldEhlYWRlcnM6IHtcclxuICAgICAgQXBwS2V5OiBhcGlFeHRlcm5hbE9wZXJhdGlvbnNLZXlcclxuICAgIH1cclxuICB9KVxyXG5cclxuICByZXR1cm4gbmV4dChyZXF1ZXN0KVxyXG59XHJcbiJdfQ==
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import { Environment } from '../ngx-services.models';
|
|
4
|
-
import { DeliveryConfirmationCompleteIn, DeliveryConfirmationGenerateIn, DeliveryConfirmationGenerateOut, DeliveryConfirmationIn, DeliveryConfirmationSearchOut } from './models/api-external-ops.types';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class ApiExternalOperationsService {
|
|
7
|
-
private http;
|
|
8
|
-
private environment;
|
|
9
|
-
private appKey;
|
|
10
|
-
constructor(http: HttpClient, environment: Environment);
|
|
11
|
-
/**
|
|
12
|
-
* Getter method to retrieve the API's external operations URL.
|
|
13
|
-
* Fetches the URL from the `apiExternalOperationsUrl` property of the environment object.
|
|
14
|
-
* Defaults to an empty string if the property is undefined or null.
|
|
15
|
-
*
|
|
16
|
-
* @return {string} The external operations URL or an empty string if unavailable.
|
|
17
|
-
*/
|
|
18
|
-
get url(): string;
|
|
19
|
-
/**
|
|
20
|
-
* Retrieves delivery confirmation details based on the provided OTP code.
|
|
21
|
-
*
|
|
22
|
-
* @param {string} otpCode - The OTP code used to search for delivery confirmation.
|
|
23
|
-
* @return {Observable<DeliveryConfirmationData>} An observable containing the delivery confirmation data.
|
|
24
|
-
*/
|
|
25
|
-
getDeliveryConfirmation(otpCode: string): Observable<DeliveryConfirmationSearchOut>;
|
|
26
|
-
/**
|
|
27
|
-
* Generates a delivery confirmation by sending the provided payload to the API.
|
|
28
|
-
*
|
|
29
|
-
* @param {DeliveryConfirmationGenerateIn} payload - The input payload required to generate the delivery confirmation.
|
|
30
|
-
* @return {Observable<DeliveryConfirmationGenerateOut>} An observable that emits the generated delivery confirmation data.
|
|
31
|
-
*/
|
|
32
|
-
postDeliveryConfirmationGenerate(payload: DeliveryConfirmationGenerateIn): Observable<DeliveryConfirmationGenerateOut>;
|
|
33
|
-
/**
|
|
34
|
-
* Confirms the completion of a delivery operation by making a PATCH request.
|
|
35
|
-
*
|
|
36
|
-
* @param {Object} input - The input parameters for the method.
|
|
37
|
-
* @param {string} input.operationId - The unique identifier of the delivery operation to be confirmed.
|
|
38
|
-
* @param {string} input.keyOTP - The one-time password (OTP) key associated with the delivery confirmation.
|
|
39
|
-
* @return {Observable<Object>} - An observable containing the response data from the API.
|
|
40
|
-
*/
|
|
41
|
-
patchDeliveryConfirmationComplete({ keyOTP, operationId, }: DeliveryConfirmationCompleteIn): Observable<{}>;
|
|
42
|
-
/**
|
|
43
|
-
* Cancels a delivery confirmation by sending an OTP and additional data to the server.
|
|
44
|
-
*
|
|
45
|
-
* @param {Object} param0 - The parameter object containing the required properties.
|
|
46
|
-
* @param {string} param0.otp - The one-time password to authenticate the cancellation request.
|
|
47
|
-
* @param {Object} param0.body - Additional body data required for cancellation.
|
|
48
|
-
* @return {Observable<Object>} An observable that emits the server's response when the cancellation is processed.
|
|
49
|
-
*/
|
|
50
|
-
putDeliveryConfirmation({ otp, ...body }: DeliveryConfirmationIn): Observable<{}>;
|
|
51
|
-
private getAppKeyHeader;
|
|
52
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ApiExternalOperationsService, never>;
|
|
53
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ApiExternalOperationsService>;
|
|
54
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { LaravelModel } from './api.models';
|
|
2
|
-
export interface Operation extends LaravelModel {
|
|
3
|
-
_id: string;
|
|
4
|
-
operation_id: number;
|
|
5
|
-
status: 'Pending' | 'Completed' | 'Canceled';
|
|
6
|
-
code: number;
|
|
7
|
-
signature: {
|
|
8
|
-
signature_base_64: string;
|
|
9
|
-
mime_type: 'image/png';
|
|
10
|
-
client: {
|
|
11
|
-
full_name: string;
|
|
12
|
-
};
|
|
13
|
-
package_detail: {
|
|
14
|
-
shipment_tracking_number: string;
|
|
15
|
-
pieces: {
|
|
16
|
-
tracking_number: string;
|
|
17
|
-
status: null | 'damaged' | 'lost';
|
|
18
|
-
}[];
|
|
19
|
-
}[];
|
|
20
|
-
};
|
|
21
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Operation } from './api-external-ops.interfaces';
|
|
2
|
-
export type DeliveryConfirmationGenerateOut = {
|
|
3
|
-
code: string;
|
|
4
|
-
};
|
|
5
|
-
export type DeliveryConfirmationGenerateIn = {
|
|
6
|
-
operation_id: number;
|
|
7
|
-
signature: {
|
|
8
|
-
client: {
|
|
9
|
-
full_name: string;
|
|
10
|
-
};
|
|
11
|
-
package_detail: {
|
|
12
|
-
shipment_tracking_number: string;
|
|
13
|
-
pieces: {
|
|
14
|
-
tracking_number: string;
|
|
15
|
-
status: string;
|
|
16
|
-
}[];
|
|
17
|
-
}[];
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
export type DeliveryConfirmationCompleteIn = {
|
|
21
|
-
operationId: number;
|
|
22
|
-
keyOTP: string;
|
|
23
|
-
};
|
|
24
|
-
export type DeliveryConfirmationIn = {
|
|
25
|
-
signature: {
|
|
26
|
-
status: string;
|
|
27
|
-
operation_id: number;
|
|
28
|
-
signature_base_64: string;
|
|
29
|
-
mime_type: string;
|
|
30
|
-
};
|
|
31
|
-
otp?: string;
|
|
32
|
-
};
|
|
33
|
-
export type DeliveryConfirmationSearchOut = {
|
|
34
|
-
operation: Operation;
|
|
35
|
-
};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
/**
|
|
4
|
-
* HTTP interceptor that injects the external operations API key into outbound requests.
|
|
5
|
-
*
|
|
6
|
-
* The interceptor:
|
|
7
|
-
* 1. Reads `apiExternalOperationsKey` from the injected `ENVIRONMENT_TOKEN`.
|
|
8
|
-
* 2. Skips modification if the key is absent.
|
|
9
|
-
* 3. Leaves the request unchanged if it already contains an `AppKey` header (caller override).
|
|
10
|
-
* 4. Otherwise clones the request adding `AppKey: apiExternalOperationsKey`.
|
|
11
|
-
*
|
|
12
|
-
* This enables centralized, transparent authentication for services targeting external
|
|
13
|
-
* operations endpoints while allowing explicit per-request overrides.
|
|
14
|
-
*
|
|
15
|
-
* Example:
|
|
16
|
-
* ```ts
|
|
17
|
-
* provideHttpClient(
|
|
18
|
-
* withInterceptors([apiKeyInterceptor])
|
|
19
|
-
* );
|
|
20
|
-
* ```
|
|
21
|
-
*
|
|
22
|
-
* @param request The original immutable `HttpRequest` instance.
|
|
23
|
-
* @param next The next handler in the interceptor chain, used to forward the (possibly cloned) request.
|
|
24
|
-
* @returns An `Observable` stream of the HTTP events for the (potentially augmented) request.
|
|
25
|
-
*
|
|
26
|
-
* @remarks
|
|
27
|
-
* - If you need to intentionally send a different key for a specific request, set the `AppKey`
|
|
28
|
-
* header manually before this interceptor runs.
|
|
29
|
-
* - If `apiExternalOperationsKey` is undefined (e.g., missing configuration), the request is passed through unchanged.
|
|
30
|
-
* - Order matters: place this interceptor before others that rely on the presence of the `AppKey` header.
|
|
31
|
-
*
|
|
32
|
-
* @see HttpRequest
|
|
33
|
-
* @see HttpHandlerFn
|
|
34
|
-
*/
|
|
35
|
-
export declare function apiKeyInterceptor(request: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>>;
|