refactor(db): collapse three markRead variants into markMessageReadForReader (P1-16)
This commit is contained in:
1 parent
62050c9c05
commit
43a03aa5e9
4 files changed
+3
-35
No files matched your search
@@ -168,7 +168,7 @@ export function registerMessageRoutes(server: AgentApiServer) {
|
||||
server.json(res, 403, { error: "This message is not visible to the current agent" });
|
||||
return;
|
||||
}
|
||||
db.markAgentMessageRead(requireParam(params, "messageId"), companyId, token.agentId);
|
||||
db.markMessageReadForReader(requireParam(params, "messageId"), companyId, token.agentId);
|
||||
onDomainChanged();
|
||||
server.json(res, 200, { ok: true });
|
||||
});
|
||||
|
||||
@@ -18,9 +18,7 @@ export class AppDatabase extends AppDatabaseBase {
|
||||
getAgentMessage(messageId: string, companyId: string) { return this.messages.getAgentMessage(messageId, companyId); }
|
||||
listAgentMessages(companyId: string, opts?: { agentId?: string; messageId?: string; channel?: string; channelTargetId?: string | null; unreadOnly?: boolean; limit?: number }) { return this.messages.listAgentMessages(companyId, opts); }
|
||||
searchMessages(companyId: string, query: string, opts?: { channel?: string; channelTargetId?: string | null; limit?: number }) { return this.messages.searchMessages(companyId, query, opts); }
|
||||
markMessageRead(messageId: string, companyId: string) { return this.messages.markMessageRead(messageId, companyId); }
|
||||
markMessageReadForReader(messageId: string, companyId: string, readerAgentId?: string | null) { return this.messages.markMessageReadForReader(messageId, companyId, readerAgentId); }
|
||||
markAgentMessageRead(messageId: string, companyId: string, agentId: string) { return this.messages.markAgentMessageRead(messageId, companyId, agentId); }
|
||||
|
||||
// ─── Social & Browser Actions ──────────────────────────────────────────────
|
||||
|
||||
|
||||
@@ -227,19 +227,6 @@ export function buildMessageMethods(
|
||||
return readAll<AgentMessageRecord>(sql, ...params);
|
||||
},
|
||||
|
||||
markMessageRead(messageId: string, companyId: string): void {
|
||||
const ts = nowIso();
|
||||
getDb()
|
||||
.prepare(
|
||||
`insert into agent_message_reads (message_id, agent_id, read_at)
|
||||
select id, ?, ?
|
||||
from agent_messages
|
||||
where id = ? and company_id = ?
|
||||
on conflict(message_id, agent_id) do update set read_at = excluded.read_at`,
|
||||
)
|
||||
.run(BOARD_READER_ID, ts, messageId, companyId);
|
||||
},
|
||||
|
||||
markMessageReadForReader(
|
||||
messageId: string,
|
||||
companyId: string,
|
||||
@@ -256,22 +243,5 @@ export function buildMessageMethods(
|
||||
)
|
||||
.run(readerAgentId ?? BOARD_READER_ID, ts, messageId, companyId);
|
||||
},
|
||||
|
||||
markAgentMessageRead(
|
||||
messageId: string,
|
||||
companyId: string,
|
||||
agentId: string,
|
||||
): void {
|
||||
const ts = nowIso();
|
||||
getDb()
|
||||
.prepare(
|
||||
`insert into agent_message_reads (message_id, agent_id, read_at)
|
||||
select id, ?, ?
|
||||
from agent_messages
|
||||
where id = ? and company_id = ?
|
||||
on conflict(message_id, agent_id) do update set read_at = excluded.read_at`,
|
||||
)
|
||||
.run(agentId, ts, messageId, companyId);
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -1195,7 +1195,7 @@ describe("Agent Messages", () => {
|
||||
body: "Hello",
|
||||
});
|
||||
|
||||
db.markMessageRead(msgId, companyId);
|
||||
db.markMessageReadForReader(msgId, companyId);
|
||||
const messages = db.listAgentMessages(companyId);
|
||||
const updatedMessage = messages.find((message) => message.id === msgId);
|
||||
expect(updatedMessage?.readAt).toBeTruthy();
|
||||
@@ -1219,7 +1219,7 @@ describe("Agent Messages", () => {
|
||||
expect(recipientViewBefore).toHaveLength(1);
|
||||
expect(recipientViewBefore[0].id).toBe(msgId);
|
||||
|
||||
db.markAgentMessageRead(msgId, companyId, agentBId);
|
||||
db.markMessageReadForReader(msgId, companyId, agentBId);
|
||||
|
||||
const recipientViewAfter = db.listAgentMessages(companyId, { agentId: agentBId, unreadOnly: true });
|
||||
expect(recipientViewAfter).toHaveLength(0);
|
||||
|
||||
Reference in new issue
Block a user