Project

General

Profile

1
import {throwError as observableThrowError} from 'rxjs';
2
import {Injectable} from '@angular/core';
3
import {HttpClient} from '@angular/common/http';
4
import {catchError} from 'rxjs/operators';
5
import {CustomOptions} from '../../../services/servicesUtils/customOptions.class';
6

    
7
@Injectable()
8
export class ClaimsService {
9
  constructor(private http: HttpClient ) {
10
  }
11

    
12
  private getClaimRequest(size : number, page : number, url :string, fromCache:boolean):any {
13
       return this.http.get(url, CustomOptions.getAuthOptions())
14
         .pipe(catchError(this.handleError));
15
  }
16
  getClaims( size : number, page : number, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string):any {
17
    let url = apiUrl +"claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+"&"+types;
18
     return this.getClaimRequest(size,page,url,true);
19

    
20
  }
21
  getClaimsByUser( size : number, page : number, user:string, keyword:string, sortby: string, descending: boolean, types: string, apiUrl:string):any {
22
    //console.info('ClaimsService: getClaims for user : '+user);
23
    let url = apiUrl +"users/claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+"&"+types;
24
     return this.getClaimRequest(size,page,url,false);
25

    
26
  }
27
  getClaimsBycontext( size : number, page : number, contextId:string, keyword:string, sortby: string, descending: boolean, types: string , apiUrl:string):any {
28
    //console.info('ClaimsService: getClaims for context : '+contextId);
29
    let url = apiUrl +"contexts/"+contextId+"/claims"+"?offset="+(size*(page-1) + "&limit="+size)+"&keyword="+keyword+"&sortby="+sortby+"&descending="+descending+"&"+types;
30
     return this.getClaimRequest(size,page,url,true);
31

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

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

    
45
  deleteClaimById(claimId:string , apiUrl:string):any{
46
    //console.warn('Trying to delete claim with id : '+claimId);
47
    let url = apiUrl +"claims/"+claimId;
48
    // let headers = new Headers({ 'Content-Type': 'application/json' });
49
    // let options = new RequestOptions({ headers: headers });
50
      return this.http.delete( url,  CustomOptions.getAuthOptionsWithBody())//.map(request => <any> request.json())
51
      // .do(request => console.info("After delete" ))
52
      .pipe(catchError(this.handleError));
53

    
54
  }
55
  deleteBulk(claimIds:string[], apiUrl:string):any{
56

    
57
    //console.warn('Trying to delete claims with ids : '+claimIds);
58
     var url = "";
59

    
60
    for(var claimId of claimIds){
61
      url=url+(url.length >0 ?"&":"")+"claimId="+claimId;
62
    }
63
    url= apiUrl +"claims/bulk?"+url;
64

    
65
    // let headers = new Headers({ 'Content-Type': 'application/json' });
66
    // let options = new RequestOptions({ headers: headers });
67
      return this.http.delete( url,  CustomOptions.getAuthOptions())//.map(request => <any> request.json())
68
      // .do(request => console.info("After delete" ))
69
      .pipe(catchError(this.handleError));
70

    
71
  }
72
  insertBulkClaims(claims, apiUrl:string):any{
73
    //console.warn('Trying toinsert claims  : '+claims);
74
    let url = apiUrl +"claims/bulk";
75
    let body = JSON.stringify( claims );
76
    //console.warn('Json body:  : '+body);
77
    // let headers = new Headers({ 'Content-Type': 'application/json' });
78
    // let options = new RequestOptions({ headers: headers });
79
    return this.http.post(url, body,  CustomOptions.getAuthOptionsWithBody())
80
                          //.map(res => res.json())
81
                          //.do(request => console.info("Insert Response:"+request.status) )
82
                          .pipe(catchError(this.handleError));
83

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

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

    
109
      }
110
  private handleError (error: Response) {
111
    // in a real world app, we may send the error to some remote logging infrastructure
112
    // instead of just logging it to the console
113
    console.log(error);
114
    return observableThrowError(error  || 'Server error');
115
  }
116

    
117
  // getClaim(id:string, apiUrl:string):any {
118
  // let url = apiUrl+"claims/"+id;
119
  //     return new Promise((resolve, reject) => {
120
  //       this.http.get(url)
121
  //         //.map(res => res.json())
122
  //         .subscribe(
123
  //           data => {
124
  //             resolve(data['data']);
125
  //           },
126
  //           err => {
127
  //             reject(err);
128
  //           }
129
  //         )
130
  //       ;
131
  //     });
132
  //     }
133

    
134

    
135
}
(1-1/9)