helper-data-service.ts 37.3 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
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
290
        return new Promise((resolve, reject) => {
291
            this.http.get(`${AppSettings.API_ENDPOINT}/coursesectorfields/list`, options)
292 293 294 295 296 297 298 299 300
                .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); */
301 302 303
        });
    };

304 305 306 307 308 309 310 311
    transformRegionSchoolsSchema(regionSchools: any) {
        let rsa = Array<IRegion>();
        let trackRegionId: string;
        let trackIndex: number;

        trackRegionId = "";
        trackIndex = -1;

312
        let j = 0;
313 314 315
        regionSchools.forEach(regionSchool => {
            if (trackRegionId !== regionSchool.region_id) {
                trackIndex++;
316
                rsa.push(<IRegion>{ 'region_id': regionSchool.region_id, 'region_name': regionSchool.region_name, 'epals': Array<IRegionSchool>() });
317 318
                trackRegionId = regionSchool.region_id;
            }
319
            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 });
320 321 322 323 324
            j++;
        });
        return rsa;
    }

325 326 327 328 329 330 331 332
    transformSectorCoursesSchema(sectorCourses: any) {
        let rsa = Array<ISector>();
        let trackSectorId: string;
        let trackIndex: number;

        trackSectorId = "";
        trackIndex = -1;

333
        let j = 0;
334 335 336
        sectorCourses.forEach(sectorCourse => {
            if (trackSectorId !== sectorCourse.sector_id) {
                trackIndex++;
337
                rsa.push(<ISector>{ 'sector_id': sectorCourse.sector_id, 'sector_name': sectorCourse.sector_name, 'sector_selected': false, 'courses': Array<ISectorCourse>() });
338 339
                trackSectorId = sectorCourse.sector_id;
            }
340
            rsa[trackIndex].courses.push(<ISectorCourse>{ 'course_id': sectorCourse.course_id, 'course_name': sectorCourse.course_name, 'globalIndex': j, 'selected': false });
341 342 343 344 345
            j++;
        });
        return rsa;
    }

346
    getCriteria() {
347

348
        this.loginInfo$.getValue().forEach(loginInfoToken => {
349 350
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
351 352 353 354 355 356 357 358 359
        });
        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)
360 361 362 363 364 365 366 367 368 369
                //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); */
370 371
        });
    };
Open Source Developer's avatar
Open Source Developer committed
372

373
    getCurrentUser(oauthtoken, oauthrole) {
Open Source Developer's avatar
Open Source Developer committed
374 375

        this.authToken = oauthtoken;
376
        this.authRole = oauthrole;
377

Open Source Developer's avatar
Open Source Developer committed
378 379
        let headers = new Headers({
            "Content-Type": "application/json",
380
            "Access-Control-Allow-Credentials": "true",
Open Source Developer's avatar
Open Source Developer committed
381 382 383
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
384
        return new Promise((resolve, reject) => {
Open Source Developer's avatar
Open Source Developer committed
385
            this.http.get(`${AppSettings.API_ENDPOINT}/epal/curuser`, options)
386 387 388 389 390 391 392 393 394
                .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
395
        });
396
    }
Open Source Developer's avatar
Open Source Developer committed
397

398 399 400 401 402 403
    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
404

405
    transformUserSchema(userlogin: any, oauthtoken: string, oauthrole: string) {
406
        let rsa = Array<ILoginInfoToken>();
407

408 409 410 411 412 413 414 415 416 417 418 419 420 421 422
        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)
        });
423
        return rsa;
424

425
    }
Open Source Developer's avatar
Open Source Developer committed
426

