@autofleet/node-common 1.1.37 → 1.1.40

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.
package/logger/index.js CHANGED
@@ -1,4 +1,12 @@
1
1
  const winston = require('winston');
2
+ const { LoggingWinston } = require('@google-cloud/logging-winston');
3
+
4
+ const loggingWinston = new LoggingWinston({
5
+ serviceContext: {
6
+ service: process.env.AF_SERVICE_NAME,
7
+ version: '1.0.1',
8
+ },
9
+ });
2
10
 
3
11
  const { createLogger } = winston;
4
12
  require('dotenv').config();
@@ -36,8 +44,11 @@ const enumerateErrorFormat = winston.format((info) => {
36
44
  });
37
45
 
38
46
  const getFormat = () => {
39
- if (env.NODE_ENV === 'producation') {
40
- return winston.format.json();
47
+ if (env.NODE_ENV === 'production') {
48
+ return winston.format.combine(
49
+ enumerateErrorFormat(),
50
+ winston.format.json(),
51
+ );
41
52
  }
42
53
 
43
54
  return winston.format.combine(
@@ -52,7 +63,7 @@ const createLoggerInstance = (level, transports) => {
52
63
  const logger = createLogger({
53
64
  level,
54
65
  format: getFormat(),
55
- transports: [new winston.transports.Console()],
66
+ transports: [new winston.transports.Console(), loggingWinston],
56
67
  exceptionHandlers: transports,
57
68
  exitOnError: false,
58
69
  });
package/network/index.js CHANGED
@@ -28,6 +28,16 @@ const defaultSettings = {
28
28
  paramsSerializer: params => qs.stringify(params, { arrayFormat: 'brackets' }),
29
29
  };
30
30
 
31
+ const getHttpRequestObject = response => ({
32
+ httpRequest: {
33
+ status: response.status,
34
+ requestUrl: response.config.url,
35
+ query: response.config.params,
36
+ body: response.config.data,
37
+ requestMethod: response.config.method.toUpperCase(),
38
+ },
39
+ });
40
+
31
41
  module.exports = class Network {
32
42
  constructor(settings = {}) {
33
43
  this.settings = Object.assign({}, defaultSettings, settings);
@@ -59,12 +69,11 @@ module.exports = class Network {
59
69
  });
60
70
 
61
71
  this.axios.interceptors.response.use((response) => {
62
- logger.info(`Finish Request: [${response.config.method.toUpperCase()} ${response.config.url}`);
72
+ logger.info(`Finish Request: [${response.config.method.toUpperCase()} ${response.config.url}`, getHttpRequestObject(response));
63
73
  return response;
64
74
  }, (error) => {
65
- logger.error('Finish Request with error', { status: error.status, data: error.response && error.response.data });
66
- // throw error;
67
- return error;
75
+ logger.error('Finish Request with error', { data: error.response ? error.response.data : undefined, ...getHttpRequestObject(error.response || error) });
76
+ throw error;
68
77
  });
69
78
  }
70
79
 
@@ -28,17 +28,17 @@ describe('Network', () => {
28
28
  expect(response.data.two).toBe(2);
29
29
  });
30
30
 
31
- // it('Getting 404', async () => {
32
- // const n = new Network({ serviceUrl: 'https://www.apple.com' });
31
+ it('Getting 404', async () => {
32
+ const n = new Network({ serviceUrl: 'https://www.apple.com' });
33
33
 
34
- // const action = async () => n.get('/resource', {
35
- // query: {
36
- // a: 'b',
37
- // },
38
- // });
34
+ const action = async () => n.get('/resource', {
35
+ query: {
36
+ a: 'b',
37
+ },
38
+ });
39
39
 
40
- // expect(action()).rejects.toThrow(Error);
41
- // });
40
+ expect(action()).rejects.toThrow(Error);
41
+ });
42
42
 
43
43
  test('Retry 1 time', async () => {
44
44
  nock('https://www.apple2.com')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@autofleet/node-common",
3
- "version": "1.1.37",
3
+ "version": "1.1.40",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "coverage": "jest --coverage --forceExit --runInBand",