feat(desktop): report current user online clients
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user