@autofleet/network 1.2.9-alpha-8 → 1.2.9-alpha-10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +35 -7
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  const axios = require('axios');
2
- const http = require('http');
3
- const https = require('https');
4
2
  const axiosRetry = require('axios-retry');
3
+ const { Logger } = require('@autofleet/node-common');
5
4
  const qs = require('qs');
6
5
  const httpAdapter = require('axios/lib/adapters/http');
7
6
  const merge = require('deepmerge');
@@ -29,6 +28,7 @@ const HTTPMethods = [
29
28
  ];
30
29
 
31
30
  const defaultSettings = {
31
+ timeout: 10000,
32
32
  headers: {
33
33
  'X-AF-AUTH': 'ANYONE',
34
34
  'X-IAF-ORIGIN-SERVICE': process.env.AF_SERVICE_NAME || null,
@@ -44,8 +44,12 @@ module.exports = class Network {
44
44
  constructor(settings = {}) {
45
45
  this.settings = merge(defaultSettings, settings);
46
46
  if (this.settings.keepAlive) {
47
- const keepaliveAgent = new Agent();
48
- const keepaliveHttpsAgent = new HttpsAgent();
47
+ const keepaliveAgent = new Agent({
48
+ maxSockets: 1000
49
+ });
50
+ const keepaliveHttpsAgent = new HttpsAgent({
51
+ maxSockets: 1000
52
+ });
49
53
  this.settings.httpAgent = keepaliveAgent;
50
54
  this.settings.httpsAgent = keepaliveHttpsAgent;
51
55
  delete this.settings.keepAlive;
@@ -63,10 +67,10 @@ module.exports = class Network {
63
67
  }
64
68
  }
65
69
 
66
- this.axios = axios.create(this.settings);
67
- // this.addRetry(settings);
70
+ this.axios = settings.cache ? setup(this.settings) : axios.create(this.settings);
71
+ this.addRetry(settings);
68
72
  this.buildClassHttpMethods();
69
- // this.addLogs();
73
+ this.addLogs();
70
74
  }
71
75
 
72
76
  addRetry(settings) {
@@ -77,6 +81,30 @@ module.exports = class Network {
77
81
  });
78
82
  }
79
83
 
84
+ addLogs() {
85
+ const logger = Logger();
86
+ this.axios.interceptors.request.use((request) => {
87
+ logger.info(`Start Request: [${request.method.toUpperCase()}] ${request.baseURL} ${request.url}`, {
88
+ headers: request.headers,
89
+ query: request.query,
90
+ body: request.body,
91
+ params: request.params,
92
+ });
93
+ return request;
94
+ });
95
+
96
+ this.axios.interceptors.response.use((response) => {
97
+ logger.info(`Finish Request: [${response.config.method.toUpperCase()} ${response.config.url}`);
98
+ return response;
99
+ }, (error) => {
100
+ logger.error('test dor', {
101
+ req: error.request,
102
+ })
103
+ logger.error('Finish Request with error', { status: error.status, data: error.response && error.response.data });
104
+ throw error;
105
+ });
106
+ }
107
+
80
108
  createBaseUrl() {
81
109
  if (!this.settings.serviceUrl && !this.settings.serviceName) {
82
110
  throw new Error('At least one of the settings Missing serviceUrl or serviceName');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autofleet/network",
3
- "version": "1.2.9-alpha-8",
3
+ "version": "1.2.9-alpha-10",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {