Project

General

Profile

1
/*
2
* Created by myrto on 12/05/2017
3
*/
4

    
5
/*
6
*  !!! USING TEMPORARY API ADDRESS AND USER
7
*/
8

    
9
import { Injectable } from '@angular/core';
10

    
11
import { Observable } from 'rxjs/Observable';
12

    
13
import 'rxjs/add/operator/map';
14
import { Http, Response, Headers, RequestOptions } from '@angular/http';
15
import { InterfaceInformation, JobsOfUser, StoredJob } from "../domain/typeScriptClasses";
16
import { apiUrl } from '../domain/tempAPI';
17
import { URLParameter } from '../domain/url-parameter';
18

    
19
let headers = new Headers({ 'Content-Type': 'application/json' });
20
let httpOptions = new RequestOptions({ headers: headers });
21

    
22
@Injectable ()
23
export class MonitorService {
24
  private apiUrl = apiUrl + '/monitor/';
25

    
26
  constructor(private http: Http) { }
27

    
28
  getJobSummary(jobId: string, groupBy: string): Observable<StoredJob> {
29
    let url = `${this.apiUrl}getJobSummary?jobId=${jobId}&groupBy=${groupBy}`;
30
    console.log(`knocking on: ${url}`);
31
    return this.http.get(url)
32
      .map(res => <StoredJob>res.json() )
33
      .catch(this.handleError);
34
  }
35

    
36
  getJobsOfUser(params: URLParameter[]): Observable<JobsOfUser> {
37
    let url = `${this.apiUrl}getJobsOfUser`;
38
    for (let param of params) {
39
      if (param.key == 'user'){
40
        url += `?${param.key}=${param.value[0]}`;
41
      } else {
42
        url += `&${param.key}=${param.value[0]}`;
43
      }
44
    }
45
    console.log(`knocking on: ${url}`);
46
    return this.http.get(url)
47
      .map(res => <JobsOfUser>res.json() )
48
      .catch(this.handleError);
49
  }
50

    
51

    
52
  private handleError(error: Response | any) {
53
    // In a real world app, we might use a remote logging infrastructure
54
    // We'd also dig deeper into the error to get a better message
55
    let errMsg = "";
56
    console.log(`E R R O R !!!`);
57
    console.log(error);
58
    if (error instanceof Response) {
59
      const body = error.text() || '';
60
      //const err = body.error || JSON.stringify(body);
61
      errMsg = `${error.status} - ${error.statusText || ''} ${body}`;
62
      console.log(errMsg);
63
    } else {
64
      errMsg = (error.message) ? error.message :
65
        error.status ? `${error.status} - ${error.statusText}` : 'Server error';
66
      console.error(errMsg); // log to console instead
67
    }
68
    return Observable.throw(errMsg);
69
  }
70

    
71
}
(5-5/8)