helper-data-service.ts 33.5 KB
Newer Older
1
import {Http, Headers, RequestOptions} from '@angular/http';
2
3
import {Injectable, OnInit, OnDestroy} from '@angular/core';
import {BehaviorSubject} from "rxjs/Rx";
4
5
import 'rxjs/add/operator/map';
import { ICourseField } from '../store/coursefields/coursefields.types';
6
import { ISectorField } from '../store/sectorfields/sectorfields.types';
7
import { IRegion, IRegions, IRegionSchool } from '../store/regionschools/regionschools.types';
8
import { ISector, ISectors, ISectorCourse } from '../store/sectorcourses/sectorcourses.types';
Open Source Developer's avatar
Open Source Developer committed
9
//import { IClassField } from '../store/classfields/classfields.types';
10
import { AppSettings } from '../app.settings';
11
12
import { NgRedux, select } from 'ng2-redux';
import { IAppState } from '../store/store';
13
import { ILoginInfo, ILoginInfoToken } from '../store/logininfo/logininfo.types';
14
import { LOGININFO_INITIAL_STATE } from '../store/logininfo/logininfo.initial-state';
15
import { SCHOOL_ROLE, STUDENT_ROLE, PDE_ROLE, DIDE_ROLE, MINISTRY_ROLE } from '../constants';
16
17
import { CookieService } from 'ngx-cookie';

18
19
20
21

const HEADER = { headers: new Headers({ 'Content-Type': 'application/json' }) };

@Injectable()
22
export class HelperDataService implements OnInit, OnDestroy {
23
24

    private authToken: string;
25
    private authRole: string;
26
27
    private minedu_userName: string;
    private minedu_userPassword: string;
28
    private loginInfo$: BehaviorSubject<ILoginInfo>;
29
30
31

    constructor(
        private http: Http,
32
33
        private _ngRedux: NgRedux<IAppState>,
        private _cookieService:CookieService) {
34
        this.loginInfo$ = new BehaviorSubject(LOGININFO_INITIAL_STATE);
35

36

37
    };
38

39
40
41
42
43
44
45
46
47
48
49
    ngOnInit() {
        this._ngRedux.select(state => {
            if (state.loginInfo.size > 0) {
                state.loginInfo.reduce(({}, loginInfoToken) => {
                    this.authToken = loginInfoToken.auth_token;
                    this.authRole = loginInfoToken.auth_role;
                    return loginInfoToken;
                }, {});
            }
            return state.loginInfo;
        }).subscribe(this.loginInfo$);
50

51
52
53
54
55
    }

