UNPKG

3.14 kBJavaScriptView Raw
1const SriClient = require('../sri-client.js');
2const SriClientError = require('../sri-client-error');
3const commonUtils = require('../common-utils');
4
5module.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 /*getBaseUrl(options) {
17 var baseUrl = options.baseUrl || configuration.config.baseUrl;
18 if (!baseUrl) {
19 console.error('There is no baseUrl configured. Do sriClientConfiguration.set(parameters) to configure the vsko-sri-client module.');
20 return null;
21 }
22 return baseUrl;
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};