refactor(domain): split updateFeedRecord into renameFeed and editFeed

The inPlace boolean hid two distinct intentions. Replace it with two
intention-revealing operations backed by Feed.rename (presentational,
never touches expiry) and Feed.edit (full edit, recomputes expiry,
rejects expired). Add FeedRepository.saveConfig so these config-only
edits don't re-write (and risk clobbering) the email index.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Julien Herr
2026-05-24 00:35:07 +02:00
parent c45f6677fe
commit 05388b45c8
6 changed files with 95 additions and 53 deletions
+2 -2
View File
@@ -5,7 +5,7 @@ import { Env, FeedConfig } from "../../types";
import { apiAuthMiddleware } from "../../lib/auth";
import {
createFeedRecord,
updateFeedRecord,
editFeed,
deleteFeedRecord,
} from "../../lib/feed-service";
import { deleteAttachmentsForEmails } from "../admin/helpers";
@@ -203,7 +203,7 @@ apiApp.openapi(
const env = c.env;
const { feedId } = c.req.valid("param");
const body = c.req.valid("json");
const result = await updateFeedRecord(env, feedId, {
const result = await editFeed(env, feedId, {
title: body.title,
description: body.description,
language: body.language,