@experteam-mx/ngx-services 0.1.1 → 16.0.0
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/README.md +7 -7
- package/{esm2020 → esm2022}/experteam-mx-ngx-services.mjs +4 -4
- package/esm2022/lib/apis/api-catalog.models.mjs +2 -0
- package/esm2022/lib/apis/api-companies.service.mjs +255 -0
- package/esm2022/lib/apis/api-security.service.mjs +128 -0
- package/esm2022/lib/apis/models/api-companies.interfaces.mjs +2 -0
- package/esm2022/lib/apis/models/api-companies.types.mjs +2 -0
- package/esm2022/lib/apis/models/api-security.interfaces.mjs +2 -0
- package/esm2022/lib/apis/models/api-security.types.mjs +2 -0
- package/esm2022/lib/apis/models/api.models.mjs +2 -0
- package/esm2022/lib/helpers/http.mjs +66 -0
- package/{esm2020 → esm2022}/lib/interceptors/api-headers.interceptor.mjs +34 -34
- package/{esm2020 → esm2022}/lib/interceptors/api-token.interceptor.mjs +35 -35
- package/esm2022/lib/interceptors/http-caching.interceptor.mjs +38 -0
- package/esm2022/lib/ngx-services.models.mjs +2 -0
- package/{esm2020 → esm2022}/lib/ngx-services.module.mjs +37 -37
- package/esm2022/public-api.mjs +20 -0
- package/fesm2022/experteam-mx-ngx-services.mjs +585 -0
- package/fesm2022/experteam-mx-ngx-services.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/apis/api-catalog.models.d.ts +71 -5
- package/lib/apis/api-companies.service.d.ts +163 -0
- package/lib/apis/api-security.service.d.ts +79 -79
- package/lib/apis/models/api-companies.interfaces.d.ts +380 -0
- package/lib/apis/models/api-companies.types.d.ts +75 -0
- package/lib/apis/{api-security.models.d.ts → models/api-security.interfaces.d.ts} +55 -90
- package/lib/apis/models/api-security.types.d.ts +30 -0
- package/lib/apis/{api.models.d.ts → models/api.models.d.ts} +23 -31
- package/lib/helpers/http.d.ts +38 -31
- package/lib/interceptors/api-headers.interceptor.d.ts +16 -16
- package/lib/interceptors/api-token.interceptor.d.ts +19 -19
- package/lib/interceptors/http-caching.interceptor.d.ts +12 -0
- package/lib/ngx-services.models.d.ts +22 -21
- package/lib/ngx-services.module.d.ts +17 -17
- package/package.json +11 -16
- package/public-api.d.ts +12 -6
- package/esm2020/experteam-ngx-services.mjs +0 -5
- package/esm2020/lib/apis/api-catalog.models.mjs +0 -2
- package/esm2020/lib/apis/api-security.models.mjs +0 -2
- package/esm2020/lib/apis/api-security.service.mjs +0 -128
- package/esm2020/lib/apis/api.models.mjs +0 -2
- package/esm2020/lib/helpers/http.mjs +0 -45
- package/esm2020/lib/ngx-services.models.mjs +0 -2
- package/esm2020/public-api.mjs +0 -13
- package/fesm2015/experteam-mx-ngx-services.mjs +0 -283
- package/fesm2015/experteam-mx-ngx-services.mjs.map +0 -1
- package/fesm2015/experteam-ngx-services.mjs +0 -283
- package/fesm2015/experteam-ngx-services.mjs.map +0 -1
- package/fesm2020/experteam-mx-ngx-services.mjs +0 -280
- package/fesm2020/experteam-mx-ngx-services.mjs.map +0 -1
- package/fesm2020/experteam-ngx-services.mjs +0 -280
- package/fesm2020/experteam-ngx-services.mjs.map +0 -1
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { NgModule, Injectable, Inject } from '@angular/core';
|
|
3
|
-
import * as i1 from '@angular/common/http';
|
|
4
|
-
import { HttpClientModule, HttpHeaders } from '@angular/common/http';
|
|
5
|
-
import { map, tap } from 'rxjs';
|
|
6
|
-
import * as i2 from 'ngx-cookie-service';
|
|
7
|
-
|
|
8
|
-
class NgxServicesModule {
|
|
9
|
-
/**
|
|
10
|
-
* Returns a module with providers for the NgxServicesModule.
|
|
11
|
-
*
|
|
12
|
-
* @param {Environment} environment - The environment configuration object.
|
|
13
|
-
*
|
|
14
|
-
* @return {ModuleWithProviders<NgxServicesModule>} The module with providers for the NgxServicesModule.
|
|
15
|
-
*/
|
|
16
|
-
static forRoot(environment) {
|
|
17
|
-
return {
|
|
18
|
-
ngModule: NgxServicesModule,
|
|
19
|
-
providers: [
|
|
20
|
-
{
|
|
21
|
-
provide: 'env',
|
|
22
|
-
useValue: environment
|
|
23
|
-
}
|
|
24
|
-
]
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
NgxServicesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
29
|
-
NgxServicesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: NgxServicesModule, imports: [HttpClientModule] });
|
|
30
|
-
NgxServicesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxServicesModule, imports: [HttpClientModule] });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxServicesModule, decorators: [{
|
|
32
|
-
type: NgModule,
|
|
33
|
-
args: [{
|
|
34
|
-
declarations: [],
|
|
35
|
-
imports: [
|
|
36
|
-
HttpClientModule
|
|
37
|
-
],
|
|
38
|
-
exports: []
|
|
39
|
-
}]
|
|
40
|
-
}] });
|
|
41
|
-
|
|
42
|
-
class ApiSecurityService {
|
|
43
|
-
constructor(environments, httpClient, cookie) {
|
|
44
|
-
this.environments = environments;
|
|
45
|
-
this.httpClient = httpClient;
|
|
46
|
-
this.cookie = cookie;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Retrieves the API security URL.
|
|
50
|
-
*
|
|
51
|
-
* @returns {string} The API security URL.
|
|
52
|
-
*/
|
|
53
|
-
get url() {
|
|
54
|
-
return this.environments.apiSecurityUrl;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Logs in the user using the provided login credentials.
|
|
58
|
-
*
|
|
59
|
-
* @param {object} loginParams - The login parameters.
|
|
60
|
-
* @param {string} loginParams.username - The username of the user.
|
|
61
|
-
* @param {string} loginParams.password - The password of the user.
|
|
62
|
-
* @param {string} loginParams.role - The role of the user.
|
|
63
|
-
*
|
|
64
|
-
* @returns {Observable<LoginOut>} - An observable that emits the logged-in user's information.
|
|
65
|
-
*/
|
|
66
|
-
login({ username, password, role, }) {
|
|
67
|
-
return this.httpClient.post(`${this.url}/auth/login`, {
|
|
68
|
-
system_name: 'CRA',
|
|
69
|
-
username,
|
|
70
|
-
password,
|
|
71
|
-
role,
|
|
72
|
-
}).pipe(map(({ data }) => data), tap(({ access_token }) => this.cookie.set('tokenCRA', access_token, { path: '/' })));
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Logs out the user from the application.
|
|
76
|
-
*
|
|
77
|
-
* @return {Observable<{}>} An observable that emits an empty object upon successful logout.
|
|
78
|
-
*/
|
|
79
|
-
logout() {
|
|
80
|
-
return this.httpClient.post(`${this.url}/auth/logout`, null)
|
|
81
|
-
.pipe(map(({ data }) => data), tap(() => this.cookie.deleteAll('/')));
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Creates a session with the given parameters.
|
|
85
|
-
*
|
|
86
|
-
* @param {CreateSessionIn} options - The input parameters for session creation.
|
|
87
|
-
* @param {string} options.modelType - The session model type.
|
|
88
|
-
* @param {string} options.modelId - The session model ID.
|
|
89
|
-
* @param {string} options.token - The authorization token. Optional.
|
|
90
|
-
*
|
|
91
|
-
* @return {Observable<CreateSessionOut>} - An Observable that emits the result of the session creation.
|
|
92
|
-
*/
|
|
93
|
-
createSession({ modelType, modelId, token, }) {
|
|
94
|
-
let headers = new HttpHeaders({});
|
|
95
|
-
if (token)
|
|
96
|
-
headers = headers.set('Authorization', `Bearer ${token}`);
|
|
97
|
-
return this.httpClient.post(`${this.url}/sessions`, {
|
|
98
|
-
model_type: modelType,
|
|
99
|
-
model_id: modelId,
|
|
100
|
-
}, {
|
|
101
|
-
headers
|
|
102
|
-
}).pipe(map(({ data }) => data));
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Retrieves user information.
|
|
106
|
-
*
|
|
107
|
-
* @returns {Observable<MeOut>} Observable of user information.
|
|
108
|
-
*/
|
|
109
|
-
me() {
|
|
110
|
-
return this.httpClient.get(`${this.url}/auth/me`)
|
|
111
|
-
.pipe(map(({ data }) => data));
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Retrieves user information from the API.
|
|
115
|
-
*
|
|
116
|
-
* @param {GetUserIn} user - The user object containing the user ID.
|
|
117
|
-
*
|
|
118
|
-
* @returns {Observable<GetUserOut>} - An observable that emits the retrieved user data.
|
|
119
|
-
*/
|
|
120
|
-
user({ userId }) {
|
|
121
|
-
return this.httpClient.get(`${this.url}/users/${userId}`)
|
|
122
|
-
.pipe(map(({ data }) => data));
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Get user information
|
|
126
|
-
*
|
|
127
|
-
* @param {string} token - The user's authentication token
|
|
128
|
-
*
|
|
129
|
-
* @return {Observable<MeOut>} - An observable that emits the user's information
|
|
130
|
-
*/
|
|
131
|
-
userInfo({ token }) {
|
|
132
|
-
return this.httpClient.get(`${this.url}/auth/me`, {
|
|
133
|
-
headers: {
|
|
134
|
-
Authorization: `Bearer ${token}`
|
|
135
|
-
}
|
|
136
|
-
}).pipe(map(({ data }) => data));
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Changes the language of the authenticated user.
|
|
140
|
-
*
|
|
141
|
-
* @param {Object} params - The parameters for changing the language.
|
|
142
|
-
* @param {string} params.languageId - The ID of the language to change to.
|
|
143
|
-
*
|
|
144
|
-
* @returns {Observable<Object>} - An observable that emits the updated user data.
|
|
145
|
-
*/
|
|
146
|
-
changeLanguage({ languageId }) {
|
|
147
|
-
return this.httpClient.put(`${this.url}/auth/me`, {
|
|
148
|
-
language_id: languageId
|
|
149
|
-
}).pipe(map(({ data }) => data));
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
ApiSecurityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, deps: [{ token: 'env' }, { token: i1.HttpClient }, { token: i2.CookieService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
153
|
-
ApiSecurityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, providedIn: 'root' });
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, decorators: [{
|
|
155
|
-
type: Injectable,
|
|
156
|
-
args: [{
|
|
157
|
-
providedIn: 'root'
|
|
158
|
-
}]
|
|
159
|
-
}], ctorParameters: function () {
|
|
160
|
-
return [{ type: undefined, decorators: [{
|
|
161
|
-
type: Inject,
|
|
162
|
-
args: ['env']
|
|
163
|
-
}] }, { type: i1.HttpClient }, { type: i2.CookieService }];
|
|
164
|
-
} });
|
|
165
|
-
|
|
166
|
-
class ApiTokenInterceptor {
|
|
167
|
-
constructor(cookie) {
|
|
168
|
-
this.cookie = cookie;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Intercepts the HTTP request and adds the Authorization header.
|
|
172
|
-
*
|
|
173
|
-
* @param {HttpRequest<unknown>} request - The HTTP request to intercept.
|
|
174
|
-
* @param {HttpHandler} next - The next HTTP handler in the chain.
|
|
175
|
-
*
|
|
176
|
-
* @returns {Observable<HttpEvent<unknown>>} - An observable containing the HTTP event.
|
|
177
|
-
*/
|
|
178
|
-
intercept(request, next) {
|
|
179
|
-
if (request.headers.has('Authorization'))
|
|
180
|
-
return next.handle(request);
|
|
181
|
-
const token = this.cookie.get('tokenCRA');
|
|
182
|
-
if (!token)
|
|
183
|
-
return next.handle(request);
|
|
184
|
-
request = request.clone({
|
|
185
|
-
setHeaders: {
|
|
186
|
-
Authorization: `Bearer ${token}`
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
return next.handle(request);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
ApiTokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiTokenInterceptor, deps: [{ token: i2.CookieService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
193
|
-
ApiTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiTokenInterceptor });
|
|
194
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiTokenInterceptor, decorators: [{
|
|
195
|
-
type: Injectable
|
|
196
|
-
}], ctorParameters: function () { return [{ type: i2.CookieService }]; } });
|
|
197
|
-
|
|
198
|
-
class ApiHeadersInterceptor {
|
|
199
|
-
/**
|
|
200
|
-
* Intercepts HTTP requests and adds common headers.
|
|
201
|
-
*
|
|
202
|
-
* @param {HttpRequest<unknown>} request - The HTTP request intercepted.
|
|
203
|
-
* @param {HttpHandler} next - The next handler in the chain.
|
|
204
|
-
*
|
|
205
|
-
* @returns {Observable<HttpEvent<unknown>>} - Observable of the HTTP event after interception.
|
|
206
|
-
*/
|
|
207
|
-
intercept(request, next) {
|
|
208
|
-
var _a;
|
|
209
|
-
let headers = new HttpHeaders({
|
|
210
|
-
'cache-control': 'max-age=0, no-cache, no-store, must-revalidate',
|
|
211
|
-
'expires': '0',
|
|
212
|
-
'pragma': 'no-cache'
|
|
213
|
-
});
|
|
214
|
-
if (!request.headers.has('Content-Type'))
|
|
215
|
-
headers = headers.set('Content-Type', 'application/json');
|
|
216
|
-
if (!request.headers.has('Accept'))
|
|
217
|
-
headers = headers.set('Accept', 'application/json');
|
|
218
|
-
if (!request.headers.has('Accept-Language'))
|
|
219
|
-
headers = headers.set('Accept-Language', (_a = localStorage.getItem('lang')) !== null && _a !== void 0 ? _a : 'en');
|
|
220
|
-
request = request.clone({ headers });
|
|
221
|
-
return next.handle(request);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
ApiHeadersInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiHeadersInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
225
|
-
ApiHeadersInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiHeadersInterceptor });
|
|
226
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiHeadersInterceptor, decorators: [{
|
|
227
|
-
type: Injectable
|
|
228
|
-
}] });
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Convert an object of key-value pairs into a URL query string.
|
|
232
|
-
*
|
|
233
|
-
* @param {Object} params - The key-value pairs to converted into a query string.
|
|
234
|
-
*
|
|
235
|
-
* @return {string} - The generated query string.
|
|
236
|
-
*/
|
|
237
|
-
const queryString = (params) => {
|
|
238
|
-
const query = Object.keys(params)
|
|
239
|
-
.map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`)
|
|
240
|
-
.join('&');
|
|
241
|
-
return query.length ? `?${query}` : '';
|
|
242
|
-
};
|
|
243
|
-
/**
|
|
244
|
-
* Returns the headers for generating PDF files.
|
|
245
|
-
*
|
|
246
|
-
* @param {string} format - The format of the headers, 'object' or 'http_header'.
|
|
247
|
-
*
|
|
248
|
-
* @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating PDF files.
|
|
249
|
-
*/
|
|
250
|
-
const pdfHeaders = (format = 'object') => {
|
|
251
|
-
const headers = {
|
|
252
|
-
'Accept': 'application/pdf'
|
|
253
|
-
};
|
|
254
|
-
return format === 'object'
|
|
255
|
-
? headers
|
|
256
|
-
: new HttpHeaders(headers);
|
|
257
|
-
};
|
|
258
|
-
/**
|
|
259
|
-
* Returns the headers for generating XML files.
|
|
260
|
-
*
|
|
261
|
-
* @param {string} format - The format of the headers, 'object' or 'http_header'.
|
|
262
|
-
*
|
|
263
|
-
* @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating XML files.
|
|
264
|
-
*/
|
|
265
|
-
const xmlHeaders = (format = 'object') => {
|
|
266
|
-
const headers = {
|
|
267
|
-
'Accept': 'application/xml',
|
|
268
|
-
};
|
|
269
|
-
return format === 'object'
|
|
270
|
-
? headers
|
|
271
|
-
: new HttpHeaders(headers);
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
/*
|
|
275
|
-
* Public API Surface of ngx-services
|
|
276
|
-
*/
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Generated bundle index. Do not edit.
|
|
280
|
-
*/
|
|
281
|
-
|
|
282
|
-
export { ApiHeadersInterceptor, ApiSecurityService, ApiTokenInterceptor, NgxServicesModule, pdfHeaders, queryString, xmlHeaders };
|
|
283
|
-
//# sourceMappingURL=experteam-mx-ngx-services.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"experteam-mx-ngx-services.mjs","sources":["../../../../projects/experteam/ngx-services/src/lib/ngx-services.module.ts","../../../../projects/experteam/ngx-services/src/lib/apis/api-security.service.ts","../../../../projects/experteam/ngx-services/src/lib/interceptors/api-token.interceptor.ts","../../../../projects/experteam/ngx-services/src/lib/interceptors/api-headers.interceptor.ts","../../../../projects/experteam/ngx-services/src/lib/helpers/http.ts","../../../../projects/experteam/ngx-services/src/public-api.ts","../../../../projects/experteam/ngx-services/src/experteam-mx-ngx-services.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport { Environment } from './ngx-services.models'\r\nimport { HttpClientModule } from '@angular/common/http'\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n HttpClientModule\r\n ],\r\n exports: []\r\n})\r\nexport class NgxServicesModule {\r\n /**\r\n * Returns a module with providers for the NgxServicesModule.\r\n *\r\n * @param {Environment} environment - The environment configuration object.\r\n *\r\n * @return {ModuleWithProviders<NgxServicesModule>} The module with providers for the NgxServicesModule.\r\n */\r\n public static forRoot (environment: Environment): ModuleWithProviders<NgxServicesModule> {\r\n return {\r\n ngModule: NgxServicesModule,\r\n providers: [\r\n {\r\n provide: 'env',\r\n useValue: environment\r\n }\r\n ]\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { ApiSuccess } from './api.models'\r\nimport {\r\n ChangeLanguageIn,\r\n CreateSessionIn,\r\n CreateSessionOut,\r\n GetUserIn,\r\n GetUserInfoIn,\r\n GetUserOut,\r\n LoginIn,\r\n LoginOut,\r\n MeOut\r\n} from './api-security.models'\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { map, Observable, tap } from 'rxjs'\r\nimport { CookieService } from 'ngx-cookie-service'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiSecurityService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private httpClient: HttpClient,\r\n private cookie: CookieService,\r\n ) {}\r\n\r\n /**\r\n * Retrieves the API security URL.\r\n *\r\n * @returns {string} The API security URL.\r\n */\r\n get url (): string {\r\n return this.environments.apiSecurityUrl\r\n }\r\n\r\n /**\r\n * Logs in the user using the provided login credentials.\r\n *\r\n * @param {object} loginParams - The login parameters.\r\n * @param {string} loginParams.username - The username of the user.\r\n * @param {string} loginParams.password - The password of the user.\r\n * @param {string} loginParams.role - The role of the user.\r\n *\r\n * @returns {Observable<LoginOut>} - An observable that emits the logged-in user's information.\r\n */\r\n login ({\r\n username,\r\n password,\r\n role,\r\n }: LoginIn): Observable<LoginOut> {\r\n return this.httpClient.post<ApiSuccess<LoginOut>>(`${this.url}/auth/login`, {\r\n system_name: 'CRA',\r\n username,\r\n password,\r\n role,\r\n }).pipe(\r\n map(({ data }) => data),\r\n tap(({ access_token }) => this.cookie.set('tokenCRA', access_token, { path: '/' }))\r\n )\r\n }\r\n\r\n /**\r\n * Logs out the user from the application.\r\n *\r\n * @return {Observable<{}>} An observable that emits an empty object upon successful logout.\r\n */\r\n logout (): Observable<{}> {\r\n return this.httpClient.post<ApiSuccess<{}>>(`${this.url}/auth/logout`, null)\r\n .pipe(\r\n map(({ data }) => data),\r\n tap(() => this.cookie.deleteAll('/'))\r\n )\r\n }\r\n\r\n /**\r\n * Creates a session with the given parameters.\r\n *\r\n * @param {CreateSessionIn} options - The input parameters for session creation.\r\n * @param {string} options.modelType - The session model type.\r\n * @param {string} options.modelId - The session model ID.\r\n * @param {string} options.token - The authorization token. Optional.\r\n *\r\n * @return {Observable<CreateSessionOut>} - An Observable that emits the result of the session creation.\r\n */\r\n createSession ({\r\n modelType,\r\n modelId,\r\n token,\r\n }: CreateSessionIn): Observable<CreateSessionOut> {\r\n let headers = new HttpHeaders({})\r\n\r\n if (token)\r\n headers = headers.set('Authorization', `Bearer ${token}`)\r\n\r\n return this.httpClient.post<ApiSuccess<CreateSessionOut>>(\r\n `${this.url}/sessions`, {\r\n model_type: modelType,\r\n model_id: modelId,\r\n }, {\r\n headers\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves user information.\r\n *\r\n * @returns {Observable<MeOut>} Observable of user information.\r\n */\r\n me (): Observable<MeOut> {\r\n return this.httpClient.get<ApiSuccess<MeOut>>(`${this.url}/auth/me`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves user information from the API.\r\n *\r\n * @param {GetUserIn} user - The user object containing the user ID.\r\n *\r\n * @returns {Observable<GetUserOut>} - An observable that emits the retrieved user data.\r\n */\r\n user ({\r\n userId\r\n }: GetUserIn): Observable<GetUserOut> {\r\n return this.httpClient.get<ApiSuccess<GetUserOut>>(`${this.url}/users/${userId}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Get user information\r\n *\r\n * @param {string} token - The user's authentication token\r\n *\r\n * @return {Observable<MeOut>} - An observable that emits the user's information\r\n */\r\n userInfo ({\r\n token\r\n }: GetUserInfoIn): Observable<MeOut> {\r\n return this.httpClient.get<ApiSuccess<MeOut>>(`${this.url}/auth/me`, {\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Changes the language of the authenticated user.\r\n *\r\n * @param {Object} params - The parameters for changing the language.\r\n * @param {string} params.languageId - The ID of the language to change to.\r\n *\r\n * @returns {Observable<Object>} - An observable that emits the updated user data.\r\n */\r\n changeLanguage ({\r\n languageId\r\n }: ChangeLanguageIn) {\r\n return this.httpClient.put<ApiSuccess<MeOut>>(`${this.url}/auth/me`, {\r\n language_id: languageId\r\n }).pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'\r\nimport { Observable } from 'rxjs'\r\nimport { CookieService } from 'ngx-cookie-service'\r\n\r\n@Injectable()\r\nexport class ApiTokenInterceptor implements HttpInterceptor {\r\n constructor (private cookie: CookieService) {}\r\n\r\n /**\r\n * Intercepts the HTTP request and adds the Authorization header.\r\n *\r\n * @param {HttpRequest<unknown>} request - The HTTP request to intercept.\r\n * @param {HttpHandler} next - The next HTTP handler in the chain.\r\n *\r\n * @returns {Observable<HttpEvent<unknown>>} - An observable containing the HTTP event.\r\n */\r\n intercept (request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n if (request.headers.has('Authorization'))\r\n return next.handle(request)\r\n\r\n const token = this.cookie.get('tokenCRA')\r\n\r\n if (!token)\r\n return next.handle(request)\r\n\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n\r\n return next.handle(request)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpEvent, HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest } from '@angular/common/http'\r\nimport { Observable } from 'rxjs'\r\n\r\n@Injectable()\r\nexport class ApiHeadersInterceptor implements HttpInterceptor {\r\n /**\r\n * Intercepts HTTP requests and adds common headers.\r\n *\r\n * @param {HttpRequest<unknown>} request - The HTTP request intercepted.\r\n * @param {HttpHandler} next - The next handler in the chain.\r\n *\r\n * @returns {Observable<HttpEvent<unknown>>} - Observable of the HTTP event after interception.\r\n */\r\n intercept (request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n let headers = new HttpHeaders({\r\n 'cache-control': 'max-age=0, no-cache, no-store, must-revalidate',\r\n 'expires': '0',\r\n 'pragma': 'no-cache'\r\n })\r\n\r\n if (!request.headers.has('Content-Type'))\r\n headers = headers.set('Content-Type', 'application/json')\r\n\r\n if (!request.headers.has('Accept'))\r\n headers = headers.set('Accept', 'application/json')\r\n\r\n if (!request.headers.has('Accept-Language'))\r\n headers = headers.set('Accept-Language', localStorage.getItem('lang') ?? 'en')\r\n\r\n request = request.clone({ headers })\r\n\r\n return next.handle(request)\r\n }\r\n}\r\n","import { HttpHeaders } from '@angular/common/http'\r\n\r\n/**\r\n * Convert an object of key-value pairs into a URL query string.\r\n *\r\n * @param {Object} params - The key-value pairs to converted into a query string.\r\n *\r\n * @return {string} - The generated query string.\r\n */\r\nexport const queryString = (params: { [key: string]: string | number | boolean }): string => {\r\n const query = Object.keys(params)\r\n .map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`)\r\n .join('&')\r\n\r\n return query.length ? `?${query}` : ''\r\n}\r\n\r\n/**\r\n * Returns the headers for generating PDF files.\r\n *\r\n * @param {string} format - The format of the headers, 'object' or 'http_header'.\r\n *\r\n * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating PDF files.\r\n */\r\nexport const pdfHeaders = (format: 'object' | 'http_header' = 'object'): HttpHeaders | { [header: string]: string | string[] } => {\r\n const headers = {\r\n 'Accept': 'application/pdf'\r\n }\r\n\r\n return format === 'object'\r\n ? headers\r\n : new HttpHeaders(headers)\r\n}\r\n\r\n/**\r\n * Returns the headers for generating XML files.\r\n *\r\n * @param {string} format - The format of the headers, 'object' or 'http_header'.\r\n *\r\n * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating XML files.\r\n */\r\nexport const xmlHeaders = (format: 'object' | 'http_header' = 'object'): HttpHeaders | { [header: string]: string | string[] } => {\r\n const headers = {\r\n 'Accept': 'application/xml',\r\n }\r\n\r\n return format === 'object'\r\n ? headers\r\n : new HttpHeaders(headers)\r\n}\r\n","/*\r\n * Public API Surface of ngx-services\r\n */\r\nexport * from './lib/ngx-services.module'\r\n\r\n// api services\r\nexport * from './lib/apis/api-security.service'\r\nexport * from './lib/apis/api-security.models'\r\n\r\n// interceptors\r\nexport * from './lib/interceptors/api-token.interceptor'\r\nexport * from './lib/interceptors/api-headers.interceptor'\r\n\r\n// helpers\r\nexport * from './lib/helpers/http'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
import * as i0 from '@angular/core';
|
|
2
|
-
import { NgModule, Injectable, Inject } from '@angular/core';
|
|
3
|
-
import * as i1 from '@angular/common/http';
|
|
4
|
-
import { HttpClientModule, HttpHeaders } from '@angular/common/http';
|
|
5
|
-
import { map, tap } from 'rxjs';
|
|
6
|
-
import * as i2 from 'ngx-cookie-service';
|
|
7
|
-
|
|
8
|
-
class NgxServicesModule {
|
|
9
|
-
/**
|
|
10
|
-
* Returns a module with providers for the NgxServicesModule.
|
|
11
|
-
*
|
|
12
|
-
* @param {Environment} environment - The environment configuration object.
|
|
13
|
-
*
|
|
14
|
-
* @return {ModuleWithProviders<NgxServicesModule>} The module with providers for the NgxServicesModule.
|
|
15
|
-
*/
|
|
16
|
-
static forRoot(environment) {
|
|
17
|
-
return {
|
|
18
|
-
ngModule: NgxServicesModule,
|
|
19
|
-
providers: [
|
|
20
|
-
{
|
|
21
|
-
provide: 'env',
|
|
22
|
-
useValue: environment
|
|
23
|
-
}
|
|
24
|
-
]
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
NgxServicesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
29
|
-
NgxServicesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: NgxServicesModule, imports: [HttpClientModule] });
|
|
30
|
-
NgxServicesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxServicesModule, imports: [HttpClientModule] });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NgxServicesModule, decorators: [{
|
|
32
|
-
type: NgModule,
|
|
33
|
-
args: [{
|
|
34
|
-
declarations: [],
|
|
35
|
-
imports: [
|
|
36
|
-
HttpClientModule
|
|
37
|
-
],
|
|
38
|
-
exports: []
|
|
39
|
-
}]
|
|
40
|
-
}] });
|
|
41
|
-
|
|
42
|
-
class ApiSecurityService {
|
|
43
|
-
constructor(environments, httpClient, cookie) {
|
|
44
|
-
this.environments = environments;
|
|
45
|
-
this.httpClient = httpClient;
|
|
46
|
-
this.cookie = cookie;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Retrieves the API security URL.
|
|
50
|
-
*
|
|
51
|
-
* @returns {string} The API security URL.
|
|
52
|
-
*/
|
|
53
|
-
get url() {
|
|
54
|
-
return this.environments.apiSecurityUrl;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Logs in the user using the provided login credentials.
|
|
58
|
-
*
|
|
59
|
-
* @param {object} loginParams - The login parameters.
|
|
60
|
-
* @param {string} loginParams.username - The username of the user.
|
|
61
|
-
* @param {string} loginParams.password - The password of the user.
|
|
62
|
-
* @param {string} loginParams.role - The role of the user.
|
|
63
|
-
*
|
|
64
|
-
* @returns {Observable<LoginOut>} - An observable that emits the logged-in user's information.
|
|
65
|
-
*/
|
|
66
|
-
login({ username, password, role, }) {
|
|
67
|
-
return this.httpClient.post(`${this.url}/auth/login`, {
|
|
68
|
-
system_name: 'CRA',
|
|
69
|
-
username,
|
|
70
|
-
password,
|
|
71
|
-
role,
|
|
72
|
-
}).pipe(map(({ data }) => data), tap(({ access_token }) => this.cookie.set('tokenCRA', access_token, { path: '/' })));
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Logs out the user from the application.
|
|
76
|
-
*
|
|
77
|
-
* @return {Observable<{}>} An observable that emits an empty object upon successful logout.
|
|
78
|
-
*/
|
|
79
|
-
logout() {
|
|
80
|
-
return this.httpClient.post(`${this.url}/auth/logout`, null)
|
|
81
|
-
.pipe(map(({ data }) => data), tap(() => this.cookie.deleteAll('/')));
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Creates a session with the given parameters.
|
|
85
|
-
*
|
|
86
|
-
* @param {CreateSessionIn} options - The input parameters for session creation.
|
|
87
|
-
* @param {string} options.modelType - The session model type.
|
|
88
|
-
* @param {string} options.modelId - The session model ID.
|
|
89
|
-
* @param {string} options.token - The authorization token. Optional.
|
|
90
|
-
*
|
|
91
|
-
* @return {Observable<CreateSessionOut>} - An Observable that emits the result of the session creation.
|
|
92
|
-
*/
|
|
93
|
-
createSession({ modelType, modelId, token, }) {
|
|
94
|
-
let headers = new HttpHeaders({});
|
|
95
|
-
if (token)
|
|
96
|
-
headers = headers.set('Authorization', `Bearer ${token}`);
|
|
97
|
-
return this.httpClient.post(`${this.url}/sessions`, {
|
|
98
|
-
model_type: modelType,
|
|
99
|
-
model_id: modelId,
|
|
100
|
-
}, {
|
|
101
|
-
headers
|
|
102
|
-
}).pipe(map(({ data }) => data));
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Retrieves user information.
|
|
106
|
-
*
|
|
107
|
-
* @returns {Observable<MeOut>} Observable of user information.
|
|
108
|
-
*/
|
|
109
|
-
me() {
|
|
110
|
-
return this.httpClient.get(`${this.url}/auth/me`)
|
|
111
|
-
.pipe(map(({ data }) => data));
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Retrieves user information from the API.
|
|
115
|
-
*
|
|
116
|
-
* @param {GetUserIn} user - The user object containing the user ID.
|
|
117
|
-
*
|
|
118
|
-
* @returns {Observable<GetUserOut>} - An observable that emits the retrieved user data.
|
|
119
|
-
*/
|
|
120
|
-
user({ userId }) {
|
|
121
|
-
return this.httpClient.get(`${this.url}/users/${userId}`)
|
|
122
|
-
.pipe(map(({ data }) => data));
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Get user information
|
|
126
|
-
*
|
|
127
|
-
* @param {string} token - The user's authentication token
|
|
128
|
-
*
|
|
129
|
-
* @return {Observable<MeOut>} - An observable that emits the user's information
|
|
130
|
-
*/
|
|
131
|
-
userInfo({ token }) {
|
|
132
|
-
return this.httpClient.get(`${this.url}/auth/me`, {
|
|
133
|
-
headers: {
|
|
134
|
-
Authorization: `Bearer ${token}`
|
|
135
|
-
}
|
|
136
|
-
}).pipe(map(({ data }) => data));
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Changes the language of the authenticated user.
|
|
140
|
-
*
|
|
141
|
-
* @param {Object} params - The parameters for changing the language.
|
|
142
|
-
* @param {string} params.languageId - The ID of the language to change to.
|
|
143
|
-
*
|
|
144
|
-
* @returns {Observable<Object>} - An observable that emits the updated user data.
|
|
145
|
-
*/
|
|
146
|
-
changeLanguage({ languageId }) {
|
|
147
|
-
return this.httpClient.put(`${this.url}/auth/me`, {
|
|
148
|
-
language_id: languageId
|
|
149
|
-
}).pipe(map(({ data }) => data));
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
ApiSecurityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, deps: [{ token: 'env' }, { token: i1.HttpClient }, { token: i2.CookieService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
153
|
-
ApiSecurityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, providedIn: 'root' });
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiSecurityService, decorators: [{
|
|
155
|
-
type: Injectable,
|
|
156
|
-
args: [{
|
|
157
|
-
providedIn: 'root'
|
|
158
|
-
}]
|
|
159
|
-
}], ctorParameters: function () {
|
|
160
|
-
return [{ type: undefined, decorators: [{
|
|
161
|
-
type: Inject,
|
|
162
|
-
args: ['env']
|
|
163
|
-
}] }, { type: i1.HttpClient }, { type: i2.CookieService }];
|
|
164
|
-
} });
|
|
165
|
-
|
|
166
|
-
class ApiTokenInterceptor {
|
|
167
|
-
constructor(cookie) {
|
|
168
|
-
this.cookie = cookie;
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Intercepts the HTTP request and adds the Authorization header.
|
|
172
|
-
*
|
|
173
|
-
* @param {HttpRequest<unknown>} request - The HTTP request to intercept.
|
|
174
|
-
* @param {HttpHandler} next - The next HTTP handler in the chain.
|
|
175
|
-
*
|
|
176
|
-
* @returns {Observable<HttpEvent<unknown>>} - An observable containing the HTTP event.
|
|
177
|
-
*/
|
|
178
|
-
intercept(request, next) {
|
|
179
|
-
if (request.headers.has('Authorization'))
|
|
180
|
-
return next.handle(request);
|
|
181
|
-
const token = this.cookie.get('tokenCRA');
|
|
182
|
-
if (!token)
|
|
183
|
-
return next.handle(request);
|
|
184
|
-
request = request.clone({
|
|
185
|
-
setHeaders: {
|
|
186
|
-
Authorization: `Bearer ${token}`
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
return next.handle(request);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
ApiTokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiTokenInterceptor, deps: [{ token: i2.CookieService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
193
|
-
ApiTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiTokenInterceptor });
|
|
194
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiTokenInterceptor, decorators: [{
|
|
195
|
-
type: Injectable
|
|
196
|
-
}], ctorParameters: function () { return [{ type: i2.CookieService }]; } });
|
|
197
|
-
|
|
198
|
-
class ApiHeadersInterceptor {
|
|
199
|
-
/**
|
|
200
|
-
* Intercepts HTTP requests and adds common headers.
|
|
201
|
-
*
|
|
202
|
-
* @param {HttpRequest<unknown>} request - The HTTP request intercepted.
|
|
203
|
-
* @param {HttpHandler} next - The next handler in the chain.
|
|
204
|
-
*
|
|
205
|
-
* @returns {Observable<HttpEvent<unknown>>} - Observable of the HTTP event after interception.
|
|
206
|
-
*/
|
|
207
|
-
intercept(request, next) {
|
|
208
|
-
var _a;
|
|
209
|
-
let headers = new HttpHeaders({
|
|
210
|
-
'cache-control': 'max-age=0, no-cache, no-store, must-revalidate',
|
|
211
|
-
'expires': '0',
|
|
212
|
-
'pragma': 'no-cache'
|
|
213
|
-
});
|
|
214
|
-
if (!request.headers.has('Content-Type'))
|
|
215
|
-
headers = headers.set('Content-Type', 'application/json');
|
|
216
|
-
if (!request.headers.has('Accept'))
|
|
217
|
-
headers = headers.set('Accept', 'application/json');
|
|
218
|
-
if (!request.headers.has('Accept-Language'))
|
|
219
|
-
headers = headers.set('Accept-Language', (_a = localStorage.getItem('lang')) !== null && _a !== void 0 ? _a : 'en');
|
|
220
|
-
request = request.clone({ headers });
|
|
221
|
-
return next.handle(request);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
ApiHeadersInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiHeadersInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
225
|
-
ApiHeadersInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiHeadersInterceptor });
|
|
226
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiHeadersInterceptor, decorators: [{
|
|
227
|
-
type: Injectable
|
|
228
|
-
}] });
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Convert an object of key-value pairs into a URL query string.
|
|
232
|
-
*
|
|
233
|
-
* @param {Object} params - The key-value pairs to converted into a query string.
|
|
234
|
-
*
|
|
235
|
-
* @return {string} - The generated query string.
|
|
236
|
-
*/
|
|
237
|
-
const queryString = (params) => {
|
|
238
|
-
const query = Object.keys(params)
|
|
239
|
-
.map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`)
|
|
240
|
-
.join('&');
|
|
241
|
-
return query.length ? `?${query}` : '';
|
|
242
|
-
};
|
|
243
|
-
/**
|
|
244
|
-
* Returns the headers for generating PDF files.
|
|
245
|
-
*
|
|
246
|
-
* @param {string} format - The format of the headers, 'object' or 'http_header'.
|
|
247
|
-
*
|
|
248
|
-
* @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating PDF files.
|
|
249
|
-
*/
|
|
250
|
-
const pdfHeaders = (format = 'object') => {
|
|
251
|
-
const headers = {
|
|
252
|
-
'Accept': 'application/pdf'
|
|
253
|
-
};
|
|
254
|
-
return format === 'object'
|
|
255
|
-
? headers
|
|
256
|
-
: new HttpHeaders(headers);
|
|
257
|
-
};
|
|
258
|
-
/**
|
|
259
|
-
* Returns the headers for generating XML files.
|
|
260
|
-
*
|
|
261
|
-
* @param {string} format - The format of the headers, 'object' or 'http_header'.
|
|
262
|
-
*
|
|
263
|
-
* @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating XML files.
|
|
264
|
-
*/
|
|
265
|
-
const xmlHeaders = (format = 'object') => {
|
|
266
|
-
const headers = {
|
|
267
|
-
'Accept': 'application/xml',
|
|
268
|
-
};
|
|
269
|
-
return format === 'object'
|
|
270
|
-
? headers
|
|
271
|
-
: new HttpHeaders(headers);
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
/*
|
|
275
|
-
* Public API Surface of ngx-services
|
|
276
|
-
*/
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Generated bundle index. Do not edit.
|
|
280
|
-
*/
|
|
281
|
-
|
|
282
|
-
export { ApiHeadersInterceptor, ApiSecurityService, ApiTokenInterceptor, NgxServicesModule, pdfHeaders, queryString, xmlHeaders };
|
|
283
|
-
//# sourceMappingURL=experteam-ngx-services.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"experteam-ngx-services.mjs","sources":["../../../../projects/experteam/ngx-services/src/lib/ngx-services.module.ts","../../../../projects/experteam/ngx-services/src/lib/apis/api-security.service.ts","../../../../projects/experteam/ngx-services/src/lib/interceptors/api-token.interceptor.ts","../../../../projects/experteam/ngx-services/src/lib/interceptors/api-headers.interceptor.ts","../../../../projects/experteam/ngx-services/src/lib/helpers/http.ts","../../../../projects/experteam/ngx-services/src/public-api.ts","../../../../projects/experteam/ngx-services/src/experteam-ngx-services.ts"],"sourcesContent":["import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport { Environment } from './ngx-services.models'\r\nimport { HttpClientModule } from '@angular/common/http'\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n HttpClientModule\r\n ],\r\n exports: []\r\n})\r\nexport class NgxServicesModule {\r\n /**\r\n * Returns a module with providers for the NgxServicesModule.\r\n *\r\n * @param {Environment} environment - The environment configuration object.\r\n *\r\n * @return {ModuleWithProviders<NgxServicesModule>} The module with providers for the NgxServicesModule.\r\n */\r\n public static forRoot (environment: Environment): ModuleWithProviders<NgxServicesModule> {\r\n return {\r\n ngModule: NgxServicesModule,\r\n providers: [\r\n {\r\n provide: 'env',\r\n useValue: environment\r\n }\r\n ]\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { ApiSuccess } from './api.models'\r\nimport {\r\n ChangeLanguageIn,\r\n CreateSessionIn,\r\n CreateSessionOut,\r\n GetUserIn,\r\n GetUserInfoIn,\r\n GetUserOut,\r\n LoginIn,\r\n LoginOut,\r\n MeOut\r\n} from './api-security.models'\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { map, Observable, tap } from 'rxjs'\r\nimport { CookieService } from 'ngx-cookie-service'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiSecurityService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private httpClient: HttpClient,\r\n private cookie: CookieService,\r\n ) {}\r\n\r\n /**\r\n * Retrieves the API security URL.\r\n *\r\n * @returns {string} The API security URL.\r\n */\r\n get url (): string {\r\n return this.environments.apiSecurityUrl\r\n }\r\n\r\n /**\r\n * Logs in the user using the provided login credentials.\r\n *\r\n * @param {object} loginParams - The login parameters.\r\n * @param {string} loginParams.username - The username of the user.\r\n * @param {string} loginParams.password - The password of the user.\r\n * @param {string} loginParams.role - The role of the user.\r\n *\r\n * @returns {Observable<LoginOut>} - An observable that emits the logged-in user's information.\r\n */\r\n login ({\r\n username,\r\n password,\r\n role,\r\n }: LoginIn): Observable<LoginOut> {\r\n return this.httpClient.post<ApiSuccess<LoginOut>>(`${this.url}/auth/login`, {\r\n system_name: 'CRA',\r\n username,\r\n password,\r\n role,\r\n }).pipe(\r\n map(({ data }) => data),\r\n tap(({ access_token }) => this.cookie.set('tokenCRA', access_token, { path: '/' }))\r\n )\r\n }\r\n\r\n /**\r\n * Logs out the user from the application.\r\n *\r\n * @return {Observable<{}>} An observable that emits an empty object upon successful logout.\r\n */\r\n logout (): Observable<{}> {\r\n return this.httpClient.post<ApiSuccess<{}>>(`${this.url}/auth/logout`, null)\r\n .pipe(\r\n map(({ data }) => data),\r\n tap(() => this.cookie.deleteAll('/'))\r\n )\r\n }\r\n\r\n /**\r\n * Creates a session with the given parameters.\r\n *\r\n * @param {CreateSessionIn} options - The input parameters for session creation.\r\n * @param {string} options.modelType - The session model type.\r\n * @param {string} options.modelId - The session model ID.\r\n * @param {string} options.token - The authorization token. Optional.\r\n *\r\n * @return {Observable<CreateSessionOut>} - An Observable that emits the result of the session creation.\r\n */\r\n createSession ({\r\n modelType,\r\n modelId,\r\n token,\r\n }: CreateSessionIn): Observable<CreateSessionOut> {\r\n let headers = new HttpHeaders({})\r\n\r\n if (token)\r\n headers = headers.set('Authorization', `Bearer ${token}`)\r\n\r\n return this.httpClient.post<ApiSuccess<CreateSessionOut>>(\r\n `${this.url}/sessions`, {\r\n model_type: modelType,\r\n model_id: modelId,\r\n }, {\r\n headers\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves user information.\r\n *\r\n * @returns {Observable<MeOut>} Observable of user information.\r\n */\r\n me (): Observable<MeOut> {\r\n return this.httpClient.get<ApiSuccess<MeOut>>(`${this.url}/auth/me`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves user information from the API.\r\n *\r\n * @param {GetUserIn} user - The user object containing the user ID.\r\n *\r\n * @returns {Observable<GetUserOut>} - An observable that emits the retrieved user data.\r\n */\r\n user ({\r\n userId\r\n }: GetUserIn): Observable<GetUserOut> {\r\n return this.httpClient.get<ApiSuccess<GetUserOut>>(`${this.url}/users/${userId}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Get user information\r\n *\r\n * @param {string} token - The user's authentication token\r\n *\r\n * @return {Observable<MeOut>} - An observable that emits the user's information\r\n */\r\n userInfo ({\r\n token\r\n }: GetUserInfoIn): Observable<MeOut> {\r\n return this.httpClient.get<ApiSuccess<MeOut>>(`${this.url}/auth/me`, {\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Changes the language of the authenticated user.\r\n *\r\n * @param {Object} params - The parameters for changing the language.\r\n * @param {string} params.languageId - The ID of the language to change to.\r\n *\r\n * @returns {Observable<Object>} - An observable that emits the updated user data.\r\n */\r\n changeLanguage ({\r\n languageId\r\n }: ChangeLanguageIn) {\r\n return this.httpClient.put<ApiSuccess<MeOut>>(`${this.url}/auth/me`, {\r\n language_id: languageId\r\n }).pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'\r\nimport { Observable } from 'rxjs'\r\nimport { CookieService } from 'ngx-cookie-service'\r\n\r\n@Injectable()\r\nexport class ApiTokenInterceptor implements HttpInterceptor {\r\n constructor (private cookie: CookieService) {}\r\n\r\n /**\r\n * Intercepts the HTTP request and adds the Authorization header.\r\n *\r\n * @param {HttpRequest<unknown>} request - The HTTP request to intercept.\r\n * @param {HttpHandler} next - The next HTTP handler in the chain.\r\n *\r\n * @returns {Observable<HttpEvent<unknown>>} - An observable containing the HTTP event.\r\n */\r\n intercept (request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n if (request.headers.has('Authorization'))\r\n return next.handle(request)\r\n\r\n const token = this.cookie.get('tokenCRA')\r\n\r\n if (!token)\r\n return next.handle(request)\r\n\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n\r\n return next.handle(request)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { HttpEvent, HttpHandler, HttpHeaders, HttpInterceptor, HttpRequest } from '@angular/common/http'\r\nimport { Observable } from 'rxjs'\r\n\r\n@Injectable()\r\nexport class ApiHeadersInterceptor implements HttpInterceptor {\r\n /**\r\n * Intercepts HTTP requests and adds common headers.\r\n *\r\n * @param {HttpRequest<unknown>} request - The HTTP request intercepted.\r\n * @param {HttpHandler} next - The next handler in the chain.\r\n *\r\n * @returns {Observable<HttpEvent<unknown>>} - Observable of the HTTP event after interception.\r\n */\r\n intercept (request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n let headers = new HttpHeaders({\r\n 'cache-control': 'max-age=0, no-cache, no-store, must-revalidate',\r\n 'expires': '0',\r\n 'pragma': 'no-cache'\r\n })\r\n\r\n if (!request.headers.has('Content-Type'))\r\n headers = headers.set('Content-Type', 'application/json')\r\n\r\n if (!request.headers.has('Accept'))\r\n headers = headers.set('Accept', 'application/json')\r\n\r\n if (!request.headers.has('Accept-Language'))\r\n headers = headers.set('Accept-Language', localStorage.getItem('lang') ?? 'en')\r\n\r\n request = request.clone({ headers })\r\n\r\n return next.handle(request)\r\n }\r\n}\r\n","import { HttpHeaders } from '@angular/common/http'\r\n\r\n/**\r\n * Convert an object of key-value pairs into a URL query string.\r\n *\r\n * @param {Object} params - The key-value pairs to converted into a query string.\r\n *\r\n * @return {string} - The generated query string.\r\n */\r\nexport const queryString = (params: { [key: string]: string | number | boolean }): string => {\r\n const query = Object.keys(params)\r\n .map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`)\r\n .join('&')\r\n\r\n return query.length ? `?${query}` : ''\r\n}\r\n\r\n/**\r\n * Returns the headers for generating PDF files.\r\n *\r\n * @param {string} format - The format of the headers, 'object' or 'http_header'.\r\n *\r\n * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating PDF files.\r\n */\r\nexport const pdfHeaders = (format: 'object' | 'http_header' = 'object'): HttpHeaders | { [header: string]: string | string[] } => {\r\n const headers = {\r\n 'Accept': 'application/pdf'\r\n }\r\n\r\n return format === 'object'\r\n ? headers\r\n : new HttpHeaders(headers)\r\n}\r\n\r\n/**\r\n * Returns the headers for generating XML files.\r\n *\r\n * @param {string} format - The format of the headers, 'object' or 'http_header'.\r\n *\r\n * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating XML files.\r\n */\r\nexport const xmlHeaders = (format: 'object' | 'http_header' = 'object'): HttpHeaders | { [header: string]: string | string[] } => {\r\n const headers = {\r\n 'Accept': 'application/xml',\r\n }\r\n\r\n return format === 'object'\r\n ? headers\r\n : new HttpHeaders(headers)\r\n}\r\n","/*\r\n * Public API Surface of ngx-services\r\n */\r\nexport * from './lib/ngx-services.module'\r\n\r\n// api services\r\nexport * from './lib/apis/api-security.service'\r\nexport * from './lib/apis/api-security.models'\r\n\r\n// interceptors\r\nexport * from './lib/interceptors/api-token.interceptor'\r\nexport * from './lib/interceptors/api-headers.interceptor'\r\n\r\n// helpers\r\nexport * from './lib/helpers/http'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|