refactor: internalize setRegisteredGroup export

This commit is contained in:
Eyejoker
2026-03-31 22:27:17 +09:00
parent 6b7367c072
commit 1f1842773e
5 changed files with 67 additions and 53 deletions

View File

@@ -1987,7 +1987,10 @@ export function getRegisteredGroup(
return getLegacyRegisteredGroup(db, jid, agentType);
}
export function setRegisteredGroup(jid: string, group: RegisteredGroup): void {
function writeLegacyRegisteredGroupAndSyncRoomSettings(
jid: string,
group: RegisteredGroup,
): void {
const existingRoomMode = getStoredRoomModeRow(jid);
if (!isValidGroupFolder(group.folder)) {
throw new Error(`Invalid group folder "${group.folder}" for JID ${jid}`);
@@ -2017,6 +2020,17 @@ export function setRegisteredGroup(jid: string, group: RegisteredGroup): void {
tx();
}
/**
* @internal Test/migration helper for seeding legacy capability rows.
* Runtime code must use assignRoom() so room_settings remains the explicit SSOT.
*/
export function _setRegisteredGroupForTests(
jid: string,
group: RegisteredGroup,
): void {
writeLegacyRegisteredGroupAndSyncRoomSettings(jid, group);
}
export function assignRoom(
chatJid: string,
input: AssignRoomInput,
@@ -3337,7 +3351,7 @@ function migrateJsonState(): void {
if (groups) {
for (const [jid, group] of Object.entries(groups)) {
try {
setRegisteredGroup(jid, group);
writeLegacyRegisteredGroupAndSyncRoomSettings(jid, group);
} catch (err) {
logger.warn(
{ jid, folder: group.folder, err },