Skip to content

Commit ad9ad90

Browse files
committed
fix: update handling of newRecordId to prefer redirectToRecordId in error responses
1 parent 0c1330f commit ad9ad90

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

adminforth/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -574,14 +574,14 @@ class AdminForth implements IAdminForth {
574574
if (!resp || (typeof resp.ok !== 'boolean' && (!resp.error && !resp.newRecordId && !resp.redirectToRecordId))) {
575575
throw new Error(
576576
`Invalid return value from beforeSave hook. Expected: { ok: boolean, error?: string | null, newRecordId?: any, redirectToRecordId?: any }.\n` +
577-
`Note: Return { ok: false, error: null, newRecordId, redirectToRecordId } to stop creation and redirect to an existing record.`
577+
`Note: Return { ok: false, error: null, redirectToRecordId } (preferred) or { ok: false, error: null, newRecordId } (deprecated) to stop creation and redirect to an existing record.`
578578
);
579579
}
580580
if (resp.ok === false && !resp.error) {
581581
const { error, ok, newRecordId, redirectToRecordId } = resp;
582582
return {
583583
error: error ?? 'Operation aborted by hook',
584-
newRecordId: newRecordId,
584+
newRecordId: redirectToRecordId ? redirectToRecordId : newRecordId,
585585
redirectToRecordId: redirectToRecordId
586586
};
587587
}

adminforth/modules/restApi.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1280,7 +1280,11 @@ export default class AdminForthRestAPI implements IAdminForthRestAPI {
12801280
extra: { body, query, headers, cookies, requestUrl, response }
12811281
});
12821282
if (createRecordResponse.error) {
1283-
return { error: createRecordResponse.error, ok: false, newRecordId: createRecordResponse.newRecordId, redirectToRecordId: createRecordResponse.redirectToRecordId };
1283+
return {
1284+
error: createRecordResponse.error,
1285+
ok: false,
1286+
newRecordId: createRecordResponse.redirectToRecordId ? createRecordResponse.redirectToRecordId :createRecordResponse.newRecordId,
1287+
redirectToRecordId: createRecordResponse.redirectToRecordId };
12841288
}
12851289
const connector = this.adminforth.connectors[resource.dataSource];
12861290

0 commit comments

Comments
 (0)