fix(geschichte): make the documented error-code contract real
GESCHICHTE_TYPE_IMMUTABLE and JOURNEY_NOTE_TOO_LONG were declared in errors.ts, translated, and documented — but never existed in the backend. update() now rejects a type change with 409 (omitted/same type still pass); note length is enforced at 2000 with its own code, matching the frontend maxlength and the i18n message (resolves the #793 discrepancy in favour of the spec). JOURNEY_ITEM_NOT_IN_JOURNEY is deleted everywhere instead — the deliberate 404 posture for cross-journey item ids must not leak existence via a distinct code. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -47,7 +47,6 @@ export type ErrorCode =
|
||||
| 'DUPLICATE_RELATIONSHIP'
|
||||
| 'GESCHICHTE_NOT_FOUND'
|
||||
| 'JOURNEY_ITEM_NOT_FOUND'
|
||||
| 'JOURNEY_ITEM_NOT_IN_JOURNEY'
|
||||
| 'JOURNEY_ITEM_POSITION_CONFLICT'
|
||||
| 'JOURNEY_AT_CAPACITY'
|
||||
| 'JOURNEY_NOTE_TOO_LONG'
|
||||
@@ -174,8 +173,6 @@ export function getErrorMessage(code: ErrorCode | string | undefined): string {
|
||||
return m.error_geschichte_not_found();
|
||||
case 'JOURNEY_ITEM_NOT_FOUND':
|
||||
return m.error_journey_item_not_found();
|
||||
case 'JOURNEY_ITEM_NOT_IN_JOURNEY':
|
||||
return m.error_journey_item_not_in_journey();
|
||||
case 'JOURNEY_ITEM_POSITION_CONFLICT':
|
||||
return m.error_journey_item_position_conflict();
|
||||
case 'JOURNEY_AT_CAPACITY':
|
||||
|
||||
Reference in New Issue
Block a user