refactor(post): remove now-dead PostAction::AlreadyPublished

UpdatePost::execute used to return AlreadyPublished for the Published
short-circuit. This PR widened the short-circuit to four terminal
statuses and consolidated them under PostAction::Finalized — so the
old enum case stopped being emitted, and every caller already had a
defensive in_array([AlreadyPublished, Finalized], ...).

Audit before removal: nothing emits AlreadyPublished anymore (only
UpdatePost::execute returns Actions, and it returns Finalized for
the whole terminal set), no test references the case, and no string
'already_published' exists elsewhere in app/resources/tests/lang.

- Drop the enum case
- Simplify the three in_array checks to a direct === Finalized
- Delete the dead App/PostController branch that flashed the old
  cannot_edit_published message (its successor branch with
  cannot_edit_finalized stays). The old i18n key is left in lang/
  for now — orphan but harmless, can ressuscitate if a similar
  flash is added back.
This commit is contained in:
Paulo Castellano 2026-05-19 13:06:13 -03:00
parent 27f27b6683
commit edec58af81
5 changed files with 3 additions and 11 deletions

View file

@ -6,7 +6,6 @@
enum Action: string
{
case AlreadyPublished = 'already_published';
case Finalized = 'finalized';
case Publishing = 'publishing';
case Scheduled = 'scheduled';

View file

@ -67,7 +67,7 @@ public function update(UpdatePostRequest $request, Post $post): PostResource|Jso
$result = UpdatePost::execute($request->user()->currentWorkspace, $post, $request->validated());
if (in_array(data_get($result, 'action'), [PostAction::AlreadyPublished, PostAction::Finalized], true)) {
if (data_get($result, 'action') === PostAction::Finalized) {
return response()->json(
['message' => 'Cannot edit a published post.'],
Response::HTTP_UNPROCESSABLE_ENTITY

View file

@ -282,13 +282,6 @@ public function update(UpdatePostRequest $request, Post $post): RedirectResponse
$action = data_get($result, 'action');
if ($action === PostAction::AlreadyPublished) {
session()->flash('flash.banner', __('posts.flash.cannot_edit_published'));
session()->flash('flash.bannerStyle', 'danger');
return back();
}
if ($action === PostAction::Finalized) {
session()->flash('flash.banner', __('posts.flash.cannot_edit_finalized'));
session()->flash('flash.bannerStyle', 'danger');

View file

@ -47,7 +47,7 @@ public function handle(Request $request): Response|ResponseFactory
'scheduled_at' => $scheduledAt,
]);
if (in_array(data_get($result, 'action'), [PostAction::AlreadyPublished, PostAction::Finalized], true)) {
if (data_get($result, 'action') === PostAction::Finalized) {
return Response::error('Post is already published or in a terminal state.');
}

View file

@ -54,7 +54,7 @@ public function handle(Request $request): Response|ResponseFactory
$result = UpdatePost::execute($workspace, $post, $payload);
if (in_array(data_get($result, 'action'), [PostAction::AlreadyPublished, PostAction::Finalized], true)) {
if (data_get($result, 'action') === PostAction::Finalized) {
return Response::error('Cannot edit a published post.');
}