    ngOnDestroy() {
        this.loginInfo$.unsubscribe();
    }
56

57
    createAuthorizationHeader(headers: Headers) {
58
        headers.append('Authorization', 'Basic ' + btoa(this.authToken + ':' + this.authToken));
59
60
    }

61
62
63
64
    createMinistryAuthorizationHeader(headers: Headers, username: string, passwd: string) {
        headers.append('Authorization', 'Basic ' + btoa(username + ':' + passwd));
    }

65
    getEpalUserData() {
66
        this.loginInfo$.getValue().forEach(loginInfoToken => {
67
68
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
69
70
71
72
73
74
75
76
77
78
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/userdata`, options)
            .map(response => response.json());
    };

79
    sendVerificationCode(email) {
80
        this.loginInfo$.getValue().forEach(loginInfoToken => {
81
82
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
83
84
        });
        let headers = new Headers({
85
86
87
            "Content-Type": "application/json",
            //            "Accept": "*/*",
            //            "Access-Control-Allow-Credentials": "true",
88
89
        });
        this.createAuthorizationHeader(headers);
90
        //        let options = new RequestOptions({ headers: headers, withCredentials: true });
91
92
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
93
94
95
96
97
98
99
100
101
102
            this.http.post(`${AppSettings.API_ENDPOINT}/epal/user/sendvercode`, { userEmail: email }, options)
                .map(response => response.json())
                .subscribe(data => {
                    resolve(data);
                }, // put the data returned from the server in our variable
                error => {
                    console.log("Error Sending Verification Code"); // in case of failure show this message
                    reject("Error Sending Verification Code");
                },
                () => console.log("Sending Verification Code"));//run this code in all cases); */
103
104
105
106
        });
    }

    verifyVerificationCode(verificationCode) {
107
        this.loginInfo$.getValue().forEach(loginInfoToken => {
108
109
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
110
111
        });
        let headers = new Headers({
112
            "Content-Type": "application/json",
113
114
        });
        this.createAuthorizationHeader(headers);
115
        //        let options = new RequestOptions({ headers: headers, withCredentials: true });
116
117
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
118
119
120
121
122
123
124
125
126
127
            this.http.post(`${AppSettings.API_ENDPOINT}/epal/user/verifyvercode`, { verificationCode: verificationCode }, options)
                .map(response => response.json())
                .subscribe(data => {
                    resolve(<any>data);
                }, // put the data returned from the server in our variable
                error => {
                    console.log("Error Verifying Verification Code"); // in case of failure show this message
                    reject("Error Verifying Verification Code");
                },
                () => console.log("Verifying Verification Code"));//run this code in all cases); */
128
129
130
        });
    }

131
    saveProfile(userProfile) {
132
        this.loginInfo$.getValue().forEach(loginInfoToken => {
133
134
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
135
136
        });
        let headers = new Headers({
137
            "Content-Type": "application/json",
138
139
140
141
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
142
143
144
145
146
147
148
149
150
151
            this.http.post(`${AppSettings.API_ENDPOINT}/epal/user/save`, { userProfile: userProfile }, options)
                .map(response => response.json())
                .subscribe(data => {
                    resolve(data);
                },
                error => {
                    console.log("Error Saving Profile");
                    reject("Error Saving Profile");
                },
                () => console.log("Saving Profile"));
152
153
154
        });
    }

155
    getCourseFields() {
156

157
        this.loginInfo$.getValue().forEach(loginInfoToken => {
158
159
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
160
        });
161
162
163
        let headers = new Headers({
            "Content-Type": "application/json",
        });
164
        this.createAuthorizationHeader(headers);
165
        let options = new RequestOptions({ headers: headers });
166
        return new Promise((resolve, reject) => {
167
            this.http.get(`${AppSettings.API_ENDPOINT}/coursefields/list`, options)
168
169
170
171
172
173
174
175
176
                .map(response => <ICourseField[]>response.json())
                .subscribe(data => {
                    resolve(data);
                }, // put the data returned from the server in our variable
                error => {
                    console.log("Error HTTP GET Service"); // in case of failure show this message
                    reject("Error HTTP GET Service");
                },
                () => console.log("Course Fields Received"));//run this code in all cases); */
177
178
        });
    };
179

180
    getSectorFields() {
181
        this.loginInfo$.getValue().forEach(loginInfoToken => {
182
183
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
184
185
186
187
188
189
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
190
        return new Promise((resolve, reject) => {
191
            this.http.get(`${AppSettings.API_ENDPOINT}/sectorfields/list`, options)
192
193
194
195
196
197
198
199
200
                .map(response => <ISectorField[]>response.json())
                .subscribe(data => {
                    resolve(data);
                }, // put the data returned from the server in our variable
                error => {
                    console.log("Error HTTP GET Service"); // in case of failure show this message
                    reject("Error HTTP GET Service");
                },
                () => console.log("Sector Fields Received"));//run this code in all cases); */
201
202
203
        });
    };

204
    getRegionsWithSchools(classActive, courseActive) {
205
        this.loginInfo$.getValue().forEach(loginInfoToken => {
206
207
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
208
        });
209
210
211
        let headers = new Headers({
            "Content-Type": "application/json",
        });
212
        this.createAuthorizationHeader(headers);
213
        let options = new RequestOptions({ headers: headers });
214
        return new Promise((resolve, reject) => {
215
            let getConnectionString = null;
216

217
218
219
220
221
222
            console.log("Class:");
            console.log(classActive);

            console.log("Course:");
            console.log(courseActive);

223
            if (classActive === 1)
224
225
226
                getConnectionString = `${AppSettings.API_ENDPOINT}/regions/list`;
            else if (classActive === 2)
                getConnectionString = `${AppSettings.API_ENDPOINT}/sectorsperschool/list?sector_id=${courseActive}`;
227
            else if (classActive === 3)
228
                getConnectionString = `${AppSettings.API_ENDPOINT}/coursesperschool/list?course_id=${courseActive}`;
229
230
231
232
233
            else if (classActive === 4)
                getConnectionString = `${AppSettings.API_ENDPOINT}/coursesperschool_night/list?course_id=${courseActive}`;

            console.log("Path:");
            console.log(getConnectionString);
234

235
            this.http.get(getConnectionString, options)
236
237
238
239
240
                .map(response => response.json())
                .subscribe(data => {
                    resolve(this.transformRegionSchoolsSchema(data));
                }, // put the data returned from the server in our variable
                error => {
241
                    console.log("Error HTTP GET Service in getRegionsWithSchools method"); // in case of failure show this message
242
243
244
                    reject("Error HTTP GET Service");
                },
                () => console.log("region schools service"));//run this code in all cases); */
245
246
247
        });
    };

248
    getSectorsWithCourses() {
249
        this.loginInfo$.getValue().forEach(loginInfoToken => {
250
251
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
252
253
254
255
256
257
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
258
        return new Promise((resolve, reject) => {
259
            this.http.get(`${AppSettings.API_ENDPOINT}/coursesectorfields/list`, options)
260
261
262
263
264
265
266
267
268
                .map(response => response.json())
                .subscribe(data => {
                    resolve(this.transformSectorCoursesSchema(data));
                }, // put the data returned from the server in our variable
                error => {
                    console.log("Error HTTP GET Service"); // in case of failure show this message
                    reject("Error HTTP GET Service");
                },
                () => console.log("region schools service"));//run this code in all cases); */
269
270
271
        });
    };

272
273
274
275
276
277
278
279
    transformRegionSchoolsSchema(regionSchools: any) {
        let rsa = Array<IRegion>();
        let trackRegionId: string;
        let trackIndex: number;

        trackRegionId = "";
        trackIndex = -1;

280
        let j = 0;
281
282
283
        regionSchools.forEach(regionSchool => {
            if (trackRegionId !== regionSchool.region_id) {
                trackIndex++;
284
                rsa.push(<IRegion>{ 'region_id': regionSchool.region_id, 'region_name': regionSchool.region_name, 'epals': Array<IRegionSchool>() });
285
286
                trackRegionId = regionSchool.region_id;
            }
287
            rsa[trackIndex].epals.push(<IRegionSchool>{ 'epal_id': regionSchool.epal_id, 'epal_name': regionSchool.epal_name, 'epal_special_case': regionSchool.epal_special_case, 'globalIndex': j, 'selected': false, 'order_id': 0 });
288
289
290
291
292
            j++;
        });
        return rsa;
    }

293
294
295
296
297
298
299
300
    transformSectorCoursesSchema(sectorCourses: any) {
        let rsa = Array<ISector>();
        let trackSectorId: string;
        let trackIndex: number;

        trackSectorId = "";
        trackIndex = -1;

301
        let j = 0;
302
303
304
        sectorCourses.forEach(sectorCourse => {
            if (trackSectorId !== sectorCourse.sector_id) {
                trackIndex++;
305
                rsa.push(<ISector>{ 'sector_id': sectorCourse.sector_id, 'sector_name': sectorCourse.sector_name, 'sector_selected': false, 'courses': Array<ISectorCourse>() });
306
307
                trackSectorId = sectorCourse.sector_id;
            }
308
            rsa[trackIndex].courses.push(<ISectorCourse>{ 'course_id': sectorCourse.course_id, 'course_name': sectorCourse.course_name, 'globalIndex': j, 'selected': false });
309
310
311
312
313
            j++;
        });
        return rsa;
    }

314
    getCriteria() {
315

316
        this.loginInfo$.getValue().forEach(loginInfoToken => {
317
318
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
319
320
321
322
323
324
325
326
327
        });
        let headers = new Headers({
            "Content-Type": "application/json",
            "X-CSRF-Token": "LU92FaWYfImfZxfldkF5eVnssdHoV7Aa9fg8K1bWYUc",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
            this.http.get(`${AppSettings.API_ENDPOINT}/criteria/list`, options)
328
329
330
331
332
333
334
335
336
337
                //this.http.get(`${AppSettings.API_ENDPOINT}/criteria/list?category=${category}`, options)
                .map(response => <ISectorField[]>response.json())
                .subscribe(data => {
                    resolve(data);
                }, // put the data returned from the server in our variable
                error => {
                    console.log("Error HTTP GET Service"); // in case of failure show this message
                    reject("Error HTTP GET Service");
                },
                () => console.log("Sector Fields Received"));//run this code in all cases); */
338
339
        });
    };
Open Source Developer's avatar
Open Source Developer committed
340

341
    getCurrentUser(oauthtoken, oauthrole) {
Open Source Developer's avatar
Open Source Developer committed
342
343

        this.authToken = oauthtoken;
344
        this.authRole = oauthrole;
345

Open Source Developer's avatar
Open Source Developer committed
346
347
        let headers = new Headers({
            "Content-Type": "application/json",
348
            "Access-Control-Allow-Credentials": "true",
Open Source Developer's avatar
Open Source Developer committed
349
350
351
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
352
        return new Promise((resolve, reject) => {
Open Source Developer's avatar
Open Source Developer committed
353
            this.http.get(`${AppSettings.API_ENDPOINT}/epal/curuser`, options)
354
355
356
357
358
359
360
361
362
                .map(response => response.json())
                .subscribe(data => {
                    resolve(this.transformUserSchema(data, oauthtoken, oauthrole));
                }, // put the data returned from the server in our variable
                error => {
                    console.log("Error HTTP GET Service"); // in case of failure show this message
                    reject("Error HTTP GET Service");
                },
                () => console.log("UserName Received"));
Open Source Developer's avatar
Open Source Developer committed
363
        });
364
    }
Open Source Developer's avatar
Open Source Developer committed
365

366
367
368
369
370
371
    setMineduCurrentUser(minedu_username, minedu_pwd, role) {
        this.minedu_userName = minedu_username;
        this.minedu_userPassword = minedu_pwd;
        this.authRole = role;
      }

Open Source Developer's avatar
Open Source Developer committed
372

373
    transformUserSchema(userlogin: any, oauthtoken: string, oauthrole: string) {
374
        let rsa = Array<ILoginInfoToken>();
375

376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
        rsa.push(<ILoginInfoToken>{
            'auth_token': oauthtoken,
            'auth_role': oauthrole,
            'cu_name': userlogin.cu_name,
            'cu_surname': userlogin.cu_surname,
            'cu_fathername': userlogin.cu_fathername,
            'cu_mothername': userlogin.cu_mothername,
            'cu_email': userlogin.cu_email,
            'minedu_username': userlogin.minedu_username,
            'minedu_userpassword': userlogin.minedu_userpassword,
            'lock_capacity': parseInt(userlogin.lock_capacity),
            'lock_students': parseInt(userlogin.lock_students),
            'lock_application': parseInt(userlogin.lock_application),
            'disclaimer_checked': parseInt(userlogin.disclaimer_checked)
        });
391
        return rsa;
392

393
    }
Open Source Developer's avatar
Open Source Developer committed
394

395
    signOut() {
396
        //loginInfo$ take values only in case getCurrentUser (epal module) has been used ...WHY? TO BE CHECKED..
397
        this.loginInfo$.getValue().forEach(loginInfoToken => {
398
399
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
400
        });
401

402
        let headers = new Headers({
403
            "Content-Type": "application/json",
404

405
        });
406

407
        if (this.authRole === MINISTRY_ROLE)
408
409
410
          this.createMinistryAuthorizationHeader(headers, this.minedu_userName, this.minedu_userPassword);
        else
          this.createAuthorizationHeader(headers);
411
        let options = new RequestOptions({ headers: headers, withCredentials: true });
412
        let logoutRoute = '/oauth/logout';
413
        if (this.authRole === SCHOOL_ROLE || this.authRole === PDE_ROLE || this.authRole === DIDE_ROLE) {
414
          logoutRoute = '/cas/logout';
415
        }
416
        else if (this.authRole === MINISTRY_ROLE)
417
          logoutRoute = '/ministry/logout';
418

419
        return new Promise((resolve, reject) => {
420
            this.http.post(`${AppSettings.API_ENDPOINT}${logoutRoute}${AppSettings.API_ENDPOINT_PARAMS}`, {}, options)
421
422
                .map(response => response)
                .subscribe(data => {
423
                    this._cookieService.removeAll();
424
425
426
427
428
429
430
                    resolve(data);
                }, // put the data returned from the server in our variable
                error => {
                    console.log("Error Logout"); // in case of failure show this message
                    reject("Error Logout");
                },
                () => console.log("Logging out"));//run this code in all cases); */
431
432
        });
    }
Open Source Developer's avatar
Open Source Developer committed
433

Open Source Developer's avatar
tranfer    
Open Source Developer committed
434
    getSubmittedPreviw() {
Open Source Developer's avatar
Open Source Developer committed
435

436
        this.loginInfo$.getValue().forEach(loginInfoToken => {
437
438
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
Open Source Developer's avatar
Open Source Developer committed
439
440
441
442
443
444
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
445
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/subapplic`, options)
Open Source Developer's avatar
Open Source Developer committed
446
            .map(response => response.json());
Open Source Developer's avatar
Open Source Developer committed
447
    }
Open Source Developer's avatar
Open Source Developer committed
448

Open Source Developer's avatar
tranfer    
Open Source Developer committed
449

450
451
452
    getStudentDetails(headerid) {
        let headerIdNew = headerid.toString();
        this.loginInfo$.getValue().forEach(loginInfoToken => {
453
454
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
455
        });
Open Source Developer's avatar
Open Source Developer committed
456
457
458
459
460
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
461
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/student/` + headerIdNew, options)
Open Source Developer's avatar
Open Source Developer committed
462
            .map(response => response.json());
463
    }
Open Source Developer's avatar
Open Source Developer committed
464
465


466
467
468
    getEpalchosen(headerid) {
        let headerIdNew = headerid.toString();
        this.loginInfo$.getValue().forEach(loginInfoToken => {
469
470
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
471
        });
Open Source Developer's avatar
Open Source Developer committed
472
473
474
475
476
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
477
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/epalchosen/` + headerIdNew, options)
Open Source Developer's avatar
Open Source Developer committed
478
            .map(response => response.json());
479
    }
Open Source Developer's avatar
tranfer    
Open Source Developer committed
480
481


Open Source Developer's avatar
Open Source Developer committed
482
    getSectorPerSchool() {
483

484
        this.loginInfo$.getValue().forEach(loginInfoToken => {
485
486
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
487
        });
Open Source Developer's avatar
transf    
Open Source Developer committed
488
489
490
491
492
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
Open Source Developer's avatar
Open Source Developer committed
493
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/sectorperSchool/` , options)
Open Source Developer's avatar
transf    
Open Source Developer committed
494
            .map(response => response.json());
495
    }
Open Source Developer's avatar
transf    
Open Source Developer committed
496

Open Source Developer's avatar
Open Source Developer committed
497
498

    getSpecialityPerSchool( SectorId) {
499

500
501
        let SectorIdNew = SectorId.toString();
        this.loginInfo$.getValue().forEach(loginInfoToken => {
502
503
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
504
        });
Open Source Developer's avatar
trans    
Open Source Developer committed
505
506
507
508
509
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
Open Source Developer's avatar
Open Source Developer committed
510
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/specialityperSchool/` + SectorIdNew, options)
Open Source Developer's avatar
trans    
Open Source Developer committed
511
            .map(response => response.json());
512
    }
