Project

General

Profile

1

    
2
import {throwError as observableThrowError, Observable} from 'rxjs';
3
import {Injectable} from '@angular/core';
4
import {URLSearchParams } from '@angular/http';
5
import {Http, Response} from '@angular/http';
6
import { HttpClient } from '@angular/common/http';
7
// import {Claim}           from '../claim';
8

    
9

    
10

    
11
import { catchError } from 'rxjs/operators';
12

    
13
import { CustomOptions } from '../../../services/servicesUtils/customOptions.class';
14
@Injectable()
15
export class ClaimsService {
16
  constructor(private http: HttpClient ) {
17
  }
18

    
19
  private getClaimRequest(size : number, page : number, url :string, fromCache:boolean):any {
20
    //console.info('ClaimsService: Claims request: '+url);
21
    let key = url;
22
       return this.http.get(url, CustomOptions.getAuthOptions())
23
                    //.map(request => <any> request.json())
24
                    //.do(request => console.info("Get claims: offset = "+(size*(page-1)) + " limit ="+size ))
25
         .pipe(catchError(this.handleError));
26
  }
27
  getClaims( size : number, page : number, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string):any {
28
    let url = apiUrl +"claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+"&"+types;
29
     return this.getClaimRequest(size,page,url,true);
30

    
31
  }
32
  getClaimsByUser( size : number, page : number, user:string, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string):any {
33
    //console.info('ClaimsService: getClaims for user : '+user);
34
    let url = apiUrl +"users/claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+"&"+types;
35
     return this.getClaimRequest(size,page,url,false);
36

    
37
  }
38
  getClaimsBycontext( size : number, page : number, contextId:string, keyword:string, sortby: string, descending: boolean, types: string , apiUrl:string):any {
39
    //console.info('ClaimsService: getClaims for context : '+contextId);
40
    let url = apiUrl +"contexts/"+contextId+"/claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+"&"+types;
41
     return this.getClaimRequest(size,page,url,true);
42

    
43
  }
44
  getClaimsByResult( size : number, page : number, resultId:string, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string ):any {
45
    //console.info('ClaimsService: getClaims for result : '+resultId);
46
    let url = apiUrl +"results/"+resultId+"/claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+"&"+types;
47
     return this.getClaimRequest(size,page,url,true);
48

    
49
  }
50
  getClaimsByProject( size : number, page : number, projectId:string, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string ):any {
51
    //console.info('ClaimsService: getClaims for project : '+projectId);
52
    let url = apiUrl +"projects/"+projectId+"/claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+"&"+types;
53
     return this.getClaimRequest(size,page,url,true);
54
  }
55

    
56
  deleteClaimById(claimId:string , apiUrl:string):any{
57
    //console.warn('Trying to delete claim with id : '+claimId);
58
    let url = apiUrl +"claims/"+claimId;
59
    // let headers = new Headers({ 'Content-Type': 'application/json' });
60
    // let options = new RequestOptions({ headers: headers });
61
      return this.http.delete( url,  CustomOptions.getAuthOptionsWithBody())//.map(request => <any> request.json())
62
      // .do(request => console.info("After delete" ))
63
      .pipe(catchError(this.handleError));
64

    
65
  }
66
  deleteBulk(claimIds:string[], apiUrl:string):any{
67

    
68
    //console.warn('Trying to delete claims with ids : '+claimIds);
69
     var url = "";
70

    
71
    for(var claimId of claimIds){
72
      url=url+(url.length >0 ?"&":"")+"claimId="+claimId;
73
    }
74
    url= apiUrl +"claims/bulk?"+url;
75

    
76
    // let headers = new Headers({ 'Content-Type': 'application/json' });
77
    // let options = new RequestOptions({ headers: headers });
78
      return this.http.delete( url,  CustomOptions.getAuthOptions())//.map(request => <any> request.json())
79
      // .do(request => console.info("After delete" ))
80
      .pipe(catchError(this.handleError));
81

    
82
  }
83
  insertBulkClaims(claims, apiUrl:string):any{
84
    //console.warn('Trying toinsert claims  : '+claims);
85
    let url = apiUrl +"claims/bulk";
86
    let body = JSON.stringify( claims );
87
    //console.warn('Json body:  : '+body);
88
    // let headers = new Headers({ 'Content-Type': 'application/json' });
89
    // let options = new RequestOptions({ headers: headers });
90
    return this.http.post(url, body,  CustomOptions.getAuthOptionsWithBody())
91
                          //.map(res => res.json())
92
                          //.do(request => console.info("Insert Response:"+request.status) )
93
                          .pipe(catchError(this.handleError));
94

    
95
    }
96
  insertClaim(claim, apiUrl:string):any{
97
    //console.warn('Trying toinsert claim  : '+claim);
98
   let url = apiUrl +"claims";
99
          let body = JSON.stringify( claim );
100
          // let headers = new Headers({ 'Content-Type': 'application/json' });
101
          // let options = new RequestOptions({ headers: headers });
102
          return this.http.post(url, body,  CustomOptions.getAuthOptionsWithBody())
103
                          //.map(res => res.json())
104
                          //.do(request => console.info("Insert Response:"+request.status) )
105
                          .pipe(catchError(this.handleError));
106

    
107
    }
108
    insertDirectRecords(records, apiUrl:string):any{
109
      //console.warn('Trying to feedrecords  : '+records);
110
      let url = apiUrl +"feed/bulk";
111
      let body = JSON.stringify( records );
112
      //console.warn('Json body:  : '+body);
113
      // let headers = new Headers({ 'Content-Type': 'application/json' });
114
      // let options = new RequestOptions({ headers: headers });
115
      return this.http.post(url, body, CustomOptions.getAuthOptionsWithBody())
116
                            //.map(res => res.json())
117
                            //.do(request => console.info("Insert Response:"+request) )
118
                            .pipe(catchError(this.handleError));
119

    
120
      }
121
  private handleError (error: Response) {
122
    // in a real world app, we may send the error to some remote logging infrastructure
123
    // instead of just logging it to the console
124
    console.log(error);
125
    return observableThrowError(error  || 'Server error');
126
  }
127

    
128
  getClaim(id:string, apiUrl:string):any {
129
  let url = apiUrl+"claims/"+id;
130
      return new Promise((resolve, reject) => {
131
        this.http.get(url)
132
          //.map(res => res.json())
133
          .subscribe(
134
            data => {
135
              resolve(data['data']);
136
            },
137
            err => {
138
              reject(err);
139
            }
140
          )
141
        ;
142
      });
143
      }
144

    
145

    
146
}
(1-1/9)