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
  private apiUrl = process.env.API_ENDPOINT + '/monitor/';
26

    
27
  constructor(private http: Http) { }
28

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

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

    
52

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

    
72
}
(5-5/8)