feat(desktop): report current user online clients

This commit is contained in:
2026-05-06 18:25:05 +08:00
parent 930f095c64
commit 47681ab1f5
12 changed files with 297 additions and 12 deletions
@@ -63,6 +63,7 @@ type DesktopClientRepository interface {
Heartbeat(ctx context.Context, params HeartbeatDesktopClientParams) (*DesktopClient, error)
Revoke(ctx context.Context, id uuid.UUID, workspaceID int64) (*DesktopClient, error)
ListByWorkspace(ctx context.Context, workspaceID int64) ([]DesktopClient, error)
ListByUser(ctx context.Context, tenantID, workspaceID, userID int64) ([]DesktopClient, error)
}
type desktopClientRepository struct {
@@ -156,6 +157,23 @@ func (r *desktopClientRepository) ListByWorkspace(ctx context.Context, workspace
return nil, err
}
return desktopClientsFromGenerated(rows), nil
}
func (r *desktopClientRepository) ListByUser(ctx context.Context, tenantID, workspaceID, userID int64) ([]DesktopClient, error) {
rows, err := r.q.ListDesktopClientsByUser(ctx, generated.ListDesktopClientsByUserParams{
TenantID: tenantID,
WorkspaceID: workspaceID,
UserID: userID,
})
if err != nil {
return nil, err
}
return desktopClientsFromGenerated(rows), nil
}
func desktopClientsFromGenerated(rows []generated.DesktopClient) []DesktopClient {
items := make([]DesktopClient, 0, len(rows))
for _, row := range rows {
item := desktopClientFromGenerated(row)
@@ -163,7 +181,7 @@ func (r *desktopClientRepository) ListByWorkspace(ctx context.Context, workspace
items = append(items, *item)
}
}
return items, nil
return items
}
func desktopClientFromGenerated(row generated.DesktopClient) *DesktopClient {