Skip to content

Commit d14ca23

Browse files
authored
Merge branch 'master' into chore/cache-find-currency-from-id-result
2 parents 282a30b + 0e07b30 commit d14ca23

File tree

5 files changed

+77
-23
lines changed

5 files changed

+77
-23
lines changed

packages/request-node/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
"graphql-request": "6.1.0",
5959
"http-shutdown": "1.2.2",
6060
"http-status-codes": "2.1.4",
61+
"morgan": "1.10.0",
6162
"shelljs": "0.8.5",
6263
"tslib": "2.5.0",
6364
"yargs": "17.6.2"
@@ -66,6 +67,7 @@
6667
"@types/cors": "2.8.9",
6768
"@types/express": "4.17.17",
6869
"@types/jest": "29.5.6",
70+
"@types/morgan": "1.9.9",
6971
"@types/node": "18.11.9",
7072
"@types/supertest": "2.0.10",
7173
"@types/yargs": "17.0.14",

packages/request-node/src/request/ipfsAdd.ts

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@ export default class IpfsAddHandler {
2424
// Retrieves data access layer
2525
let dataAccessResponse;
2626

27-
// Set the timeout from the value from config and convert seconds to milliseconds
28-
/* eslint-disable no-magic-numbers */
29-
clientRequest.setTimeout(getPersistTransactionTimeout() * 1000);
30-
3127
// Verifies if data send from post are correct
3228
// clientRequest.body is expected to contain data for data-acces layer:
3329
// transactionData: data of the transaction
@@ -43,17 +39,36 @@ export default class IpfsAddHandler {
4339
return;
4440
}
4541

42+
// Set the timeout from the value from config and convert seconds to milliseconds
43+
/* eslint-disable no-magic-numbers */
44+
clientRequest.setTimeout(getPersistTransactionTimeout() * 1000, () => {
45+
this.logger.error(`ipfsAdd timeout. clientRequest.body.data: ${clientRequest.body.data}`, [
46+
'timeout',
47+
]);
48+
serverResponse.status(StatusCodes.GATEWAY_TIMEOUT).send('ipfsAdd timeout');
49+
});
50+
4651
try {
4752
dataAccessResponse = await this.ipfsStorage.ipfsAdd(
4853
JSON.stringify(clientRequest.body.data),
4954
);
5055

51-
this.logger.debug(`ipfsAdd successfully completed`, ['metric', 'successRate']);
56+
this.logger.debug(
57+
`ipfsAdd successfully completed ${JSON.stringify({
58+
ipfsHash: dataAccessResponse.ipfsHash,
59+
ipfsSize: dataAccessResponse.ipfsSize,
60+
})}`,
61+
['metric', 'successRate'],
62+
);
5263

5364
serverResponse.status(StatusCodes.OK).send(dataAccessResponse);
5465
} catch (e) {
55-
this.logger.error(`ipfsAdd error: ${e}`);
56-
this.logger.debug(`ipfsAdd fail`, ['metric', 'successRate']);
66+
this.logger.error(
67+
`ipfsAdd fail ${JSON.stringify({
68+
error: e,
69+
data: clientRequest.body.data,
70+
})}`,
71+
);
5772

5873
serverResponse.status(StatusCodes.INTERNAL_SERVER_ERROR).send(e);
5974
}

packages/request-node/src/request/persistTransaction.ts

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ export default class PersistTransactionHandler {
3030
// Retrieves data access layer
3131
let dataAccessResponse: DataAccessTypes.IReturnPersistTransaction;
3232

33-
// Set the timeout from the value from config and convert seconds to milliseconds
34-
/* eslint-disable no-magic-numbers */
35-
clientRequest.setTimeout(getPersistTransactionTimeout() * 1000);
36-
3733
// Verifies if data send from post are correct
3834
// clientRequest.body is expected to contain data for data-acces layer:
3935
// transactionData: data of the transaction
@@ -46,11 +42,25 @@ export default class PersistTransactionHandler {
4642
serverResponse.status(StatusCodes.UNPROCESSABLE_ENTITY).send('Incorrect data');
4743
return;
4844
}
49-
try {
50-
const transactionHash: MultiFormatTypes.HashTypes.IHash = normalizeKeccak256Hash(
51-
clientRequest.body.transactionData,
45+
46+
const transactionHash: MultiFormatTypes.HashTypes.IHash = normalizeKeccak256Hash(
47+
clientRequest.body.transactionData,
48+
);
49+
50+
// Set the timeout from the value from config and convert seconds to milliseconds
51+
/* eslint-disable no-magic-numbers */
52+
clientRequest.setTimeout(getPersistTransactionTimeout() * 1000, () => {
53+
this.logger.error(
54+
`persistTransaction timeout ${JSON.stringify({
55+
transactionHash,
56+
channelId: clientRequest.body.channelId,
57+
})}`,
58+
['timeout'],
5259
);
60+
serverResponse.status(StatusCodes.GATEWAY_TIMEOUT).send('persistTransaction timeout');
61+
});
5362

63+
try {
5464
this.logger.debug(
5565
`Persisting Transaction: ${JSON.stringify({
5666
transactionHash,
@@ -67,10 +77,13 @@ export default class PersistTransactionHandler {
6777
);
6878

6979
dataAccessResponse.on('confirmed', async () => {
70-
this.logger.info(`Transaction confirmed: ${transactionHash.value}`, [
71-
'metric',
72-
'successRate',
73-
]);
80+
this.logger.info(
81+
`Transaction confirmed: ${JSON.stringify({
82+
transactionHash,
83+
channelId: clientRequest.body.channelId,
84+
})}`,
85+
['metric', 'successRate'],
86+
);
7487
});
7588

7689
// when the transaction fails, log an error
@@ -83,12 +96,25 @@ export default class PersistTransactionHandler {
8396
)}`);
8497
});
8598

86-
this.logger.debug(`persistTransaction successfully completed`, ['metric', 'successRate']);
99+
this.logger.debug(
100+
`persistTransaction successfully completed ${JSON.stringify({
101+
transactionHash,
102+
channelId: clientRequest.body.channelId,
103+
})}`,
104+
['metric', 'successRate'],
105+
);
87106

88107
serverResponse.status(StatusCodes.OK).send(dataAccessResponse);
89108
} catch (e) {
90-
this.logger.error(`persistTransaction error: ${e}`);
91-
this.logger.debug(`persistTransaction fail`, ['metric', 'successRate']);
109+
this.logger.error(
110+
`persistTransaction fail ${JSON.stringify({
111+
error: e,
112+
transactionHash,
113+
channelId: clientRequest.body.channelId,
114+
topics: clientRequest.body.topics,
115+
transactionData: clientRequest.body.transactionData,
116+
})}`,
117+
);
92118

93119
serverResponse.status(StatusCodes.INTERNAL_SERVER_ERROR).send(e);
94120
}

packages/request-node/src/requestNode.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import PersistTransactionHandler from './request/persistTransaction';
1111
import GetChannelsByTopicHandler from './request/getChannelsByTopic';
1212
import GetStatusHandler from './request/getStatus';
1313
import IpfsAddHandler from './request/ipfsAdd';
14+
import morgan from 'morgan';
1415

1516
// eslint-disable-next-line @typescript-eslint/no-var-requires
1617
const packageJson = require('../package.json');
@@ -133,6 +134,9 @@ export class RequestNode {
133134
// Enable all CORS requests
134135
this.express.use(cors());
135136

137+
// Enable logging of all requests
138+
this.express.use(morgan('combined'));
139+
136140
// Set the Request Node version to the header
137141
this.express.use((_, res, next) => {
138142
res.header(REQUEST_NODE_VERSION_HEADER, this.requestNodeVersion);

yarn.lock

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5319,6 +5319,13 @@
53195319
resolved "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.3.tgz"
53205320
integrity sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==
53215321

5322+
5323+
version "1.9.9"
5324+
resolved "https://registry.yarnpkg.com/@types/morgan/-/morgan-1.9.9.tgz#d60dec3979e16c203a000159daa07d3fb7270d7f"
5325+
integrity sha512-iRYSDKVaC6FkGSpEVVIvrRGw0DfJMiQzIn3qr2G5B3C//AWkulhXgaBd7tS9/J79GWSYMTHGs7PfI5b3Y8m+RQ==
5326+
dependencies:
5327+
"@types/node" "*"
5328+
53225329
53235330
version "0.5.0"
53245331
resolved "https://registry.npmjs.org/@types/multicoin-address-validator/-/multicoin-address-validator-0.5.0.tgz"
@@ -16876,9 +16883,9 @@ module-error@^1.0.1, module-error@^1.0.2:
1687616883
resolved "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz"
1687716884
integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA==
1687816885

16879-
morgan@^1.9.1:
16886+
morgan@1.10.0, morgan@^1.9.1:
1688016887
version "1.10.0"
16881-
resolved "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz"
16888+
resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"
1688216889
integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==
1688316890
dependencies:
1688416891
basic-auth "~2.0.1"

0 commit comments

Comments
 (0)