427
    signOut() {
428
        //loginInfo$ take values only in case getCurrentUser (epal module) has been used ...WHY? TO BE CHECKED..
429
        this.loginInfo$.getValue().forEach(loginInfoToken => {
430 431
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
432
        });
433

434
        let headers = new Headers({
435
            "Content-Type": "application/json",
436

437
        });
438

439
        if (this.authRole === MINISTRY_ROLE)
440 441 442
          this.createMinistryAuthorizationHeader(headers, this.minedu_userName, this.minedu_userPassword);
        else
          this.createAuthorizationHeader(headers);
443
        let options = new RequestOptions({ headers: headers, withCredentials: true });
444
        let logoutRoute = '/oauth/logout';
445
        if (this.authRole === SCHOOL_ROLE || this.authRole === PDE_ROLE || this.authRole === DIDE_ROLE) {
446
          logoutRoute = '/cas/logout';
447
        }
448
        else if (this.authRole === MINISTRY_ROLE)
449
          logoutRoute = '/ministry/logout';
450

451
        return new Promise((resolve, reject) => {
452
            this.http.post(`${AppSettings.API_ENDPOINT}${logoutRoute}${AppSettings.API_ENDPOINT_PARAMS}`, {}, options)
453 454
                .map(response => response)
                .subscribe(data => {
455
                    this._cookieService.removeAll();
456 457 458 459 460 461 462
                    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); */
463 464
        });
    }
Open Source Developer's avatar
Open Source Developer committed
465 466


Open Source Developer's avatar
Open Source Developer committed
467 468


Open Source Developer's avatar
tranfer  
Open Source Developer committed
469
    getSubmittedPreviw() {
Open Source Developer's avatar
Open Source Developer committed
470

471

472
        this.loginInfo$.getValue().forEach(loginInfoToken => {
473 474
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
Open Source Developer's avatar
Open Source Developer committed
475 476 477 478 479 480
        });
        let headers = new Headers({
            "Content-Type": "application/json",
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
481
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/subapplic`, options)
Open Source Developer's avatar
Open Source Developer committed
482
            .map(response => response.json());
Open Source Developer's avatar
Open Source Developer committed
483
    }
Open Source Developer's avatar
Open Source Developer committed
484

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

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


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


Open Source Developer's avatar
Open Source Developer committed
518 519
    getSectorPerSchool() {
        
520
        this.loginInfo$.getValue().forEach(loginInfoToken => {
521 522
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
523
        });
Open Source Developer's avatar
transf  
Open Source Developer committed
524 525 526 527 528
        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
529
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/sectorperSchool/` , options)
Open Source Developer's avatar
transf  
Open Source Developer committed
530
            .map(response => response.json());
531
    }
Open Source Developer's avatar
transf  
Open Source Developer committed
532

Open Source Developer's avatar
Open Source Developer committed
533 534 535

    getSpecialityPerSchool( SectorId) {
       
536 537
        let SectorIdNew = SectorId.toString();
        this.loginInfo$.getValue().forEach(loginInfoToken => {
538 539
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
540
        });
Open Source Developer's avatar
trans  
Open Source Developer committed
541 542 543 544 545
        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
546
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/specialityperSchool/` + SectorIdNew, options)
Open Source Developer's avatar
trans  
Open Source Developer committed
547
            .map(response => response.json());
548
    }
Open Source Developer's avatar
trans  
Open Source Developer committed
549 550 551



Open Source Developer's avatar
Open Source Developer committed
552 553
    getStudentPerSchool( SelectId, classId, limitdown, limitup) {
        
554
        let SelectIdNew = SelectId.toString();
555 556


557
        this.loginInfo$.getValue().forEach(loginInfoToken => {
558 559
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
560
        });
561

Open Source Developer's avatar
trans  
Open Source Developer committed
562 563 564 565 566
        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
567
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/studentperSchool/` + SelectIdNew + '/' + classId + '/' + limitdown + '/' + limitup, options)
Open Source Developer's avatar
trans  
Open Source Developer committed
568
            .map(response => response.json());
569
    }
Open Source Developer's avatar
trans  
Open Source Developer committed
570

Open Source Developer's avatar
transf  
Open Source Developer committed
571 572


Open Source Developer's avatar
trans  
Open Source Developer committed
573
    saveConfirmStudents(students, type) {
574
        this.loginInfo$.getValue().forEach(loginInfoToken => {
575 576
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
Open Source Developer's avatar
trans  
Open Source Developer committed
577 578
        });
        let headers = new Headers({
579
            "Content-Type": "application/json",
Open Source Developer's avatar
trans  
Open Source Developer committed
580 581 582 583
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
        return new Promise((resolve, reject) => {
Open Source Developer's avatar
trans  
Open Source Developer committed
584
            this.http.post(`${AppSettings.API_ENDPOINT}/epal/confirmstudent`, { students, type}, options)
585 586 587 588 589 590 591 592 593
                .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
594 595
        });

596
    }
Open Source Developer's avatar
trans  
Open Source Developer committed
597 598


Open Source Developer's avatar
Open Source Developer committed
599

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

602
        this.loginInfo$.getValue().forEach(loginInfoToken => {
603 604
            this.authToken = loginInfoToken.auth_token;
            this.authRole = loginInfoToken.auth_role;
Open Source Developer's avatar
Open Source Developer committed
605 606
        });
        let headers = new Headers({
607
            "Content-Type": "application/json",
Open Source Developer's avatar
Open Source Developer committed
608 609 610
        });
        this.createAuthorizationHeader(headers);
        let options = new RequestOptions({ headers: headers });
Open Source Developer's avatar
Open Source Developer committed
611
        return this.http.post(`${AppSettings.API_ENDPOINT}/epal/savecapacity/` + taxi + '/' + tomeas + '/' + specialit, { capacity }, options)
Open Source Developer's avatar
trans  
Open Source Developer committed
612 613
            .map(response => response.json());
        
Open Source Developer's avatar
Open Source Developer committed
614

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

618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642
    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(""));
        });

    }

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

    }