Open Source Developer's avatar
trans    
Open Source Developer committed
513
514
515



Open Source Developer's avatar
Open Source Developer committed
516
    getStudentPerSchool( SelectId, classId, limitdown, limitup) {
517

518
        let SelectIdNew = SelectId.toString();
519
520


521
        this.loginInfo$.getValue().forEach(loginInfoToken => {
522
523
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
524
        });
525

Open Source Developer's avatar
trans    
Open Source Developer committed
526
527
528
529
530
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
Open Source Developer's avatar
Open Source Developer committed
531
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/studentperSchool/` + SelectIdNew + '/' + classId + '/' + limitdown + '/' + limitup, options)
Open Source Developer's avatar
trans    
Open Source Developer committed
532
            .map(response => response.json());
533
    }
Open Source Developer's avatar
trans    
Open Source Developer committed
534

Open Source Developer's avatar
transf    
Open Source Developer committed
535
536


Open Source Developer's avatar
trans    
Open Source Developer committed
537
    saveConfirmStudents(students, type) {
538
        this.loginInfo$.getValue().forEach(loginInfoToken => {
539
540
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
Open Source Developer's avatar
trans    
Open Source Developer committed
541
542
        });
        let headers = new Headers({
543
            "Content-Type": "application/json",
Open Source Developer's avatar
trans    
Open Source Developer committed
544
545
546
547
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
Open Source Developer's avatar
trans    
Open Source Developer committed
548
            this.http.post(`${AppSettings.API_ENDPOINT}/epal/confirmstudent`, { students, type}, options)
549
550
551
552
553
554
555
556
557
                .map(response => response.json())
                .subscribe(data => {
                    resolve(data);
                },
                error => {
                    console.log("Error Saving Profile");
                    reject("Error Saving Profile");
                },
                () => console.log("Saving Profile"));
Open Source Developer's avatar
trans    
Open Source Developer committed
558
559
        });

560
    }
Open Source Developer's avatar
trans    
Open Source Developer committed
561
562


Open Source Developer's avatar
Open Source Developer committed
563

Open Source Developer's avatar
Open Source Developer committed
564
    saveCapacity(taxi, tomeas, specialit, capacity) {
Open Source Developer's avatar
Open Source Developer committed
565

566
        this.loginInfo$.getValue().forEach(loginInfoToken => {
567
568
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
Open Source Developer's avatar
Open Source Developer committed
569
570
        });
        let headers = new Headers({
571
            "Content-Type": "application/json",
Open Source Developer's avatar
Open Source Developer committed
572
573
574
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
Open Source Developer's avatar
Open Source Developer committed
575
        return this.http.post(`${AppSettings.API_ENDPOINT}/epal/savecapacity/` + taxi + '/' + tomeas + '/' + specialit, { capacity }, options)
Open Source Developer's avatar
trans    
Open Source Developer committed
576
            .map(response => response.json());
Open Source Developer's avatar
Open Source Developer committed
577

578
    }
Open Source Developer's avatar
Open Source Developer committed
579

580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
    sendMinisrtyCredentials(username, userpassword) {

        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createMinistryAuthorizationHeader(headers, username, userpassword);
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
            this.http.post(`${AppSettings.API_ENDPOINT}/ministry/login`,  {username: username, userpassword: userpassword}, options)
                .map(response => response.json())
                .subscribe(data => {
                    resolve(data);
                },
                error => {
                    reject("Error Sending Ministry Credentials");
                },
                () => console.log(""));
        });

    }

601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
    makeDistribution(username, userpassword) {

        let headers = new Headers({
            "Content-Type": "application/json",
        });

        this.createMinistryAuthorizationHeader(headers, username, userpassword );
        let options = new RequestOptions({ headers: headers });

        return new Promise((resolve, reject) => {
            this.http.post(`${AppSettings.API_ENDPOINT}/epal/distribution`, {username: username, userpassword: userpassword}, options)
                .map(response => response.json())
                .subscribe(data => {
                    resolve(data);
                },
                error => {
                    reject("Error POST in makeDistribution");
                },
                () => console.log(""));
        });

    }

624

625
    makeReport(username, userpassword, routepath, regionsel, adminsel, schsel, clsel, secsel, coursel) {
626
627
628
629
630
631
632
633

        let headers = new Headers({
            "Content-Type": "application/json",
        });

        this.createMinistryAuthorizationHeader(headers, username, userpassword );
        let options = new RequestOptions({ headers: headers });

634
635
636
637
638
639
640
641
642
643
644
645
646
        if (routepath == "/ministry/general-report/") {
            return this.http.get(`${AppSettings.API_ENDPOINT}` + routepath  , options)
                .map(response => response.json());
        }
        else if (routepath == "/ministry/report-completeness/") {
          return this.http.get(`${AppSettings.API_ENDPOINT}` + routepath + regionsel + "/" + adminsel + "/"  + schsel  , options)
                .map(response => response.json());
        }
        else if (routepath == "/ministry/report-all-stat/"){
            return this.http.get(`${AppSettings.API_ENDPOINT}` + routepath + regionsel + "/" + adminsel + "/"  + schsel + "/"  +
                                  clsel + "/"  + secsel + "/"  + coursel , options)
                .map(response => response.json());
          }
647
648
649
650
651
652
653
          else if (routepath == "/ministry/report-no-capacity/"){
              let capacityFilter = 0;
              if (regionsel)
                capacityFilter = 1;
              return this.http.get(`${AppSettings.API_ENDPOINT}` + routepath + capacityFilter, options)
                  .map(response => response.json());
            }
654
655
656

    }

657
658
659
660
661
662
663
664
665
666
667
    informUnlocatedStudents(username, userpassword) {

      let headers = new Headers({
          "Content-Type": "application/json",
      });
      this.createMinistryAuthorizationHeader(headers, username, userpassword );
      let options = new RequestOptions({ headers: headers });
      return this.http.get(`${AppSettings.API_ENDPOINT}/ministry/send-massive-mail` , options)
          .map(response => response.json());
    }

Open Source Developer's avatar
Open Source Developer committed
668

Open Source Developer's avatar
Open Source Developer committed
669
    getSchoolPerPerfecture() {
Open Source Developer's avatar
trans    
Open Source Developer committed
670
671
672
673
674
675
676
677
678
679

        this.loginInfo$.getValue().forEach(loginInfoToken => {
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
Open Source Developer's avatar
Open Source Developer committed
680
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/ScoolperPerf/` , options)
Open Source Developer's avatar
trans    
Open Source Developer committed
681
682
683
            .map(response => response.json());
    }

