iptdevs-design-system 2.6.34 → 2.6.36
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 +24 -24
- package/esm2020/iptdevs-design-system.mjs +4 -4
- package/esm2020/lib/components/atoms/aside-button/aside-button.component.mjs +50 -50
- package/esm2020/lib/components/atoms/button/button.component.mjs +64 -64
- package/esm2020/lib/components/atoms/checkbox/checkbox.component.mjs +47 -47
- package/esm2020/lib/components/atoms/datalist/datalist.component.mjs +94 -94
- package/esm2020/lib/components/atoms/input/input.component.mjs +145 -145
- package/esm2020/lib/components/atoms/level-button/level-button.component.mjs +64 -64
- package/esm2020/lib/components/atoms/level-text/level-text.component.mjs +19 -19
- package/esm2020/lib/components/atoms/loader/loader.component.mjs +48 -48
- package/esm2020/lib/components/atoms/radio/radio.component.mjs +47 -47
- package/esm2020/lib/components/atoms/select/select.component.mjs +92 -92
- package/esm2020/lib/components/atoms/text-link/text-link.component.mjs +39 -39
- package/esm2020/lib/components/components.module.mjs +118 -118
- package/esm2020/lib/components/forms/create-user-form/create-user-form.component.mjs +228 -228
- package/esm2020/lib/components/forms/login-form/login-form.component.mjs +93 -93
- package/esm2020/lib/components/material.module.mjs +19 -19
- package/esm2020/lib/components/molecules/sidenav/sidenav.component.mjs +146 -146
- package/esm2020/lib/core/core.module.mjs +52 -49
- package/esm2020/lib/core/models/activities/activities.interface.mjs +2 -2
- package/esm2020/lib/core/models/attendance/attendance.interface.mjs +2 -2
- package/esm2020/lib/core/models/budget/budget.model.mjs +2 -2
- package/esm2020/lib/core/models/calendar/calendar-rq.models.mjs +2 -2
- package/esm2020/lib/core/models/classroom/classroom-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/cod/cod-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/course/course-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/cronogram/cronogram.models.mjs +2 -2
- package/esm2020/lib/core/models/marketing/marketing.model.mjs +2 -2
- package/esm2020/lib/core/models/notes/notes.interface.mjs +2 -2
- package/esm2020/lib/core/models/response/response.interface.mjs +2 -2
- package/esm2020/lib/core/models/session/session.model.mjs +3 -3
- package/esm2020/lib/core/models/student/student.interface.mjs +2 -2
- package/esm2020/lib/core/models/table/table-rs.model.mjs +2 -2
- package/esm2020/lib/core/models/test/test.model.mjs +2 -2
- package/esm2020/lib/core/models/url/url.model.mjs +2 -2
- package/esm2020/lib/core/models/user/user-rq.model.mjs +2 -2
- package/esm2020/lib/core/models/user/user-rs.model.mjs +5 -5
- package/esm2020/lib/core/services/activity-service/activity.service.mjs +92 -0
- package/esm2020/lib/core/services/attendance-service/attendance.service.mjs +64 -64
- package/esm2020/lib/core/services/budget-service/budget-service.mjs +41 -41
- package/esm2020/lib/core/services/calendar-service/calendar.service.mjs +39 -39
- package/esm2020/lib/core/services/classroom-service/classroom-service.service.mjs +31 -31
- package/esm2020/lib/core/services/course-service/course-service.model.mjs +75 -75
- package/esm2020/lib/core/services/marketing-service/marketing-service.mjs +57 -57
- package/esm2020/lib/core/services/notes-service/notes.service.mjs +50 -50
- package/esm2020/lib/core/services/parameters-service/parameters.service.mjs +114 -114
- package/esm2020/lib/core/services/storage-service/storage-service.mjs +50 -50
- package/esm2020/lib/core/services/student-service/student.service.mjs +30 -30
- package/esm2020/lib/core/services/switch-service/switch.service.mjs +16 -16
- package/esm2020/lib/core/services/test-service/test.service.mjs +136 -136
- package/esm2020/lib/core/services/user-service/user-service.mjs +84 -84
- package/esm2020/lib/core/utils/base-service/base.service.mjs +179 -179
- package/esm2020/lib/core/utils/route-service/route.service.mjs +18 -18
- package/esm2020/lib/design-system.module.mjs +36 -36
- package/esm2020/public-api.mjs +60 -60
- package/fesm2015/iptdevs-design-system.mjs +2254 -2164
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +2251 -2161
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/iptdevs-design-system.d.ts +5 -5
- package/lib/components/atoms/aside-button/aside-button.component.d.ts +11 -11
- package/lib/components/atoms/button/button.component.d.ts +13 -13
- package/lib/components/atoms/checkbox/checkbox.component.d.ts +11 -11
- package/lib/components/atoms/datalist/datalist.component.d.ts +20 -20
- package/lib/components/atoms/input/input.component.d.ts +26 -26
- package/lib/components/atoms/level-button/level-button.component.d.ts +11 -11
- package/lib/components/atoms/level-text/level-text.component.d.ts +7 -7
- package/lib/components/atoms/loader/loader.component.d.ts +7 -7
- package/lib/components/atoms/radio/radio.component.d.ts +11 -11
- package/lib/components/atoms/select/select.component.d.ts +24 -24
- package/lib/components/atoms/text-link/text-link.component.d.ts +12 -12
- package/lib/components/components.module.d.ts +24 -24
- package/lib/components/forms/create-user-form/create-user-form.component.d.ts +36 -36
- package/lib/components/forms/login-form/login-form.component.d.ts +13 -13
- package/lib/components/material.module.d.ts +11 -11
- package/lib/components/molecules/sidenav/sidenav.component.d.ts +22 -22
- package/lib/core/core.module.d.ts +6 -6
- package/lib/core/models/activities/activities.interface.d.ts +12 -6
- package/lib/core/models/attendance/attendance.interface.d.ts +62 -62
- package/lib/core/models/budget/budget.model.d.ts +69 -69
- package/lib/core/models/calendar/calendar-rq.models.d.ts +27 -27
- package/lib/core/models/classroom/classroom-rq.model.d.ts +4 -4
- package/lib/core/models/cod/cod-rq.model.d.ts +51 -51
- package/lib/core/models/course/course-rq.model.d.ts +86 -86
- package/lib/core/models/cronogram/cronogram.models.d.ts +95 -95
- package/lib/core/models/marketing/marketing.model.d.ts +104 -104
- package/lib/core/models/notes/notes.interface.d.ts +89 -89
- package/lib/core/models/response/response.interface.d.ts +10 -10
- package/lib/core/models/session/session.model.d.ts +5 -5
- package/lib/core/models/student/student.interface.d.ts +4 -4
- package/lib/core/models/table/table-rs.model.d.ts +7 -7
- package/lib/core/models/test/test.model.d.ts +219 -219
- package/lib/core/models/url/url.model.d.ts +8 -8
- package/lib/core/models/user/user-rq.model.d.ts +91 -91
- package/lib/core/models/user/user-rs.model.d.ts +35 -35
- package/lib/core/services/activity-service/activity.service.d.ts +26 -0
- package/lib/core/services/attendance-service/attendance.service.d.ts +22 -22
- package/lib/core/services/budget-service/budget-service.d.ts +16 -16
- package/lib/core/services/calendar-service/calendar.service.d.ts +18 -18
- package/lib/core/services/classroom-service/classroom-service.service.d.ts +14 -14
- package/lib/core/services/course-service/course-service.model.d.ts +24 -24
- package/lib/core/services/marketing-service/marketing-service.d.ts +20 -20
- package/lib/core/services/notes-service/notes.service.d.ts +19 -19
- package/lib/core/services/parameters-service/parameters.service.d.ts +34 -34
- package/lib/core/services/storage-service/storage-service.d.ts +18 -18
- package/lib/core/services/student-service/student.service.d.ts +14 -14
- package/lib/core/services/switch-service/switch.service.d.ts +8 -8
- package/lib/core/services/test-service/test.service.d.ts +35 -35
- package/lib/core/services/user-service/user-service.d.ts +26 -26
- package/lib/core/utils/base-service/base.service.d.ts +21 -21
- package/lib/core/utils/route-service/route.service.d.ts +9 -9
- package/lib/design-system.module.d.ts +9 -9
- package/package.json +1 -1
- package/public-api.d.ts +51 -51
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common/http";
|
|
5
|
-
export class UserService {
|
|
6
|
-
constructor(http) {
|
|
7
|
-
this.http = http;
|
|
8
|
-
this.SERVICE_URL = 'https://iptdev.com.co/lab/users/api/';
|
|
9
|
-
}
|
|
10
|
-
login(userLogin) {
|
|
11
|
-
let serviceUrl = this.SERVICE_URL + 'post/login';
|
|
12
|
-
this.generateRequestParams(userLogin);
|
|
13
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
14
|
-
}
|
|
15
|
-
resetPassword(resetPassword) {
|
|
16
|
-
let serviceUrl = this.SERVICE_URL + 'reset/password';
|
|
17
|
-
this.generateRequestParams(resetPassword);
|
|
18
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
19
|
-
}
|
|
20
|
-
register(user) {
|
|
21
|
-
let serviceUrl = this.SERVICE_URL + 'post/create/web';
|
|
22
|
-
this.generateRequestParams(user);
|
|
23
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
24
|
-
}
|
|
25
|
-
registerIndex(register) {
|
|
26
|
-
let serviceUrl = this.SERVICE_URL + 'post/create/marketing';
|
|
27
|
-
this.generateRequestParams(register);
|
|
28
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
29
|
-
}
|
|
30
|
-
registerDashboard(user) {
|
|
31
|
-
let serviceUrl = this.SERVICE_URL + 'post/create/dashboard';
|
|
32
|
-
this.generateRequestParams(user);
|
|
33
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
34
|
-
}
|
|
35
|
-
getAvailableTeachers(token) {
|
|
36
|
-
let serviceUrl = this.SERVICE_URL + 'post/obtain/teachers';
|
|
37
|
-
this.generateRequestParams(token);
|
|
38
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
39
|
-
}
|
|
40
|
-
getAllAdvisor(userToken) {
|
|
41
|
-
let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/commercial';
|
|
42
|
-
this.generateRequestParams(userToken);
|
|
43
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
44
|
-
}
|
|
45
|
-
getByRoleUser(codeRole) {
|
|
46
|
-
let serviceUrl = this.SERVICE_URL + 'get/obtain/by/role/user/' + codeRole;
|
|
47
|
-
return this.http.get(serviceUrl);
|
|
48
|
-
}
|
|
49
|
-
getUserStatistics(userToken) {
|
|
50
|
-
let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/statistics';
|
|
51
|
-
this.generateRequestParams(userToken);
|
|
52
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
53
|
-
}
|
|
54
|
-
getRoutesForRole(token) {
|
|
55
|
-
let serviceUrl = this.SERVICE_URL + 'post/routes/role';
|
|
56
|
-
this.generateRequestParams(token);
|
|
57
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
58
|
-
}
|
|
59
|
-
getStudents(token) {
|
|
60
|
-
let serviceUrl = this.SERVICE_URL + 'post/obtain/students';
|
|
61
|
-
this.generateRequestParams(token);
|
|
62
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
63
|
-
}
|
|
64
|
-
getStudent(token) {
|
|
65
|
-
let serviceUrl = this.SERVICE_URL + 'post/obtain/student';
|
|
66
|
-
this.generateRequestParams(token);
|
|
67
|
-
return this.http.post(serviceUrl, this.httpOptions);
|
|
68
|
-
}
|
|
69
|
-
generateRequestParams(param) {
|
|
70
|
-
this.httpOptions = {
|
|
71
|
-
header: new HttpHeaders(),
|
|
72
|
-
params: param,
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UserService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
77
|
-
UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UserService, providedIn: 'root' });
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UserService, decorators: [{
|
|
79
|
-
type: Injectable,
|
|
80
|
-
args: [{
|
|
81
|
-
providedIn: 'root',
|
|
82
|
-
}]
|
|
83
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
export class UserService {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
this.SERVICE_URL = 'https://iptdev.com.co/lab/users/api/';
|
|
9
|
+
}
|
|
10
|
+
login(userLogin) {
|
|
11
|
+
let serviceUrl = this.SERVICE_URL + 'post/login';
|
|
12
|
+
this.generateRequestParams(userLogin);
|
|
13
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
14
|
+
}
|
|
15
|
+
resetPassword(resetPassword) {
|
|
16
|
+
let serviceUrl = this.SERVICE_URL + 'reset/password';
|
|
17
|
+
this.generateRequestParams(resetPassword);
|
|
18
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
19
|
+
}
|
|
20
|
+
register(user) {
|
|
21
|
+
let serviceUrl = this.SERVICE_URL + 'post/create/web';
|
|
22
|
+
this.generateRequestParams(user);
|
|
23
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
24
|
+
}
|
|
25
|
+
registerIndex(register) {
|
|
26
|
+
let serviceUrl = this.SERVICE_URL + 'post/create/marketing';
|
|
27
|
+
this.generateRequestParams(register);
|
|
28
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
29
|
+
}
|
|
30
|
+
registerDashboard(user) {
|
|
31
|
+
let serviceUrl = this.SERVICE_URL + 'post/create/dashboard';
|
|
32
|
+
this.generateRequestParams(user);
|
|
33
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
34
|
+
}
|
|
35
|
+
getAvailableTeachers(token) {
|
|
36
|
+
let serviceUrl = this.SERVICE_URL + 'post/obtain/teachers';
|
|
37
|
+
this.generateRequestParams(token);
|
|
38
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
39
|
+
}
|
|
40
|
+
getAllAdvisor(userToken) {
|
|
41
|
+
let serviceUrl = this.SERVICE_URL + 'post/obtain/all/user/commercial';
|
|
42
|
+
this.generateRequestParams(userToken);
|
|
43
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
44
|
+
}
|
|
45
|
+
getByRoleUser(codeRole) {
|
|
46
|
+
let serviceUrl = this.SERVICE_URL + 'get/obtain/by/role/user/' + codeRole;
|
|
47
|
+
return this.http.get(serviceUrl);
|
|
48
|
+
}
|
|
49
|
+
getUserStatistics(userToken) {
|
|
50
|
+
let serviceUrl = this.SERVICE_URL + 'get/contact/strategy/statistics';
|
|
51
|
+
this.generateRequestParams(userToken);
|
|
52
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
53
|
+
}
|
|
54
|
+
getRoutesForRole(token) {
|
|
55
|
+
let serviceUrl = this.SERVICE_URL + 'post/routes/role';
|
|
56
|
+
this.generateRequestParams(token);
|
|
57
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
58
|
+
}
|
|
59
|
+
getStudents(token) {
|
|
60
|
+
let serviceUrl = this.SERVICE_URL + 'post/obtain/students';
|
|
61
|
+
this.generateRequestParams(token);
|
|
62
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
63
|
+
}
|
|
64
|
+
getStudent(token) {
|
|
65
|
+
let serviceUrl = this.SERVICE_URL + 'post/obtain/student';
|
|
66
|
+
this.generateRequestParams(token);
|
|
67
|
+
return this.http.post(serviceUrl, this.httpOptions);
|
|
68
|
+
}
|
|
69
|
+
generateRequestParams(param) {
|
|
70
|
+
this.httpOptions = {
|
|
71
|
+
header: new HttpHeaders(),
|
|
72
|
+
params: param,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UserService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
77
|
+
UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UserService, providedIn: 'root' });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: UserService, decorators: [{
|
|
79
|
+
type: Injectable,
|
|
80
|
+
args: [{
|
|
81
|
+
providedIn: 'root',
|
|
82
|
+
}]
|
|
83
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvc2VydmljZXMvdXNlci1zZXJ2aWNlL3VzZXItc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBUS9ELE1BQU0sT0FBTyxXQUFXO0lBS3RCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFKNUIsZ0JBQVcsR0FBRyxzQ0FBc0MsQ0FBQztJQUl0QixDQUFDO0lBRXhDLEtBQUssQ0FBQyxTQUFrQjtRQUN0QixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztRQUNqRCxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxhQUFhLENBQUMsYUFBK0I7UUFDM0MsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztRQUNyRCxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRLENBQUMsSUFBZ0I7UUFDdkIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztRQUN0RCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsT0FB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QUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFVO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUc7WUFDakIsTUFBTSxFQUFFLElBQUksV0FBVyxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQztJQUNKLENBQUM7O3dHQW5GVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBSZWdpc3RlckluZGV4UnEsIFJlZ2lzdGVyRGFzaGJvYXJkUnEsIFVzZXJUb2tlblJxLCBGb3Jnb3RQYXNzd29yZFJxLCBMb2dpblJxLCBSZWdpc3RlclJxLCBnZXRTdHVkZW50UnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci91c2VyLXJxLm1vZGVsJztcclxuaW1wb3J0IHsgZ2V0U3RyYXRlZ3lCeVVzZXJDb21tZXJjaWFsUnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvbWFya2V0aW5nL21hcmtldGluZy5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgU0VSVklDRV9VUkwgPSAnaHR0cHM6Ly9pcHRkZXYuY29tLmNvL2xhYi91c2Vycy9hcGkvJztcclxuXHJcbiAgaHR0cE9wdGlvbnM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxyXG5cclxuICBsb2dpbih1c2VyTG9naW46IExvZ2luUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvbG9naW4nO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModXNlckxvZ2luKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHJlc2V0UGFzc3dvcmQocmVzZXRQYXNzd29yZDogRm9yZ290UGFzc3dvcmRScSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAncmVzZXQvcGFzc3dvcmQnO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXMocmVzZXRQYXNzd29yZCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlcih1c2VyOiBSZWdpc3RlclJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NyZWF0ZS93ZWInO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModXNlcik7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlckluZGV4KHJlZ2lzdGVyOiBSZWdpc3RlckluZGV4UnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3QvY3JlYXRlL21hcmtldGluZyc7XHJcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyhyZWdpc3Rlcik7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlckRhc2hib2FyZCh1c2VyOiBSZWdpc3RlckRhc2hib2FyZFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L2NyZWF0ZS9kYXNoYm9hcmQnO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModXNlcik7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFibGVUZWFjaGVycyh0b2tlbjogVXNlclRva2VuUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3RlYWNoZXJzJztcclxuICAgIHRoaXMuZ2VuZXJhdGVSZXF1ZXN0UGFyYW1zKHRva2VuKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGdldEFsbEFkdmlzb3IodXNlclRva2VuOiBnZXRTdHJhdGVneUJ5VXNlckNvbW1lcmNpYWxScSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgc2VydmljZVVybCA9ICB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL2FsbC91c2VyL2NvbW1lcmNpYWwnO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModXNlclRva2VuKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChzZXJ2aWNlVXJsLCB0aGlzLmh0dHBPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGdldEJ5Um9sZVVzZXIoY29kZVJvbGU6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgc2VydmljZVVybCA9IHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L29idGFpbi9ieS9yb2xlL3VzZXIvJyArIGNvZGVSb2xlO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoc2VydmljZVVybCk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyU3RhdGlzdGljcyh1c2VyVG9rZW46IGdldFN0cmF0ZWd5QnlVc2VyQ29tbWVyY2lhbFJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gIHRoaXMuU0VSVklDRV9VUkwgKyAnZ2V0L2NvbnRhY3Qvc3RyYXRlZ3kvc3RhdGlzdGljcyc7XHJcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh1c2VyVG9rZW4pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Um91dGVzRm9yUm9sZSh0b2tlbjogVXNlclRva2VuUnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvcm91dGVzL3JvbGUnO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModG9rZW4pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3R1ZGVudHModG9rZW46IFVzZXJUb2tlblJxKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzZXJ2aWNlVXJsID0gdGhpcy5TRVJWSUNFX1VSTCArICdwb3N0L29idGFpbi9zdHVkZW50cyc7XHJcbiAgICB0aGlzLmdlbmVyYXRlUmVxdWVzdFBhcmFtcyh0b2tlbik7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Qoc2VydmljZVVybCwgdGhpcy5odHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRTdHVkZW50KHRva2VuOiBnZXRTdHVkZW50UnEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHNlcnZpY2VVcmwgPSB0aGlzLlNFUlZJQ0VfVVJMICsgJ3Bvc3Qvb2J0YWluL3N0dWRlbnQnO1xyXG4gICAgdGhpcy5nZW5lcmF0ZVJlcXVlc3RQYXJhbXModG9rZW4pO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHNlcnZpY2VVcmwsIHRoaXMuaHR0cE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZVJlcXVlc3RQYXJhbXMocGFyYW06IGFueSkge1xyXG4gICAgdGhpcy5odHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyOiBuZXcgSHR0cEhlYWRlcnMoKSxcclxuICAgICAgcGFyYW1zOiBwYXJhbSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,179 +1,179 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import Swal from 'sweetalert2';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "../../services/user-service/user-service";
|
|
5
|
-
import * as i2 from "../../services/storage-service/storage-service";
|
|
6
|
-
import * as i3 from "../../services/calendar-service/calendar.service";
|
|
7
|
-
export class BaseService {
|
|
8
|
-
constructor(userService, storageService, calendarService) {
|
|
9
|
-
this.userService = userService;
|
|
10
|
-
this.storageService = storageService;
|
|
11
|
-
this.calendarService = calendarService;
|
|
12
|
-
}
|
|
13
|
-
webLogin(user, password) {
|
|
14
|
-
let request = {
|
|
15
|
-
user: user,
|
|
16
|
-
password: password
|
|
17
|
-
};
|
|
18
|
-
let service = this.userService;
|
|
19
|
-
let storage = this.storageService;
|
|
20
|
-
return new Promise(function (resolve, reject) {
|
|
21
|
-
service.login(request).subscribe(response => {
|
|
22
|
-
switch (response.message.code) {
|
|
23
|
-
case 1:
|
|
24
|
-
Swal.fire({
|
|
25
|
-
'title': '<p style="font-family: Poppins"">Perfect!</p>',
|
|
26
|
-
'html': '<p style="font-family: Poppins"">Succesfull login</p>',
|
|
27
|
-
'icon': 'success',
|
|
28
|
-
});
|
|
29
|
-
const loginRegisterUser = {
|
|
30
|
-
token: response.data.token,
|
|
31
|
-
user: response.data,
|
|
32
|
-
};
|
|
33
|
-
storage.setCurrentSession(loginRegisterUser);
|
|
34
|
-
resolve(true);
|
|
35
|
-
break;
|
|
36
|
-
case 2:
|
|
37
|
-
Swal.fire({
|
|
38
|
-
'title': '<p style="font-family: Poppins"">Warning!</p>',
|
|
39
|
-
'html': '<p style="font-family: Poppins"">The data does not correspond to a user registered in our system, please review them.</p>',
|
|
40
|
-
'icon': 'warning',
|
|
41
|
-
});
|
|
42
|
-
resolve(false);
|
|
43
|
-
break;
|
|
44
|
-
case 3:
|
|
45
|
-
Swal.fire({
|
|
46
|
-
'title': '<p style="font-family: Poppins"">Error!</p>',
|
|
47
|
-
'html': '<p style="font-family: Poppins"">The input data does not meet the established parameters.</p>',
|
|
48
|
-
'icon': 'error',
|
|
49
|
-
});
|
|
50
|
-
resolve(false);
|
|
51
|
-
break;
|
|
52
|
-
default:
|
|
53
|
-
Swal.fire({
|
|
54
|
-
'title': '<p style="font-family: Poppins"">Error!</p>',
|
|
55
|
-
'html': '<p style="font-family: Poppins"">An unexpected error has occurred</p>',
|
|
56
|
-
'icon': 'error',
|
|
57
|
-
});
|
|
58
|
-
resolve(false);
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
reject('Unhandled exception');
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
getCronogramAvailability(isTeacher, code, startDate, numClass, weekDays, startTime, endTime) {
|
|
66
|
-
let request = {
|
|
67
|
-
isTeacher: isTeacher,
|
|
68
|
-
code: code,
|
|
69
|
-
startDate: startDate,
|
|
70
|
-
numClass: numClass,
|
|
71
|
-
weekDays: weekDays,
|
|
72
|
-
startTime: startTime,
|
|
73
|
-
endTime: endTime,
|
|
74
|
-
};
|
|
75
|
-
let service = this.calendarService;
|
|
76
|
-
return new Promise(function (resolve, reject) {
|
|
77
|
-
service.postCreateQueryEvent(request).subscribe((response) => {
|
|
78
|
-
switch (response.message.code) {
|
|
79
|
-
case 1:
|
|
80
|
-
resolve(response.data);
|
|
81
|
-
break;
|
|
82
|
-
default:
|
|
83
|
-
reject('Unhandled exception');
|
|
84
|
-
}
|
|
85
|
-
reject('Unhandled exception');
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
getUserRole() {
|
|
90
|
-
let user = this.storageService.getCurrentUser()?.role;
|
|
91
|
-
return user === undefined ? -1 : user;
|
|
92
|
-
}
|
|
93
|
-
getUserToken() {
|
|
94
|
-
let token = this.storageService.getCurrentUser()?.token;
|
|
95
|
-
return token === undefined ? '-1' : token;
|
|
96
|
-
}
|
|
97
|
-
getUserName() {
|
|
98
|
-
let user = this.storageService.getCurrentUser();
|
|
99
|
-
let response = user === null ? '' : user.name;
|
|
100
|
-
return response;
|
|
101
|
-
}
|
|
102
|
-
registerUserFromDashboard(registerDashboardRq) {
|
|
103
|
-
let request = registerDashboardRq;
|
|
104
|
-
let service = this.userService;
|
|
105
|
-
return new Promise(function (resolve, reject) {
|
|
106
|
-
service.registerDashboard(request).subscribe((response) => {
|
|
107
|
-
switch (response.message.code) {
|
|
108
|
-
case 1:
|
|
109
|
-
Swal.fire({
|
|
110
|
-
'title': '<p style="font-family: Poppins"">Perfect!</p>',
|
|
111
|
-
'html': '<p style="font-family: Poppins"">Sucesfull register!</p>',
|
|
112
|
-
'icon': 'success',
|
|
113
|
-
});
|
|
114
|
-
resolve(true);
|
|
115
|
-
break;
|
|
116
|
-
case 3:
|
|
117
|
-
Swal.fire({
|
|
118
|
-
'title': '<p style="font-family: Poppins"">Error!</p>',
|
|
119
|
-
'html': '<p style="font-family: Poppins"">The input data does not meet the established parameters.</p>',
|
|
120
|
-
'icon': 'error',
|
|
121
|
-
});
|
|
122
|
-
resolve(false);
|
|
123
|
-
break;
|
|
124
|
-
case 4:
|
|
125
|
-
Swal.fire({
|
|
126
|
-
'title': '<p style="font-family: Poppins">Ups!</p>',
|
|
127
|
-
'html': '<p style="font-family: Poppins">The input data has a high relation with a user that already exists!</p>',
|
|
128
|
-
'icon': 'warning',
|
|
129
|
-
});
|
|
130
|
-
resolve(false);
|
|
131
|
-
break;
|
|
132
|
-
default:
|
|
133
|
-
Swal.fire({
|
|
134
|
-
'title': '<p style="font-family: Poppins"">Error!</p>',
|
|
135
|
-
'html': '<p style="font-family: Poppins"">An unexpected error has occurred</p>',
|
|
136
|
-
'icon': 'error',
|
|
137
|
-
});
|
|
138
|
-
resolve(false);
|
|
139
|
-
break;
|
|
140
|
-
}
|
|
141
|
-
reject('Unhandled exception');
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
jsonToArray(data) {
|
|
146
|
-
var response = [];
|
|
147
|
-
data.forEach((element) => {
|
|
148
|
-
var object = [];
|
|
149
|
-
for (var clave in element) {
|
|
150
|
-
if (element.hasOwnProperty(clave)) {
|
|
151
|
-
if (typeof element[clave] == 'object') {
|
|
152
|
-
element[clave] = this.subJsonToArray(element[clave]);
|
|
153
|
-
}
|
|
154
|
-
object.push(element[clave]);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
response.push(object);
|
|
158
|
-
});
|
|
159
|
-
return response;
|
|
160
|
-
}
|
|
161
|
-
subJsonToArray(data) {
|
|
162
|
-
var object = '';
|
|
163
|
-
for (var clave in data) {
|
|
164
|
-
if (clave != 'code') {
|
|
165
|
-
object += '\n' + data[clave];
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return object;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
BaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BaseService, deps: [{ token: i1.UserService }, { token: i2.StorageService }, { token: i3.CalendarService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
172
|
-
BaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BaseService, providedIn: 'root' });
|
|
173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BaseService, decorators: [{
|
|
174
|
-
type: Injectable,
|
|
175
|
-
args: [{
|
|
176
|
-
providedIn: 'root',
|
|
177
|
-
}]
|
|
178
|
-
}], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.StorageService }, { type: i3.CalendarService }]; } });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQzs7Ozs7QUFVL0IsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFDVSxXQUF3QixFQUN4QixjQUE4QixFQUM5QixlQUFnQztRQUZoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQ3ZDLENBQUM7SUFFSixRQUFRLENBQUMsSUFBWSxFQUFFLFFBQWdCO1FBQ3JDLElBQUksT0FBTyxHQUFZO1lBQ3JCLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQTtRQUNELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDL0IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUVsQyxPQUFPLElBQUksT0FBTyxDQUFDLFVBQVMsT0FBTyxFQUFFLE1BQU07WUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzNDLFFBQVEsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7b0JBQzdCLEtBQUssQ0FBQzt3QkFDSixJQUFJLENBQUMsSUFBSSxDQUFFOzRCQUNULE9BQU8sRUFBRSwrQ0FBK0M7NEJBQ3hELE1BQU0sRUFBRSx1REFBdUQ7NEJBQy9ELE1BQU0sRUFBQyxTQUFTO3lCQUNqQixDQUFDLENBQUM7d0JBRUgsTUFBTSxpQkFBaUIsR0FBWTs0QkFD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SSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QjtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7d0dBdkxVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dpblJxLCBSZWdpc3RlckRhc2hib2FyZFJxIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXIvdXNlci1ycS5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VzZXItc2VydmljZS91c2VyLXNlcnZpY2UnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuaW1wb3J0IHsgU2Vzc2lvbiB9IGZyb20gJy4uLy4uL21vZGVscy9zZXNzaW9uL3Nlc3Npb24ubW9kZWwnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLXNlcnZpY2Uvc3RvcmFnZS1zZXJ2aWNlJztcbmltcG9ydCB7IEF2YWlsYWJpbGl0eVF1ZXJ5UnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvY3Jvbm9ncmFtL2Nyb25vZ3JhbS5tb2RlbHMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FsZW5kYXItc2VydmljZS9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Jlc3BvbnNlL3Jlc3BvbnNlLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZVxuICApIHt9XG5cbiAgd2ViTG9naW4odXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPntcbiAgICBsZXQgcmVxdWVzdDogTG9naW5ScSA9IHtcbiAgICAgIHVzZXI6IHVzZXIsXG4gICAgICBwYXNzd29yZDogcGFzc3dvcmRcbiAgICB9XG4gICAgbGV0IHNlcnZpY2UgPSB0aGlzLnVzZXJTZXJ2aWNlO1xuICAgIGxldCBzdG9yYWdlID0gdGhpcy5zdG9yYWdlU2VydmljZTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgIHNlcnZpY2UubG9naW4ocmVxdWVzdCkuc3Vic2NyaWJlKCByZXNwb25zZSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVzcG9uc2UubWVzc2FnZS5jb2RlKSB7XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgU3dhbC5maXJlICh7XG4gICAgICAgICAgICAgICd0aXRsZSc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5QZXJmZWN0ITwvcD4nLFxuICAgICAgICAgICAgICAnaHRtbCc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5TdWNjZXNmdWxsIGxvZ2luPC9wPicsXG4gICAgICAgICAgICAgICdpY29uJzonc3VjY2VzcycsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3QgbG9naW5SZWdpc3RlclVzZXI6IFNlc3Npb24gPSB7XG4gICAgICAgICAgICAgIHRva2VuOiByZXNwb25zZS5kYXRhLnRva2VuLFxuICAgICAgICAgICAgICB1c2VyOiByZXNwb25zZS5kYXRhLFxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgc3RvcmFnZS5zZXRDdXJyZW50U2Vzc2lvbihsb2dpblJlZ2lzdGVyVXNlcik7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgICAgJ3RpdGxlJzogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPldhcm5pbmchPC9wPicsXG4gICAgICAgICAgICAgICdodG1sJzogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPlRoZSBkYXRhIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSB1c2VyIHJlZ2lzdGVyZWQgaW4gb3VyIHN5c3RlbSwgcGxlYXNlIHJldmlldyB0aGVtLjwvcD4nLFxuICAgICAgICAgICAgICAnaWNvbic6J3dhcm5pbmcnLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgICAgJ3RpdGxlJzogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPkVycm9yITwvcD4nLFxuICAgICAgICAgICAgICAnaHRtbCc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5UaGUgaW5wdXQgZGF0YSBkb2VzIG5vdCBtZWV0IHRoZSBlc3RhYmxpc2hlZCBwYXJhbWV0ZXJzLjwvcD4nLFxuICAgICAgICAgICAgICAnaWNvbic6J2Vycm9yJyxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgICAndGl0bGUnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+RXJyb3IhPC9wPicsXG4gICAgICAgICAgICAgICdodG1sJzogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPkFuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkPC9wPicsXG4gICAgICAgICAgICAgICdpY29uJzonZXJyb3InLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmVqZWN0KCdVbmhhbmRsZWQgZXhjZXB0aW9uJyk7XG4gICAgICB9KTtcbiAgICB9KVxuICB9XG5cbiAgZ2V0Q3Jvbm9ncmFtQXZhaWxhYmlsaXR5KGlzVGVhY2hlcjogYm9vbGVhbiwgY29kZTogbnVtYmVyLCBzdGFydERhdGU6IHN0cmluZywgbnVtQ2xhc3M6IG51bWJlciwgd2Vla0RheXM6IGFueVtdLCBzdGFydFRpbWU6IHN0cmluZywgZW5kVGltZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+e1xuICAgIGxldCByZXF1ZXN0OiBBdmFpbGFiaWxpdHlRdWVyeVJxID0ge1xuICAgICAgaXNUZWFjaGVyOiBpc1RlYWNoZXIsXG4gICAgICBjb2RlOiBjb2RlLFxuICAgICAgc3RhcnREYXRlOiBzdGFydERhdGUsXG4gICAgICBudW1DbGFzczogbnVtQ2xhc3MsXG4gICAgICB3ZWVrRGF5czogd2Vla0RheXMsXG4gICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZSxcbiAgICAgIGVuZFRpbWU6IGVuZFRpbWUsXG4gICAgfTtcblxuICAgIGxldCBzZXJ2aWNlID0gdGhpcy5jYWxlbmRhclNlcnZpY2U7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBzZXJ2aWNlLnBvc3RDcmVhdGVRdWVyeUV2ZW50KHJlcXVlc3QpLnN1YnNjcmliZSggIChyZXNwb25zZTogUmVzcG9uc2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZXNwb25zZS5tZXNzYWdlLmNvZGUpIHtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmVqZWN0KCdVbmhhbmRsZWQgZXhjZXB0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmVqZWN0KCdVbmhhbmRsZWQgZXhjZXB0aW9uJyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFVzZXJSb2xlKCk6IG51bWJlciB7XG4gICAgbGV0IHVzZXIgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk/LnJvbGU7XG4gICAgcmV0dXJuIHVzZXIgPT09IHVuZGVmaW5lZCA/IC0xIDogdXNlcjtcbiAgfVxuXG4gIGdldFVzZXJUb2tlbigpOiBzdHJpbmcge1xuICAgIGxldCB0b2tlbiA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKT8udG9rZW47XG4gICAgcmV0dXJuIHRva2VuID09PSB1bmRlZmluZWQgPyAnLTEnIDogdG9rZW47XG4gIH1cblxuICBnZXRVc2VyTmFtZSgpOiBzdHJpbmcge1xuICAgIGxldCB1c2VyID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRDdXJyZW50VXNlcigpO1xuICAgIGxldCByZXNwb25zZSA9IHVzZXIgPT09IG51bGwgPyAnJyA6IHVzZXIubmFtZTtcbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICByZWdpc3RlclVzZXJGcm9tRGFzaGJvYXJkKHJlZ2lzdGVyRGFzaGJvYXJkUnE6IFJlZ2lzdGVyRGFzaGJvYXJkUnEpOiBQcm9taXNlPGJvb2xlYW4+e1xuICAgIGxldCByZXF1ZXN0ID0gcmVnaXN0ZXJEYXNoYm9hcmRScTtcbiAgICBsZXQgc2VydmljZSA9IHRoaXMudXNlclNlcnZpY2U7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICBzZXJ2aWNlLnJlZ2lzdGVyRGFzaGJvYXJkKHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcblxuICAgICAgICBzd2l0Y2ggKHJlc3BvbnNlLm1lc3NhZ2UuY29kZSkge1xuICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgIFN3YWwuZmlyZSAoe1xuICAgICAgICAgICAgICAndGl0bGUnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+UGVyZmVjdCE8L3A+JyxcbiAgICAgICAgICAgICAgJ2h0bWwnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+U3VjZXNmdWxsIHJlZ2lzdGVyITwvcD4nLFxuICAgICAgICAgICAgICAnaWNvbic6J3N1Y2Nlc3MnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgU3dhbC5maXJlICh7XG4gICAgICAgICAgICAgICd0aXRsZSc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5FcnJvciE8L3A+JyxcbiAgICAgICAgICAgICAgJ2h0bWwnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+VGhlIGlucHV0IGRhdGEgZG9lcyBub3QgbWVldCB0aGUgZXN0YWJsaXNoZWQgcGFyYW1ldGVycy48L3A+JyxcbiAgICAgICAgICAgICAgJ2ljb24nOidlcnJvcicsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgU3dhbC5maXJlICh7XG4gICAgICAgICAgICAgICd0aXRsZSc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCI+VXBzITwvcD4nLFxuICAgICAgICAgICAgICAnaHRtbCc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCI+VGhlIGlucHV0IGRhdGEgaGFzIGEgaGlnaCByZWxhdGlvbiB3aXRoIGEgdXNlciB0aGF0IGFscmVhZHkgZXhpc3RzITwvcD4nLFxuICAgICAgICAgICAgICAnaWNvbic6ICd3YXJuaW5nJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgU3dhbC5maXJlICh7XG4gICAgICAgICAgICAgICd0aXRsZSc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5FcnJvciE8L3A+JyxcbiAgICAgICAgICAgICAgJ2h0bWwnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+QW4gdW5leHBlY3RlZCBlcnJvciBoYXMgb2NjdXJyZWQ8L3A+JyxcbiAgICAgICAgICAgICAgJ2ljb24nOidlcnJvcicsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZWplY3QoJ1VuaGFuZGxlZCBleGNlcHRpb24nKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAganNvblRvQXJyYXkoZGF0YTogYW55W10pOiBhbnlbXVtdIHtcbiAgICB2YXIgcmVzcG9uc2U6IGFueVtdID0gW107XG4gICAgZGF0YS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICB2YXIgb2JqZWN0OiBhbnlbXSA9IFtdO1xuICAgICAgZm9yICh2YXIgY2xhdmUgaW4gZWxlbWVudCkge1xuICAgICAgICBpZiAoZWxlbWVudC5oYXNPd25Qcm9wZXJ0eShjbGF2ZSkpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnRbY2xhdmVdID09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBlbGVtZW50W2NsYXZlXSA9IHRoaXMuc3ViSnNvblRvQXJyYXkoZWxlbWVudFtjbGF2ZV0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG9iamVjdC5wdXNoKGVsZW1lbnRbY2xhdmVdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVzcG9uc2UucHVzaChvYmplY3QpO1xuICAgIH0pO1xuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIHN1Ykpzb25Ub0FycmF5KGRhdGE6IGFueVtdKTogc3RyaW5nIHtcbiAgICB2YXIgb2JqZWN0OiBzdHJpbmcgPSAnJztcbiAgICBmb3IgKHZhciBjbGF2ZSBpbiBkYXRhKSB7XG4gICAgICBpZiAoY2xhdmUgIT0gJ2NvZGUnKSB7XG4gICAgICAgIG9iamVjdCArPSAnXFxuJyArIGRhdGFbY2xhdmVdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbn1cbiJdfQ==
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import Swal from 'sweetalert2';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../services/user-service/user-service";
|
|
5
|
+
import * as i2 from "../../services/storage-service/storage-service";
|
|
6
|
+
import * as i3 from "../../services/calendar-service/calendar.service";
|
|
7
|
+
export class BaseService {
|
|
8
|
+
constructor(userService, storageService, calendarService) {
|
|
9
|
+
this.userService = userService;
|
|
10
|
+
this.storageService = storageService;
|
|
11
|
+
this.calendarService = calendarService;
|
|
12
|
+
}
|
|
13
|
+
webLogin(user, password) {
|
|
14
|
+
let request = {
|
|
15
|
+
user: user,
|
|
16
|
+
password: password
|
|
17
|
+
};
|
|
18
|
+
let service = this.userService;
|
|
19
|
+
let storage = this.storageService;
|
|
20
|
+
return new Promise(function (resolve, reject) {
|
|
21
|
+
service.login(request).subscribe(response => {
|
|
22
|
+
switch (response.message.code) {
|
|
23
|
+
case 1:
|
|
24
|
+
Swal.fire({
|
|
25
|
+
'title': '<p style="font-family: Poppins"">Perfect!</p>',
|
|
26
|
+
'html': '<p style="font-family: Poppins"">Succesfull login</p>',
|
|
27
|
+
'icon': 'success',
|
|
28
|
+
});
|
|
29
|
+
const loginRegisterUser = {
|
|
30
|
+
token: response.data.token,
|
|
31
|
+
user: response.data,
|
|
32
|
+
};
|
|
33
|
+
storage.setCurrentSession(loginRegisterUser);
|
|
34
|
+
resolve(true);
|
|
35
|
+
break;
|
|
36
|
+
case 2:
|
|
37
|
+
Swal.fire({
|
|
38
|
+
'title': '<p style="font-family: Poppins"">Warning!</p>',
|
|
39
|
+
'html': '<p style="font-family: Poppins"">The data does not correspond to a user registered in our system, please review them.</p>',
|
|
40
|
+
'icon': 'warning',
|
|
41
|
+
});
|
|
42
|
+
resolve(false);
|
|
43
|
+
break;
|
|
44
|
+
case 3:
|
|
45
|
+
Swal.fire({
|
|
46
|
+
'title': '<p style="font-family: Poppins"">Error!</p>',
|
|
47
|
+
'html': '<p style="font-family: Poppins"">The input data does not meet the established parameters.</p>',
|
|
48
|
+
'icon': 'error',
|
|
49
|
+
});
|
|
50
|
+
resolve(false);
|
|
51
|
+
break;
|
|
52
|
+
default:
|
|
53
|
+
Swal.fire({
|
|
54
|
+
'title': '<p style="font-family: Poppins"">Error!</p>',
|
|
55
|
+
'html': '<p style="font-family: Poppins"">An unexpected error has occurred</p>',
|
|
56
|
+
'icon': 'error',
|
|
57
|
+
});
|
|
58
|
+
resolve(false);
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
reject('Unhandled exception');
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
getCronogramAvailability(isTeacher, code, startDate, numClass, weekDays, startTime, endTime) {
|
|
66
|
+
let request = {
|
|
67
|
+
isTeacher: isTeacher,
|
|
68
|
+
code: code,
|
|
69
|
+
startDate: startDate,
|
|
70
|
+
numClass: numClass,
|
|
71
|
+
weekDays: weekDays,
|
|
72
|
+
startTime: startTime,
|
|
73
|
+
endTime: endTime,
|
|
74
|
+
};
|
|
75
|
+
let service = this.calendarService;
|
|
76
|
+
return new Promise(function (resolve, reject) {
|
|
77
|
+
service.postCreateQueryEvent(request).subscribe((response) => {
|
|
78
|
+
switch (response.message.code) {
|
|
79
|
+
case 1:
|
|
80
|
+
resolve(response.data);
|
|
81
|
+
break;
|
|
82
|
+
default:
|
|
83
|
+
reject('Unhandled exception');
|
|
84
|
+
}
|
|
85
|
+
reject('Unhandled exception');
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
getUserRole() {
|
|
90
|
+
let user = this.storageService.getCurrentUser()?.role;
|
|
91
|
+
return user === undefined ? -1 : user;
|
|
92
|
+
}
|
|
93
|
+
getUserToken() {
|
|
94
|
+
let token = this.storageService.getCurrentUser()?.token;
|
|
95
|
+
return token === undefined ? '-1' : token;
|
|
96
|
+
}
|
|
97
|
+
getUserName() {
|
|
98
|
+
let user = this.storageService.getCurrentUser();
|
|
99
|
+
let response = user === null ? '' : user.name;
|
|
100
|
+
return response;
|
|
101
|
+
}
|
|
102
|
+
registerUserFromDashboard(registerDashboardRq) {
|
|
103
|
+
let request = registerDashboardRq;
|
|
104
|
+
let service = this.userService;
|
|
105
|
+
return new Promise(function (resolve, reject) {
|
|
106
|
+
service.registerDashboard(request).subscribe((response) => {
|
|
107
|
+
switch (response.message.code) {
|
|
108
|
+
case 1:
|
|
109
|
+
Swal.fire({
|
|
110
|
+
'title': '<p style="font-family: Poppins"">Perfect!</p>',
|
|
111
|
+
'html': '<p style="font-family: Poppins"">Sucesfull register!</p>',
|
|
112
|
+
'icon': 'success',
|
|
113
|
+
});
|
|
114
|
+
resolve(true);
|
|
115
|
+
break;
|
|
116
|
+
case 3:
|
|
117
|
+
Swal.fire({
|
|
118
|
+
'title': '<p style="font-family: Poppins"">Error!</p>',
|
|
119
|
+
'html': '<p style="font-family: Poppins"">The input data does not meet the established parameters.</p>',
|
|
120
|
+
'icon': 'error',
|
|
121
|
+
});
|
|
122
|
+
resolve(false);
|
|
123
|
+
break;
|
|
124
|
+
case 4:
|
|
125
|
+
Swal.fire({
|
|
126
|
+
'title': '<p style="font-family: Poppins">Ups!</p>',
|
|
127
|
+
'html': '<p style="font-family: Poppins">The input data has a high relation with a user that already exists!</p>',
|
|
128
|
+
'icon': 'warning',
|
|
129
|
+
});
|
|
130
|
+
resolve(false);
|
|
131
|
+
break;
|
|
132
|
+
default:
|
|
133
|
+
Swal.fire({
|
|
134
|
+
'title': '<p style="font-family: Poppins"">Error!</p>',
|
|
135
|
+
'html': '<p style="font-family: Poppins"">An unexpected error has occurred</p>',
|
|
136
|
+
'icon': 'error',
|
|
137
|
+
});
|
|
138
|
+
resolve(false);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
reject('Unhandled exception');
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
jsonToArray(data) {
|
|
146
|
+
var response = [];
|
|
147
|
+
data.forEach((element) => {
|
|
148
|
+
var object = [];
|
|
149
|
+
for (var clave in element) {
|
|
150
|
+
if (element.hasOwnProperty(clave)) {
|
|
151
|
+
if (typeof element[clave] == 'object') {
|
|
152
|
+
element[clave] = this.subJsonToArray(element[clave]);
|
|
153
|
+
}
|
|
154
|
+
object.push(element[clave]);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
response.push(object);
|
|
158
|
+
});
|
|
159
|
+
return response;
|
|
160
|
+
}
|
|
161
|
+
subJsonToArray(data) {
|
|
162
|
+
var object = '';
|
|
163
|
+
for (var clave in data) {
|
|
164
|
+
if (clave != 'code') {
|
|
165
|
+
object += '\n' + data[clave];
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return object;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
BaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BaseService, deps: [{ token: i1.UserService }, { token: i2.StorageService }, { token: i3.CalendarService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
172
|
+
BaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BaseService, providedIn: 'root' });
|
|
173
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BaseService, decorators: [{
|
|
174
|
+
type: Injectable,
|
|
175
|
+
args: [{
|
|
176
|
+
providedIn: 'root',
|
|
177
|
+
}]
|
|
178
|
+
}], ctorParameters: function () { return [{ type: i1.UserService }, { type: i2.StorageService }, { type: i3.CalendarService }]; } });
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQzs7Ozs7QUFVL0IsTUFBTSxPQUFPLFdBQVc7SUFFdEIsWUFDVSxXQUF3QixFQUN4QixjQUE4QixFQUM5QixlQUFnQztRQUZoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQ3ZDLENBQUM7SUFFSixRQUFRLENBQUMsSUFBWSxFQUFFLFFBQWdCO1FBQ3JDLElBQUksT0FBTyxHQUFZO1lBQ3JCLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQTtRQUNELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDL0IsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUVsQyxPQUFPLElBQUksT0FBTyxDQUFDLFVBQVMsT0FBTyxFQUFFLE1BQU07WUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzNDLFFBQVEsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7b0JBQzdCLEtBQUssQ0FBQzt3QkFDSixJQUFJLENBQUMsSUFBSSxDQUFFOzRCQUNULE9BQU8sRUFBRSwrQ0FBK0M7NEJBQ3hELE1BQU0sRUFBRSx1REFBdUQ7NEJBQy9ELE1BQU0sRUFBQyxTQUFTO3lCQUNqQixDQUFDLENBQUM7d0JBRUgsTUFBTSxpQkFBaUIsR0FBWTs0QkFD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SSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QjtTQUNGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7d0dBdkxVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvZ2luUnEsIFJlZ2lzdGVyRGFzaGJvYXJkUnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci91c2VyLXJxLm1vZGVsJztcclxuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91c2VyLXNlcnZpY2UvdXNlci1zZXJ2aWNlJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBTZXNzaW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlc3Npb24vc2Vzc2lvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmFnZS1zZXJ2aWNlL3N0b3JhZ2Utc2VydmljZSc7XHJcbmltcG9ydCB7IEF2YWlsYWJpbGl0eVF1ZXJ5UnEgfSBmcm9tICcuLi8uLi9tb2RlbHMvY3Jvbm9ncmFtL2Nyb25vZ3JhbS5tb2RlbHMnO1xyXG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYWxlbmRhci1zZXJ2aWNlL2NhbGVuZGFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy9yZXNwb25zZS9yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgd2ViTG9naW4odXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPntcclxuICAgIGxldCByZXF1ZXN0OiBMb2dpblJxID0ge1xyXG4gICAgICB1c2VyOiB1c2VyLFxyXG4gICAgICBwYXNzd29yZDogcGFzc3dvcmRcclxuICAgIH1cclxuICAgIGxldCBzZXJ2aWNlID0gdGhpcy51c2VyU2VydmljZTtcclxuICAgIGxldCBzdG9yYWdlID0gdGhpcy5zdG9yYWdlU2VydmljZTtcclxuXHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgIHNlcnZpY2UubG9naW4ocmVxdWVzdCkuc3Vic2NyaWJlKCByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChyZXNwb25zZS5tZXNzYWdlLmNvZGUpIHtcclxuICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgU3dhbC5maXJlICh7XHJcbiAgICAgICAgICAgICAgJ3RpdGxlJzogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPlBlcmZlY3QhPC9wPicsXHJcbiAgICAgICAgICAgICAgJ2h0bWwnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+U3VjY2VzZnVsbCBsb2dpbjwvcD4nLFxyXG4gICAgICAgICAgICAgICdpY29uJzonc3VjY2VzcycsXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgbG9naW5SZWdpc3RlclVzZXI6IFNlc3Npb24gPSB7XHJcbiAgICAgICAgICAgICAgdG9rZW46IHJlc3BvbnNlLmRhdGEudG9rZW4sXHJcbiAgICAgICAgICAgICAgdXNlcjogcmVzcG9uc2UuZGF0YSxcclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHN0b3JhZ2Uuc2V0Q3VycmVudFNlc3Npb24obG9naW5SZWdpc3RlclVzZXIpO1xyXG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgMjpcclxuICAgICAgICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICAgICAgICAndGl0bGUnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+V2FybmluZyE8L3A+JyxcclxuICAgICAgICAgICAgICAnaHRtbCc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5UaGUgZGF0YSBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgdXNlciByZWdpc3RlcmVkIGluIG91ciBzeXN0ZW0sIHBsZWFzZSByZXZpZXcgdGhlbS48L3A+JyxcclxuICAgICAgICAgICAgICAnaWNvbic6J3dhcm5pbmcnLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgMzpcclxuICAgICAgICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICAgICAgICAndGl0bGUnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+RXJyb3IhPC9wPicsXHJcbiAgICAgICAgICAgICAgJ2h0bWwnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+VGhlIGlucHV0IGRhdGEgZG9lcyBub3QgbWVldCB0aGUgZXN0YWJsaXNoZWQgcGFyYW1ldGVycy48L3A+JyxcclxuICAgICAgICAgICAgICAnaWNvbic6J2Vycm9yJyxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgICAgICd0aXRsZSc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5FcnJvciE8L3A+JyxcclxuICAgICAgICAgICAgICAnaHRtbCc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5BbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZDwvcD4nLFxyXG4gICAgICAgICAgICAgICdpY29uJzonZXJyb3InLFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVqZWN0KCdVbmhhbmRsZWQgZXhjZXB0aW9uJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldENyb25vZ3JhbUF2YWlsYWJpbGl0eShpc1RlYWNoZXI6IGJvb2xlYW4sIGNvZGU6IG51bWJlciwgc3RhcnREYXRlOiBzdHJpbmcsIG51bUNsYXNzOiBudW1iZXIsIHdlZWtEYXlzOiBhbnlbXSwgc3RhcnRUaW1lOiBzdHJpbmcsIGVuZFRpbWU6IHN0cmluZyk6IFByb21pc2U8YW55PntcclxuICAgIGxldCByZXF1ZXN0OiBBdmFpbGFiaWxpdHlRdWVyeVJxID0ge1xyXG4gICAgICBpc1RlYWNoZXI6IGlzVGVhY2hlcixcclxuICAgICAgY29kZTogY29kZSxcclxuICAgICAgc3RhcnREYXRlOiBzdGFydERhdGUsXHJcbiAgICAgIG51bUNsYXNzOiBudW1DbGFzcyxcclxuICAgICAgd2Vla0RheXM6IHdlZWtEYXlzLFxyXG4gICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZSxcclxuICAgICAgZW5kVGltZTogZW5kVGltZSxcclxuICAgIH07XHJcblxyXG4gICAgbGV0IHNlcnZpY2UgPSB0aGlzLmNhbGVuZGFyU2VydmljZTtcclxuXHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgIHNlcnZpY2UucG9zdENyZWF0ZVF1ZXJ5RXZlbnQocmVxdWVzdCkuc3Vic2NyaWJlKCAgKHJlc3BvbnNlOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAocmVzcG9uc2UubWVzc2FnZS5jb2RlKSB7XHJcbiAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICByZWplY3QoJ1VuaGFuZGxlZCBleGNlcHRpb24nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVqZWN0KCdVbmhhbmRsZWQgZXhjZXB0aW9uJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyUm9sZSgpOiBudW1iZXIge1xyXG4gICAgbGV0IHVzZXIgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk/LnJvbGU7XHJcbiAgICByZXR1cm4gdXNlciA9PT0gdW5kZWZpbmVkID8gLTEgOiB1c2VyO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlclRva2VuKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdG9rZW4gPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk/LnRva2VuO1xyXG4gICAgcmV0dXJuIHRva2VuID09PSB1bmRlZmluZWQgPyAnLTEnIDogdG9rZW47XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHVzZXIgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk7XHJcbiAgICBsZXQgcmVzcG9uc2UgPSB1c2VyID09PSBudWxsID8gJycgOiB1c2VyLm5hbWU7XHJcbiAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlclVzZXJGcm9tRGFzaGJvYXJkKHJlZ2lzdGVyRGFzaGJvYXJkUnE6IFJlZ2lzdGVyRGFzaGJvYXJkUnEpOiBQcm9taXNlPGJvb2xlYW4+e1xyXG4gICAgbGV0IHJlcXVlc3QgPSByZWdpc3RlckRhc2hib2FyZFJxO1xyXG4gICAgbGV0IHNlcnZpY2UgPSB0aGlzLnVzZXJTZXJ2aWNlO1xyXG5cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgc2VydmljZS5yZWdpc3RlckRhc2hib2FyZChyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XHJcblxyXG4gICAgICAgIHN3aXRjaCAocmVzcG9uc2UubWVzc2FnZS5jb2RlKSB7XHJcbiAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgIFN3YWwuZmlyZSAoe1xyXG4gICAgICAgICAgICAgICd0aXRsZSc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5QZXJmZWN0ITwvcD4nLFxyXG4gICAgICAgICAgICAgICdodG1sJzogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPlN1Y2VzZnVsbCByZWdpc3RlciE8L3A+JyxcclxuICAgICAgICAgICAgICAnaWNvbic6J3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgIFN3YWwuZmlyZSAoe1xyXG4gICAgICAgICAgICAgICd0aXRsZSc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5FcnJvciE8L3A+JyxcclxuICAgICAgICAgICAgICAnaHRtbCc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5UaGUgaW5wdXQgZGF0YSBkb2VzIG5vdCBtZWV0IHRoZSBlc3RhYmxpc2hlZCBwYXJhbWV0ZXJzLjwvcD4nLFxyXG4gICAgICAgICAgICAgICdpY29uJzonZXJyb3InLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSA0OlxyXG4gICAgICAgICAgICBTd2FsLmZpcmUgKHtcclxuICAgICAgICAgICAgICAndGl0bGUnOiAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiPlVwcyE8L3A+JyxcclxuICAgICAgICAgICAgICAnaHRtbCc6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCI+VGhlIGlucHV0IGRhdGEgaGFzIGEgaGlnaCByZWxhdGlvbiB3aXRoIGEgdXNlciB0aGF0IGFscmVhZHkgZXhpc3RzITwvcD4nLFxyXG4gICAgICAgICAgICAgICdpY29uJzogJ3dhcm5pbmcnLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgU3dhbC5maXJlICh7XHJcbiAgICAgICAgICAgICAgJ3RpdGxlJzogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPkVycm9yITwvcD4nLFxyXG4gICAgICAgICAgICAgICdodG1sJzogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPkFuIHVuZXhwZWN0ZWQgZXJyb3IgaGFzIG9jY3VycmVkPC9wPicsXHJcbiAgICAgICAgICAgICAgJ2ljb24nOidlcnJvcicsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZWplY3QoJ1VuaGFuZGxlZCBleGNlcHRpb24nKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGpzb25Ub0FycmF5KGRhdGE6IGFueVtdKTogYW55W11bXSB7XHJcbiAgICB2YXIgcmVzcG9uc2U6IGFueVtdID0gW107XHJcbiAgICBkYXRhLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgdmFyIG9iamVjdDogYW55W10gPSBbXTtcclxuICAgICAgZm9yICh2YXIgY2xhdmUgaW4gZWxlbWVudCkge1xyXG4gICAgICAgIGlmIChlbGVtZW50Lmhhc093blByb3BlcnR5KGNsYXZlKSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBlbGVtZW50W2NsYXZlXSA9PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICBlbGVtZW50W2NsYXZlXSA9IHRoaXMuc3ViSnNvblRvQXJyYXkoZWxlbWVudFtjbGF2ZV0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIG9iamVjdC5wdXNoKGVsZW1lbnRbY2xhdmVdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmVzcG9uc2UucHVzaChvYmplY3QpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBzdWJKc29uVG9BcnJheShkYXRhOiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICB2YXIgb2JqZWN0OiBzdHJpbmcgPSAnJztcclxuICAgIGZvciAodmFyIGNsYXZlIGluIGRhdGEpIHtcclxuICAgICAgaWYgKGNsYXZlICE9ICdjb2RlJykge1xyXG4gICAgICAgIG9iamVjdCArPSAnXFxuJyArIGRhdGFbY2xhdmVdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JqZWN0O1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|