fix(subscribers): pass user_type to subscribe/unsubscribe API for correct agent handling
Root cause: backend hardcoded UserType="member" in subscribe/unsubscribe handlers, so unsubscribing an agent actually tried to delete a member record (no-op), and the WS event broadcast wrong user_type causing other subscribers' UI to break. - Backend: accept optional user_type in subscribe/unsubscribe request body - Frontend: pass userType through API client to backend - Fixes: clicking agent checkbox no longer affects member subscriptions Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
df6f6584c3
commit
b8fa71462a
3 changed files with 29 additions and 13 deletions
|
|
@ -206,17 +206,23 @@ export class ApiClient {
|
|||
return this.fetch(`/api/issues/${issueId}/subscribers`);
|
||||
}
|
||||
|
||||
async subscribeToIssue(issueId: string, userId?: string): Promise<void> {
|
||||
async subscribeToIssue(issueId: string, userId?: string, userType?: string): Promise<void> {
|
||||
const body: Record<string, string> = {};
|
||||
if (userId) body.user_id = userId;
|
||||
if (userType) body.user_type = userType;
|
||||
await this.fetch(`/api/issues/${issueId}/subscribe`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify(userId ? { user_id: userId } : {}),
|
||||
body: JSON.stringify(body),
|
||||
});
|
||||
}
|
||||
|
||||
async unsubscribeFromIssue(issueId: string, userId?: string): Promise<void> {
|
||||
async unsubscribeFromIssue(issueId: string, userId?: string, userType?: string): Promise<void> {
|
||||
const body: Record<string, string> = {};
|
||||
if (userId) body.user_id = userId;
|
||||
if (userType) body.user_type = userType;
|
||||
await this.fetch(`/api/issues/${issueId}/unsubscribe`, {
|
||||
method: "POST",
|
||||
body: JSON.stringify(userId ? { user_id: userId } : {}),
|
||||
body: JSON.stringify(body),
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue