helper-data-service.ts 38.8 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
    ngOnInit() {
        this._ngRedux.select(state => {
            if (state.loginInfo.size > 0) {
                state.loginInfo.reduce(({}, loginInfoToken) => {
                    this.authToken = loginInfoToken.auth_token;
                    this.authRole = loginInfoToken.auth_role;
45
46
                    //this.minedu_userName = loginInfoToken.minedu_username;
                    //this.minedu_userPassword = loginInfoToken.minedu_userpassword;
47
48
49
                    console.log("Auth details..");
                    console.log(this.authToken);
                    console.log(this.authRole);
50
51
52
53
54
                    return loginInfoToken;
                }, {});
            }
            return state.loginInfo;
        }).subscribe(this.loginInfo$);
55

56
57
58
59
60
    }

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

62
    createAuthorizationHeader(headers: Headers) {
63
        headers.append('Authorization', 'Basic ' + btoa(this.authToken + ':' + this.authToken));
64
65
    }

66
67
68
69
    createMinistryAuthorizationHeader(headers: Headers, username: string, passwd: string) {
        headers.append('Authorization', 'Basic ' + btoa(username + ':' + passwd));
    }

70
    getEpalUserData() {
71
        this.loginInfo$.getValue().forEach(loginInfoToken => {
72
73
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
74
75
76
77
78
79
80
81
82
83
        });
        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());
    };

84
    sendVerificationCode(email) {
85
        this.loginInfo$.getValue().forEach(loginInfoToken => {
86
87
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
88
89
        });
        let headers = new Headers({
90
91
92
            "Content-Type": "application/json",
            //            "Accept": "*/*",
            //            "Access-Control-Allow-Credentials": "true",
93
94
        });
        this.createAuthorizationHeader(headers);
95
        //        let options = new RequestOptions({ headers: headers, withCredentials: true });
96
97
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
98
99
100
101
102
103
104
105
106
107
            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); */
108
109
110
111
        });
    }

    verifyVerificationCode(verificationCode) {
112
        this.loginInfo$.getValue().forEach(loginInfoToken => {
113
114
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
115
116
        });
        let headers = new Headers({
117
118
119
            "Content-Type": "application/json",
            //            "Accept": "*/*",
            //            "Access-Control-Allow-Credentials": "true",
120
121
        });
        this.createAuthorizationHeader(headers);
122
        //        let options = new RequestOptions({ headers: headers, withCredentials: true });
123
124
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
125
126
127
128
129
130
131
132
133
134
            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); */
135
136
137
        });
    }

138
    saveProfile(userProfile) {
139
        this.loginInfo$.getValue().forEach(loginInfoToken => {
140
141
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
142
143
        });
        let headers = new Headers({
144
            "Content-Type": "application/json",
145
146
147
148
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
149
150
151
152
153
154
155
156
157
158
            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"));
159
160
161
        });
    }

162
    getCourseFields() {
163

164
        this.loginInfo$.getValue().forEach(loginInfoToken => {
165
166
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
167
        });
168
169
170
        let headers = new Headers({
            //"Authorization": "Basic cmVzdHVzZXI6czNjckV0MFAwdWwwJA==", // encoded user:pass
            // "Authorization": "Basic bmthdHNhb3Vub3M6emVtcmFpbWU=",
171

172
173
174
175
            "Content-Type": "application/json",
            // "Content-Type": "text/plain",  // try to skip preflight
            //"X-CSRF-Token": "hVtACDJjFRSyE4bgGJENHbXY0B9yNhF71Fw-cYHSDNY"
            //"X-CSRF-Token": "fj1QtF_Z_p6kE19EdCnN08zoSjVfcT4Up-ciW6I0IG8"
176
            "X-CSRF-Token": "EHu964c7gN7M399UfHiHHv06x1Tx5cl-P-9ZyMdmGbw",
177
178
            //            "X-oauth-enabled": "true",
            //            "X-Auth-Token": this.authToken
179
        });
180
        this.createAuthorizationHeader(headers);
181
        let options = new RequestOptions({ headers: headers });
182
        return new Promise((resolve, reject) => {
183
            this.http.get(`${AppSettings.API_ENDPOINT}/coursefields/list`, options)
184
185
186
187
188
189
190
191
192
                .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); */
193
194
        });
    };
