Skip to content

Commit b2ecc8a

Browse files
authored
Merge pull request #768 from rocket-admin/backend_development
fix: Handle axios error in TableActionActivationService
2 parents e5232a8 + 5f56f9c commit b2ecc8a

3 files changed

Lines changed: 224 additions & 57 deletions

File tree

backend/src/entities/table-actions/table-actions-module/table-action-activation.service.ts

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ export class TableActionActivationService {
185185
let operationResult = OperationResultStatusEnum.unknown;
186186
const dataAccessObject = getDataAccessObject(foundConnection);
187187
const tablePrimaryKeys = await dataAccessObject.getTablePrimaryColumns(tableName, null);
188+
188189
const primaryKeyValuesArray: Array<Record<string, unknown>> = [];
189190
for (const primaryKeyInBody of request_body) {
190191
for (const primaryKey of tablePrimaryKeys) {
@@ -204,13 +205,29 @@ export class TableActionActivationService {
204205
$$_tableName: tableName,
205206
});
206207
const autoadminSignatureHeader = Encryptor.hashDataHMACexternalKey(foundConnection.signing_key, actionRequestBody);
207-
const result = await axios.post(tableAction.url, actionRequestBody, {
208-
headers: { 'Rocketadmin-Signature': autoadminSignatureHeader, 'Content-Type': 'application/json' },
209-
maxRedirects: 0,
210-
validateStatus: function (status) {
211-
return status <= 599;
212-
},
213-
});
208+
209+
let result;
210+
try {
211+
result = await axios.post(tableAction.url, actionRequestBody, {
212+
headers: { 'Rocketadmin-Signature': autoadminSignatureHeader, 'Content-Type': 'application/json' },
213+
maxRedirects: 0,
214+
validateStatus: function (status) {
215+
return status <= 599;
216+
},
217+
});
218+
} catch (error) {
219+
if (axios.isAxiosError(error)) {
220+
const errorMessage =
221+
error.response?.data?.message || error.response?.data?.errorMessage || error.message || 'An error occurred';
222+
const responseStatus = error.response?.status || 500;
223+
throw new HttpException(
224+
{
225+
message: errorMessage,
226+
},
227+
responseStatus,
228+
);
229+
}
230+
}
214231
const operationStatusCode = result.status;
215232
if (operationStatusCode >= 200 && operationStatusCode < 300) {
216233
operationResult = OperationResultStatusEnum.successfully;
@@ -228,9 +245,11 @@ export class TableActionActivationService {
228245
};
229246
}
230247
if (operationStatusCode >= 400 && operationStatusCode <= 599) {
248+
const errorMessage =
249+
result?.data?.message || result?.data?.errorMessage || result?.data?.response || 'An error occurred';
231250
throw new HttpException(
232251
{
233-
message: result.data,
252+
message: errorMessage,
234253
},
235254
operationStatusCode,
236255
);

shared-code/package.json

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,26 @@
55
"type": "module",
66
"dependencies": {
77
"@types/multer": "^1.4.11",
8-
"axios": "^1.6.8",
9-
"csv": "^6.3.8",
8+
"axios": "^1.7.3",
9+
"csv": "^6.3.10",
1010
"get-port": "^7.1.0",
1111
"jsonwebtoken": "^9.0.2",
1212
"knex": "^3.1.0",
13-
"lru-cache": "^10.2.0",
14-
"mysql2": "^3.9.4",
15-
"oracledb": "^6.4.0",
13+
"lru-cache": "^11.0.0",
14+
"mysql2": "^3.11.0",
15+
"oracledb": "^6.6.0",
1616
"p-queue": "^8.0.1",
17-
"pg": "^8.11.5",
17+
"pg": "^8.12.0",
1818
"pg-copy-streams": "^6.0.6",
19-
"pg-query-stream": "^4.5.5",
19+
"pg-query-stream": "^4.6.0",
2020
"ssh2": "^1.15.0",
21-
"tedious": "^18.1.0",
21+
"tedious": "^18.3.0",
2222
"tunnel-ssh": "5.1.2"
2323
},
2424
"devDependencies": {
25-
"@types/oracledb": "^6.4.0",
25+
"@types/oracledb": "^6.5.1",
2626
"@types/pg-copy-streams": "^1.2.5",
27-
"prettier": "3.2.5",
28-
"typescript": "^5.4.5"
27+
"prettier": "3.3.3",
28+
"typescript": "^5.5.4"
2929
}
3030
}

0 commit comments

Comments
 (0)