20 var options = { |
22 var options = { |
21 method: method, |
23 method: method, |
22 headers: headers, |
24 headers: headers, |
23 }; |
25 }; |
24 |
26 |
|
27 let queryparams = ''; |
25 if (data) { |
28 if (data) { |
26 options.body = JSON.stringify(data); |
29 if(method !== 'HEAD' && method !== 'GET' && data) { |
|
30 options.body = JSON.stringify(data); |
|
31 } |
|
32 else { |
|
33 queryparams = "?"+qs.stringify(data); |
|
34 } |
27 } |
35 } |
28 |
36 |
29 // TODO : use URL-module to build URL |
37 // TODO : use URL-module to build URL |
30 return new Request(this.baseURL + uri, options); |
38 return new Request(this.baseURL + uri + queryparams, options); |
31 } |
39 } |
32 |
40 |
33 getToken = () => { |
41 getToken = () => { |
34 const state = this.store.getState(); |
42 const state = this.store.getState(); |
35 return state['token']; |
43 return state.getIn(['authStatus', 'token']); |
|
44 } |
|
45 |
|
46 getClientId = () => { |
|
47 const state = this.store.getState(); |
|
48 return state.getIn(['authStatus', 'clientId']); |
36 } |
49 } |
37 |
50 |
38 hasToken = () => { |
51 hasToken = () => { |
39 const token = this.getToken(); |
52 const token = this.getToken(); |
40 |
53 |
41 return token !== null && token !== ''; |
54 return token !== null && token !== ''; |
42 } |
55 } |
43 |
56 |
44 createAuthorizedRequest = (method, uri, data) => { |
57 hasClientId = () => { |
|
58 const clientId = this.getClientId(); |
|
59 return clientId !== null && clientId !== ''; |
|
60 } |
45 |
61 |
46 var headers = new Headers(), |
62 createAuthorizedHeader = (headers) => { |
47 token = this.getToken() || ''; |
63 const token = this.getToken() || ''; |
48 headers.append("Authorization", "JWT " + token); |
64 headers.append("Authorization", "JWT " + token); |
|
65 return headers; |
|
66 } |
49 |
67 |
50 return this.createRequest(method, uri, data, headers); |
68 createClientIdHeader = (headers) => { |
|
69 const clientId = this.getClientId() || ''; |
|
70 headers.append("Auditlog-Client", clientId); |
|
71 return headers; |
51 } |
72 } |
52 |
73 |
53 request = (method, uri, data) => { |
74 request = (method, uri, data) => { |
54 var req = this.hasToken() ? this.createAuthorizedRequest(method, uri, data) : this.createRequest(method, uri, data); |
75 var headers = new Headers(); |
|
76 if(this.hasToken()) { |
|
77 headers = this.createAuthorizedHeader(headers); |
|
78 } |
|
79 if(this.hasClientId()) { |
|
80 headers = this.createClientIdHeader(headers); |
|
81 } |
|
82 var req = this.createRequest(method, uri, data, headers); |
55 return this.fetch(req, { credentials: 'include' }); |
83 return this.fetch(req, { credentials: 'include' }); |
56 } |
84 } |
57 |
85 |
58 get = (uri, data) => { |
86 get = (uri, data) => { |
59 return this.request('GET', uri, data); |
87 return this.request('GET', uri, data); |
63 return this.request('POST', uri, data); |
91 return this.request('POST', uri, data); |
64 } |
92 } |
65 |
93 |
66 put = (uri, data) => { |
94 put = (uri, data) => { |
67 return this.request('PUT', uri, data); |
95 return this.request('PUT', uri, data); |
|
96 } |
|
97 |
|
98 delete = (uri, data) => { |
|
99 return this.request('DELETE', uri, data); |
68 } |
100 } |
69 |
101 |
70 fetch = (req) => { |
102 fetch = (req) => { |
71 return new Promise((resolve, reject) => { |
103 return new Promise((resolve, reject) => { |
72 fetch(req) |
104 fetch(req) |