195

196
    getSectorFields() {
197
        this.loginInfo$.getValue().forEach(loginInfoToken => {
198
199
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
200
201
202
203
204
205
206
207
208
        });
        let headers = new Headers({
            //"Authorization": "Basic cmVzdHVzZXI6czNjckV0MFAwdWwwJA==", // encoded user:pass
            // "Authorization": "Basic bmthdHNhb3Vub3M6emVtcmFpbWU=",
            "Content-Type": "application/json",
            // "Content-Type": "text/plain",  // try to skip preflight
            //"X-CSRF-Token": "hVtACDJjFRSyE4bgGJENHbXY0B9yNhF71Fw-cYHSDNY"
            //"X-CSRF-Token": "fj1QtF_Z_p6kE19EdCnN08zoSjVfcT4Up-ciW6I0IG8"
            "X-CSRF-Token": "LU92FaWYfImfZxfldkF5eVnssdHoV7Aa9fg8K1bWYUc",
209
210
            //            "X-oauth-enabled": "true",
            //            "X-Auth-Token": this.authToken
211
212
213
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
214
        return new Promise((resolve, reject) => {
215
            this.http.get(`${AppSettings.API_ENDPOINT}/sectorfields/list`, options)
216
217
218
219
220
221
222
223
224
                .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); */
225
226
227
        });
    };

228
    getRegionsWithSchools(classActive, courseActive) {
229
        this.loginInfo$.getValue().forEach(loginInfoToken => {
230
231
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
232
        });
233
234
235
236
237
238
239
240
        let headers = new Headers({
            //"Authorization": "Basic cmVzdHVzZXI6czNjckV0MFAwdWwwJA==", // encoded user:pass
            // "Authorization": "Basic bmthdHNhb3Vub3M6emVtcmFpbWU=",
            "Content-Type": "application/json",
            // "Content-Type": "text/plain",  // try to skip preflight
            //"X-CSRF-Token": "hVtACDJjFRSyE4bgGJENHbXY0B9yNhF71Fw-cYHSDNY"
            //"X-CSRF-Token": "fj1QtF_Z_p6kE19EdCnN08zoSjVfcT4Up-ciW6I0IG8"
            "X-CSRF-Token": "LU92FaWYfImfZxfldkF5eVnssdHoV7Aa9fg8K1bWYUc",
241
242
            //            "X-oauth-enabled": "true",
            //            "X-Auth-Token": this.authToken
243
        });
244
        this.createAuthorizationHeader(headers);
245
        let options = new RequestOptions({ headers: headers });
246
        return new Promise((resolve, reject) => {
247
            let getConnectionString = null;
248

249
250
251
252
253
254
            console.log("Class:");
            console.log(classActive);

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

255
            if (classActive === 1)
256
257
258
                getConnectionString = `${AppSettings.API_ENDPOINT}/regions/list`;
            else if (classActive === 2)
                getConnectionString = `${AppSettings.API_ENDPOINT}/sectorsperschool/list?sector_id=${courseActive}`;
259
            else if (classActive === 3)
260
                getConnectionString = `${AppSettings.API_ENDPOINT}/coursesperschool/list?course_id=${courseActive}`;
261
262
263
264
265
            else if (classActive === 4)
                getConnectionString = `${AppSettings.API_ENDPOINT}/coursesperschool_night/list?course_id=${courseActive}`;

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

267
            this.http.get(getConnectionString, options)
268
269
270
271
272
                .map(response => response.json())
                .subscribe(data => {
                    resolve(this.transformRegionSchoolsSchema(data));
                }, // put the data returned from the server in our variable
                error => {
273
                    console.log("Error HTTP GET Service in getRegionsWithSchools method"); // in case of failure show this message
274
275
276
                    reject("Error HTTP GET Service");
                },
                () => console.log("region schools service"));//run this code in all cases); */
277
278
279
        });
    };

280
    getSectorsWithCourses() {
281
        this.loginInfo$.getValue().forEach(loginInfoToken => {
282
283
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
284
285
286
287
288
289
290
291
292
        });
        let headers = new Headers({
            //"Authorization": "Basic cmVzdHVzZXI6czNjckV0MFAwdWwwJA==", // encoded user:pass
            // "Authorization": "Basic bmthdHNhb3Vub3M6emVtcmFpbWU=",
            "Content-Type": "application/json",
            // "Content-Type": "text/plain",  // try to skip preflight
            //"X-CSRF-Token": "hVtACDJjFRSyE4bgGJENHbXY0B9yNhF71Fw-cYHSDNY"
            //"X-CSRF-Token": "fj1QtF_Z_p6kE19EdCnN08zoSjVfcT4Up-ciW6I0IG8"
            "X-CSRF-Token": "LU92FaWYfImfZxfldkF5eVnssdHoV7Aa9fg8K1bWYUc",
293
294
            //            "X-oauth-enabled": "true",
            //            "X-Auth-Token": this.authToken
295
296
297
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
298
        return new Promise((resolve, reject) => {
299
            this.http.get(`${AppSettings.API_ENDPOINT}/coursesectorfields/list`, options)
300
301
302
303
304
305
306
307
308
                .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); */
309
310
311
        });
    };

312
313
314
315
316
317
318
319
    transformRegionSchoolsSchema(regionSchools: any) {
        let rsa = Array<IRegion>();
        let trackRegionId: string;
        let trackIndex: number;

        trackRegionId = "";
        trackIndex = -1;

320
        let j = 0;
321
322
323
        regionSchools.forEach(regionSchool => {
            if (trackRegionId !== regionSchool.region_id) {
                trackIndex++;
324
                rsa.push(<IRegion>{ 'region_id': regionSchool.region_id, 'region_name': regionSchool.region_name, 'epals': Array<IRegionSchool>() });
325
326
                trackRegionId = regionSchool.region_id;
            }
327
            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 });
328
329
330
331
332
            j++;
        });
        return rsa;
    }

333
334
335
336
337
338
339
340
    transformSectorCoursesSchema(sectorCourses: any) {
        let rsa = Array<ISector>();
        let trackSectorId: string;
        let trackIndex: number;

        trackSectorId = "";
        trackIndex = -1;

341
        let j = 0;
342
343
344
        sectorCourses.forEach(sectorCourse => {
            if (trackSectorId !== sectorCourse.sector_id) {
                trackIndex++;
345
                rsa.push(<ISector>{ 'sector_id': sectorCourse.sector_id, 'sector_name': sectorCourse.sector_name, 'sector_selected': false, 'courses': Array<ISectorCourse>() });
346
347
                trackSectorId = sectorCourse.sector_id;
            }
348
            rsa[trackIndex].courses.push(<ISectorCourse>{ 'course_id': sectorCourse.course_id, 'course_name': sectorCourse.course_name, 'globalIndex': j, 'selected': false });
349
350
351
352
353
            j++;
        });
        return rsa;
    }

354
    getCriteria() {
355

356
        this.loginInfo$.getValue().forEach(loginInfoToken => {
357
358
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
359
360
361
362
363
364
365
366
367
        });
        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)
368
369
370
371
372
373
374
375
376
377
                //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); */
378
379
        });
    };
Open Source Developer's avatar
Open Source Developer committed
380