Open Source Developer's avatar
trans    
Open Source Developer committed
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
    getCoursePerPerfecture(PerfectureId){
        let PerfectureIdNew = PerfectureId.toString();


        this.loginInfo$.getValue().forEach(loginInfoToken => {
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
        });

        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/CoursesperSch/` + PerfectureIdNew , options)
            .map(response => response.json());
}

702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
getRegions(username, userpassword)  {

  let headers = new Headers({
      "Content-Type": "application/json",
  });

  this.createMinistryAuthorizationHeader(headers, username, userpassword );
  let options = new RequestOptions({ headers: headers });

  //return this.http.get(`${AppSettings.API_ENDPOINT}` + routepath , options)
  //    .map(response => response.json());
  return this.http.get(`${AppSettings.API_ENDPOINT}/regionfields/list`  , options)
      .map(response => response.json());

}

getAdminAreas(username, userpassword, regionid)  {

  let headers = new Headers({
      "Content-Type": "application/json",
  });

  this.createMinistryAuthorizationHeader(headers, username, userpassword );
  let options = new RequestOptions({ headers: headers });

  console.log("Test");
  console.log(`${AppSettings.API_ENDPOINT}/adminfields/list/?region=` + regionid);
  return this.http.get(`${AppSettings.API_ENDPOINT}/adminfields/list/?region=` + regionid  , options)
      .map(response => response.json());
}

getSchoolsPerRegion(username, userpassword, regionid)  {

  let headers = new Headers({
      "Content-Type": "application/json",
  });

  this.createMinistryAuthorizationHeader(headers, username, userpassword );
  let options = new RequestOptions({ headers: headers });

  return this.http.get(`${AppSettings.API_ENDPOINT}/schoolfields_per_region/list/?region=` + regionid  , options)
      .map(response => response.json());
}

getSchoolsPerAdminArea(username, userpassword, adminid)  {

  let headers = new Headers({
      "Content-Type": "application/json",
  });

  this.createMinistryAuthorizationHeader(headers, username, userpassword );
  let options = new RequestOptions({ headers: headers });

  return this.http.get(`${AppSettings.API_ENDPOINT}/schoolfields_per_admin/list/?adminarea=` + adminid  , options)
      .map(response => response.json());
}

759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775

getUserRegistryNo(username, userpassword)  {

  let headers = new Headers({
      "Content-Type": "application/json",
  });

  this.createMinistryAuthorizationHeader(headers, username, userpassword );
  let options = new RequestOptions({ headers: headers });

  //console.log("Test");
  return this.http.get(`${AppSettings.API_ENDPOINT}/ministry/retrieve-registry-id`  , options)
      .map(response => response.json());
}



776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
getSectors(username, userpassword, classid)  {

  let headers = new Headers({
      "Content-Type": "application/json",
  });

  this.createMinistryAuthorizationHeader(headers, username, userpassword );
  let options = new RequestOptions({ headers: headers });

  return this.http.get(`${AppSettings.API_ENDPOINT}/sectorfields/list` , options)
      .map(response => response.json());
}

getCourses(username, userpassword, sectorid)  {

  let headers = new Headers({
      "Content-Type": "application/json",
  });

  this.createMinistryAuthorizationHeader(headers, username, userpassword );
  let options = new RequestOptions({ headers: headers });

  return this.http.get(`${AppSettings.API_ENDPOINT}/coursefields/list/?sector_id=` + sectorid , options)
      .map(response => response.json());
}

Open Source Developer's avatar
trans    
Open Source Developer committed
802

Open Source Developer's avatar
Open Source Developer committed
803

Open Source Developer's avatar
trans    
Open Source Developer committed
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
    getCritiria(headerid, type) {
        let headerIdNew = headerid.toString();
        this.loginInfo$.getValue().forEach(loginInfoToken => {
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/critiriachosen/` + headerIdNew + '/' + type, options)
            .map(response => response.json());
    }

Open Source Developer's avatar
Open Source Developer committed
819

Open Source Developer's avatar
Open Source Developer committed
820
getCapacityPerSchool(taxi, tomeas, specialit) {
Open Source Developer's avatar
trans    
Open Source Developer committed
821

Open Source Developer's avatar
trans    
Open Source Developer committed
822
        console.log(tomeas,specialit,"news")
823

Open Source Developer's avatar
trans    
Open Source Developer committed
824
825
826
827
828
829
830
831
832
        this.loginInfo$.getValue().forEach(loginInfoToken => {
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
Open Source Developer's avatar
Open Source Developer committed
833
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/findCapacity/` + taxi + '/' + tomeas + '/' + specialit, options)
Open Source Developer's avatar
trans    
Open Source Developer committed
834
835
836
            .map(response => response.json());

    }
Open Source Developer's avatar
trans    
Open Source Developer committed
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853

getSchoolId() {

        this.loginInfo$.getValue().forEach(loginInfoToken => {
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/getschool/`, options)
            .map(response => response.json());

    }

Open Source Developer's avatar
Open Source Developer committed
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
gettypeofschool(){

    this.loginInfo$.getValue().forEach(loginInfoToken => {
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/gettypeofschool/`, options)
            .map(response => response.json());

}
Open Source Developer's avatar
trans    
Open Source Developer committed
869
870


871
}