1 | const SriClient = require('../sri-client.js');
|
2 | const SriClientError = require('../sri-client-error');
|
3 | const commonUtils = require('../common-utils');
|
4 |
|
5 | module.exports = function(configuration) {
|
6 |
|
7 |
|
8 | return ['$http', '$q', function ($http, $q) {
|
9 |
|
10 | class NgClient extends SriClient {
|
11 | constructor(config = {}) {
|
12 | super(config);
|
13 | this.cache.initialise();
|
14 | }
|
15 |
|
16 | |
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 | getRaw(href, params, options = {}) {
|
26 | var defer = $q.defer();
|
27 | var baseUrl = this.getBaseUrl(options);
|
28 | $http({
|
29 | method: 'GET',
|
30 | url: baseUrl + commonUtils.parametersToString(href, params),
|
31 | headers: options.headers,
|
32 | timeout: options.cancelPromise,
|
33 | transformResponse: function (value) {
|
34 | return options.raw ? value : JSON.parse(value);
|
35 | }
|
36 | }).then(function (response) {
|
37 | defer.resolve(response.data);
|
38 | }, function (response) {
|
39 | var error = handleError(response.data, response.status, response.headers, href);
|
40 | defer.reject(new SriClientError(error));
|
41 | });
|
42 | return defer.promise;
|
43 | }
|
44 |
|
45 | sendPayload(href, payload, options = {}, method) {
|
46 | var defer = $q.defer();
|
47 | const baseUrl = this.getBaseUrl(options);
|
48 | $http({
|
49 | method: method,
|
50 | url: baseUrl + href,
|
51 | data: payload,
|
52 | contentType: 'application/json; charset=utf-8',
|
53 | dataType: 'json',
|
54 | headers: options.headers,
|
55 | timeout: options.cancelPromise
|
56 | }).then(function(response) {
|
57 | var body = response.data || {};
|
58 | if(typeof body === 'object') {
|
59 | body.getResponseHeader = response.headers;
|
60 | }
|
61 | defer.resolve(body);
|
62 | }, function (response) {
|
63 | var error = handleError(response.data, response.status, response.headers, href);
|
64 | defer.reject(new SriClientError(error));
|
65 | });
|
66 | return defer.promise;
|
67 | }
|
68 |
|
69 | delete(href, options = {}) {
|
70 | var defer = $q.defer();
|
71 | var baseUrl = this.getBaseUrl(options);
|
72 | $http({
|
73 | method: 'DELETE',
|
74 | url: baseUrl + href,
|
75 | dataType: 'json',
|
76 | headers: options.headers,
|
77 | timeout: options.cancelPromise
|
78 | }).then(function (response) {
|
79 | defer.resolve(response.data);
|
80 | }, function (response) {
|
81 | var error = handleError(response.data, response.status, response.headers, href);
|
82 | defer.reject(new SriClientError(error));
|
83 | });
|
84 | return defer.promise;
|
85 | }
|
86 | }
|
87 |
|
88 | const handleError = function (body, status, headers, href) {
|
89 | return {
|
90 | status: status || null,
|
91 | body: body,
|
92 | getResponseHeader: headers
|
93 | };
|
94 | };
|
95 |
|
96 | return new NgClient(configuration);
|
97 | }];
|
98 | };
|