381
    getCurrentUser(oauthtoken, oauthrole) {
Open Source Developer's avatar
Open Source Developer committed
382
383

        this.authToken = oauthtoken;
384
        this.authRole = oauthrole;
385
386
387

        //console.log("MIPOS");

Open Source Developer's avatar
Open Source Developer committed
388
        let headers = new Headers({
389
390
//             "Authorization": "Basic " + btoa(this.authToken + ':' + this.authToken),
    //        "Authorization": "Basic cmVzdHVzZXI6czNjckV0MFAwdWwwJA==", // encoded user:pass
Open Source Developer's avatar
Open Source Developer committed
391
            // "Authorization": "Basic bmthdHNhb3Vub3M6emVtcmFpbWU=",
392
//            "Authorization": "Basic " + "aGFyaXNwOmhhcmlzcGFzcw==",
Open Source Developer's avatar
Open Source Developer committed
393
            "Content-Type": "application/json",
394
            "Access-Control-Allow-Credentials": "true",
Open Source Developer's avatar
Open Source Developer committed
395
396
397
            // "Content-Type": "text/plain",  // try to skip preflight
            //"X-CSRF-Token": "hVtACDJjFRSyE4bgGJENHbXY0B9yNhF71Fw-cYHSDNY"
            //"X-CSRF-Token": "fj1QtF_Z_p6kE19EdCnN08zoSjVfcT4Up-ciW6I0IG8"
398
        //    "X-CSRF-Token": "LU92FaWYfImfZxfldkF5eVnssdHoV7Aa9fg8K1bWYUc",
399
400
            //            "X-oauth-enabled": "true",
            //            "X-Auth-Token": this.authToken
Open Source Developer's avatar
Open Source Developer committed
401
402
403
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
404
        return new Promise((resolve, reject) => {
Open Source Developer's avatar
Open Source Developer committed
405
            this.http.get(`${AppSettings.API_ENDPOINT}/epal/curuser`, options)
406
407
408
409
410
411
412
413
414
                .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
415
        });
416
    }
Open Source Developer's avatar
Open Source Developer committed
417

418
419
420
421
422
423
    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
424

425
    transformUserSchema(userlogin: any, oauthtoken: string, oauthrole: string) {
426
        let rsa = Array<ILoginInfoToken>();
427

428
        rsa.push(<ILoginInfoToken>{ 'auth_token': oauthtoken, 'auth_role': oauthrole, 'cu_name': userlogin.name });
429
        return rsa;
430

431
    }
Open Source Developer's avatar
Open Source Developer committed
432

433
    signOut() {
434
        //loginInfo$ take values only in case getCurrentUser (epal module) has been used ...WHY? TO BE CHECKED..
435
        this.loginInfo$.getValue().forEach(loginInfoToken => {
436
437
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
438
        });
439

440
        let headers = new Headers({
441
            "Content-Type": "application/json",
442

443
        });
444

445
        if (this.authRole === MINISTRY_ROLE)
446
447
448
          this.createMinistryAuthorizationHeader(headers, this.minedu_userName, this.minedu_userPassword);
        else
          this.createAuthorizationHeader(headers);
449
        let options = new RequestOptions({ headers: headers, withCredentials: true });
450
        let logoutRoute = '/oauth/logout';
451
        if (this.authRole === SCHOOL_ROLE || this.authRole === PDE_ROLE || this.authRole === DIDE_ROLE) {
452
          logoutRoute = '/cas/logout';
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467

          return new Promise((resolve, reject) => {
              this.http.get(`${AppSettings.API_ENDPOINT}${logoutRoute}${AppSettings.API_ENDPOINT_PARAMS}`, options)
                  .map(response => response)
                  .subscribe(data => {
                      this._cookieService.removeAll();
                      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); */
          });
        }
468
        else if (this.authRole === MINISTRY_ROLE)
469
          logoutRoute = '/ministry/logout';
470

471
        return new Promise((resolve, reject) => {
472
            this.http.post(`${AppSettings.API_ENDPOINT}${logoutRoute}${AppSettings.API_ENDPOINT_PARAMS}`, {}, options)
473
474
                .map(response => response)
                .subscribe(data => {
475
                    this._cookieService.removeAll();
476
477
478
479
480
481
482
                    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); */
483
484
        });
    }
Open Source Developer's avatar
Open Source Developer committed
485
486


Open Source Developer's avatar
Open Source Developer committed
487
488


Open Source Developer's avatar
tranfer    
Open Source Developer committed
489
    getSubmittedPreviw() {
Open Source Developer's avatar
Open Source Developer committed
490

491

492
        this.loginInfo$.getValue().forEach(loginInfoToken => {
493
494
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
Open Source Developer's avatar
Open Source Developer committed
495
496
497
498
499
500
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
501
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/subapplic`, options)
Open Source Developer's avatar
Open Source Developer committed
502
            .map(response => response.json());
Open Source Developer's avatar
Open Source Developer committed
503
    }
Open Source Developer's avatar
Open Source Developer committed
504

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

506
507
508
    getStudentDetails(headerid) {
        let headerIdNew = headerid.toString();
        this.loginInfo$.getValue().forEach(loginInfoToken => {
509
510
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
511
        });
Open Source Developer's avatar
Open Source Developer committed
512
513
514
515
516
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
517
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/student/` + headerIdNew, options)
Open Source Developer's avatar
Open Source Developer committed
518
            .map(response => response.json());
519
    }
Open Source Developer's avatar
Open Source Developer committed
520
521


522
523
524
    getEpalchosen(headerid) {
        let headerIdNew = headerid.toString();
        this.loginInfo$.getValue().forEach(loginInfoToken => {
525
526
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
527
        });
Open Source Developer's avatar
Open Source Developer committed
528
529
530
531
532
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
533
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/epalchosen/` + headerIdNew, options)
Open Source Developer's avatar
Open Source Developer committed
534
            .map(response => response.json());
535
    }
Open Source Developer's avatar
tranfer    
Open Source Developer committed
536
537


538
539
540
    getSectorPerSchool(SchoolId) {
        let SchoolIdNew = SchoolId.toString();
        this.loginInfo$.getValue().forEach(loginInfoToken => {
541
542
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
543
        });
Open Source Developer's avatar
transf    
Open Source Developer committed
544
545
546
547
548
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
549
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/sectorperSchool/` + SchoolIdNew, options)
Open Source Developer's avatar
transf    
Open Source Developer committed
550
            .map(response => response.json());
551
    }
Open Source Developer's avatar
transf    
Open Source Developer committed
552

553
554
555
556
    getSpecialityPerSchool(SchoolId, SectorId) {
        let SchoolIdNew = SchoolId.toString();
        let SectorIdNew = SectorId.toString();
        this.loginInfo$.getValue().forEach(loginInfoToken => {
557
558
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
559
        });
Open Source Developer's avatar
trans    
Open Source Developer committed
560
561
562
563
564
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
565
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/specialityperSchool/` + SchoolIdNew + '/' + SectorIdNew, options)
Open Source Developer's avatar
trans    
Open Source Developer committed
566
            .map(response => response.json());
567
    }
Open Source Developer's avatar
trans    
Open Source Developer committed
568
569
570



Open Source Developer's avatar
paging    
Open Source Developer committed
571
    getStudentPerSchool(SchoolId, SelectId, classId, limitdown, limitup) {
572
573
        let SchoolIdNew = SchoolId.toString();
        let SelectIdNew = SelectId.toString();
574
575


576
        this.loginInfo$.getValue().forEach(loginInfoToken => {
577
578
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
579
        });
580

Open Source Developer's avatar
trans    
Open Source Developer committed
581
582
583
584
585
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
Open Source Developer's avatar
paging    
Open Source Developer committed
586
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/studentperSchool/` + SchoolIdNew + '/' + SelectIdNew + '/' + classId + '/' + limitdown + '/' + limitup, options)
Open Source Developer's avatar
trans    
Open Source Developer committed
587
            .map(response => response.json());
588
    }
Open Source Developer's avatar
trans    
Open Source Developer committed
589

Open Source Developer's avatar
transf    
Open Source Developer committed
590
591


Open Source Developer's avatar
trans    
Open Source Developer committed
592
    saveConfirmStudents(students, type) {
593
        this.loginInfo$.getValue().forEach(loginInfoToken => {
594
595
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
Open Source Developer's avatar
trans    
Open Source Developer committed
596
597
        });
        let headers = new Headers({
598
            "Content-Type": "application/json",
Open Source Developer's avatar
trans    
Open Source Developer committed
599
600
601
602
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
Open Source Developer's avatar
trans    
Open Source Developer committed
603
            this.http.post(`${AppSettings.API_ENDPOINT}/epal/confirmstudent`, { students, type}, options)
604
605
606
607
608
609
610
611
612
                .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
613
614
        });

615
    }
Open Source Developer's avatar
trans    
Open Source Developer committed
616
617


Open Source Developer's avatar
Open Source Developer committed
618

619
    saveCapacity(taxi, tomeas, specialit, capacity, schoolid) {
Open Source Developer's avatar
Open Source Developer committed
620

621
        this.loginInfo$.getValue().forEach(loginInfoToken => {
622
623
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
Open Source Developer's avatar
Open Source Developer committed
624
625
        });
        let headers = new Headers({
626
            "Content-Type": "application/json",
Open Source Developer's avatar
Open Source Developer committed
627
628
629
630
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
631
632
633
634
635
636
637
638
639
640
            this.http.post(`${AppSettings.API_ENDPOINT}/epal/savecapacity/` + taxi + '/' + tomeas + '/' + specialit + '/' + schoolid, { capacity }, options)
                .map(response => response.json())
                .subscribe(data => {
                    resolve(data);
                },
                error => {
                    console.log("Error Saving Capacity");
                    reject("Error Saving Capacity");
                },
                () => console.log("Saving Capacity"));
Open Source Developer's avatar
Open Source Developer committed
641
642
        });

643
    }
Open Source Developer's avatar
Open Source Developer committed
644

645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
    sendMinisrtyCredentials(username, userpassword) {

        let headers = new Headers({
            "Content-Type": "application/json",
            //"Accept": "*/*",
            //"Access-Control-Allow-Credentials": "true",
            //"X-CSRF-Token": "..."
            //"Authorization": "Basic " + btoa("..."),
        });
        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(""));
        });

    }