669

670
    makeReport(username, userpassword, routepath, regionsel, adminsel, schsel, clsel, secsel, coursel) {
671

672 673
        //console.log("Service..Nikos..");
        //console.log(regionsel);
674

675 676 677 678 679 680 681
        let headers = new Headers({
            "Content-Type": "application/json",
        });

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

682 683 684 685 686 687 688 689 690 691 692 693 694
        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());
          }
695 696 697 698 699 700 701
          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());
            }
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
    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
729

Open Source Developer's avatar
Open Source Developer committed
730 731
    getSchoolPerPerfecture() {
        
732
        //let PerfectureIdNew = PerfectureId.toString();
Open Source Developer's avatar
Open Source Developer committed
733
        
Open Source Developer's avatar
trans  
Open Source Developer committed
734 735 736 737 738 739 740 741 742 743 744 745 746

        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
Open Source Developer committed
747
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/ScoolperPerf/` , options)
Open Source Developer's avatar
trans  
Open Source Developer committed
748 749 750
            .map(response => response.json());
    }

Open Source Developer's avatar
trans  
Open Source Developer committed
751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771
    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());
}

772 773 774 775 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 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
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());
}

836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852

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



853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880
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
881

Open Source Developer's avatar
Open Source Developer committed
882

Open Source Developer's avatar
trans  
Open Source Developer committed
883 884 885 886 887 888 889 890 891 892 893 894 895 896 897
    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
898

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

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

Open Source Developer's avatar
trans  
Open Source Developer committed
903 904 905 906 907 908 909 910 911
        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
912
        return this.http.get(`${AppSettings.API_ENDPOINT}/epal/findCapacity/` + taxi + '/' + tomeas + '/' + specialit, options)
Open Source Developer's avatar
trans  
Open Source Developer committed
913 914 915
            .map(response => response.json());

    }
Open Source Developer's avatar
trans  
Open Source Developer committed
916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934

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
935 936 937 938 939 940 941 942 943 944 945 946 947 948 949
gettypeofschool(){

    this.loginInfo$.getValue().forEach(loginInfoToken => {
            this