aboutsummaryrefslogtreecommitdiff
path: root/src/app/reclaim.service.ts
blob: 5828b2549c4e4ce2e86a03647a85cac40077fd24 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';

import { Attribute } from './attribute';
import { Reference } from './reference';
import { Credential } from './credential';
import { ConfigService } from './config.service';
import { GnuNetResponse } from './gnu-net-response';
import { Identity } from './identity';
import { Ticket } from './ticket';

@Injectable()
export class ReclaimService {

  constructor(private http: HttpClient, private config: ConfigService) { }

  getAttributes(identity: Identity): Observable<Attribute[]> {
    return this.http.get<Attribute[]>(this.config.get().apiUrl +
      '/reclaim/attributes/' + identity.name);
  }

  addAttribute(identity: Identity, attribute: Attribute) {
    return this.http.post<Attribute>(this.config.get().apiUrl +
      '/reclaim/attributes/' + identity.name,
      attribute);
  }

  deleteAttribute(identity: Identity, attribute: Attribute) {
    return this.http.delete(this.config.get().apiUrl + '/reclaim/attributes/' +
      identity.name + '/' + attribute.id);
  }

  getTickets(identity: Identity): Observable<Ticket[]> {
    return this.http.get<Ticket[]>(this.config.get().apiUrl +
      '/reclaim/tickets/' + identity.name);
  }

  revokeTicket(ticket: Ticket) {
    return this.http.post<Ticket>(this.config.get().apiUrl + '/reclaim/revoke',
      ticket);
  }

  getCredentials(identity: Identity): Observable<Credential[]> {
    return this.http.get<Credential[]>(this.config.get().apiUrl +
      '/reclaim/credential/' + identity.name);
  }

  addCredential(identity: Identity, credential: Credential) {
    var json = {
      "name": credential.name,
      "value": credential.value,
      "type": credential.type
    }
    return this.http.post(this.config.get().apiUrl +
      '/reclaim/credential/' + identity.name,
      json);
  }

  deleteCredential(identity: Identity, credential: Credential) {
    return this.http.delete(this.config.get().apiUrl + '/reclaim/credential/' +
      identity.name + '/' + credential.id);
  }
}