670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
    makeDistribution(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}/epal/distribution/` , options)
        //    .map(response => response.json());

        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(""));
        });

    }

696

697
    makeReport(username, userpassword, routepath, regionsel, adminsel, schsel, clsel, secsel, coursel) {
698

699
700
        //console.log("Service..Nikos..");
        //console.log(regionsel);
701

702
703
704
705
706
707
708
        let headers = new Headers({
            "Content-Type": "application/json",
        });

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

709
710
711
712
713
714
715
716
717
718
719
720
721
        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());
          }
722
723
724
725
726
727
728
          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());
            }
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
    informUnlocatedStudents(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/send-massive-mail`, {username: username, userpassword: userpassword}, options)
              .map(response => response.json())
              .subscribe(data => {
                  resolve(data);
              },
              error => {
                  reject("Error POST in informUnlocatedStudents");
              },
              () => console.log(""));
      });
      */
      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
756

Open Source Developer's avatar
trans    
Open Source Developer committed
757
758
    getSchoolPerPerfecture(PerfectureId) {
        console.log(PerfectureId,"a");
759
760
        //let PerfectureIdNew = PerfectureId.toString();
        let PerfectureIdNew = PerfectureId;
Open Source Developer's avatar
trans    
Open Source Developer committed
761
762
763
764
765
766
767
768
769
770
771
772
773

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

        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
Open Source Developer's avatar
trans    
Open Source Developer committed
774
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/ScoolperPerf/` + PerfectureIdNew , options)
Open Source Developer's avatar
trans    
Open Source Developer committed
775
776
777
            .map(response => response.json());
    }

Open Source Developer's avatar
trans    
Open Source Developer committed
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
    getCoursePerPerfecture(PerfectureId){
        console.log(PerfectureId,"a");
        let PerfectureIdNew = PerfectureId.toString();


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

        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());
}

799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
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 });

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

  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 });

  console.log("Test2");
  console.log(`${AppSettings.API_ENDPOINT}/schoolfields_per_region/list/?region=` + regionid);
  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 });

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

863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879

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());
}



880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
getSectors(username, userpassword, classid)  {

  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}/sectorfields/list`);
  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
908

Open Source Developer's avatar
Open Source Developer committed
909

Open Source Developer's avatar
trans    
Open Source Developer committed
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
    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
925

Open Source Developer's avatar
trans    
Open Source Developer committed
926
927
928
getCapacityPerSchool(taxi, tomeas, specialit, schoolid) {


929

Open Source Developer's avatar
trans    
Open Source Developer committed
930
931
932
933
934
935
936
937
938
939
940
941
942
        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/findCapacity/` + taxi + '/' + tomeas + '/' + specialit + '/' + schoolid, options)
            .map(response => response.json());

    }
Open Source Developer's avatar
trans    
Open Source Developer committed
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969

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());

    }









970
}