Shared rooms and transcripts

This commit is contained in:
2025-02-10 14:59:18 +01:00
parent 88bbf8b764
commit 326a4688d8
3 changed files with 12 additions and 6 deletions

View File

@@ -7,7 +7,7 @@ from fastapi import HTTPException
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from reflector.db import database, metadata from reflector.db import database, metadata
from reflector.db.transcripts import generate_uuid4 from reflector.db.transcripts import generate_uuid4
from sqlalchemy.sql import false from sqlalchemy.sql import false, or_
rooms = sqlalchemy.Table( rooms = sqlalchemy.Table(
"room", "room",
@@ -77,7 +77,9 @@ class RoomController:
""" """
query = rooms.select() query = rooms.select()
if user_id is not None: if user_id is not None:
query = query.where(rooms.c.user_id == user_id) query = query.where(or_(rooms.c.user_id == user_id, rooms.c.is_shared))
else:
query = query.where(rooms.c.is_shared)
if order_by is not None: if order_by is not None:
field = getattr(rooms.c, order_by[1:]) field = getattr(rooms.c, order_by[1:])

View File

@@ -16,7 +16,7 @@ from reflector.processors.types import Word as ProcessorWord
from reflector.settings import settings from reflector.settings import settings
from reflector.storage import Storage from reflector.storage import Storage
from sqlalchemy import Enum from sqlalchemy import Enum
from sqlalchemy.sql import false from sqlalchemy.sql import false, or_
class SourceKind(enum.StrEnum): class SourceKind(enum.StrEnum):
@@ -334,7 +334,11 @@ class TranscriptController:
) )
if user_id: if user_id:
query = query.where(transcripts.c.user_id == user_id) query = query.where(
or_(transcripts.c.user_id == user_id, rooms.c.is_shared)
)
else:
query = query.where(rooms.c.is_shared)
if source_kind: if source_kind:
query = query.where(transcripts.c.source_kind == source_kind) query = query.where(transcripts.c.source_kind == source_kind)

View File

@@ -443,7 +443,7 @@ export default function RoomsList() {
</Modal> </Modal>
</Flex> </Flex>
<VStack align="start" mb={6} pt={4} gap={4}> <VStack align="start" mb={10} pt={4} gap={4}>
<Heading size="md">My Rooms</Heading> <Heading size="md">My Rooms</Heading>
{myRooms.length > 0 ? ( {myRooms.length > 0 ? (
myRooms.map((roomData) => ( myRooms.map((roomData) => (
@@ -497,7 +497,7 @@ export default function RoomsList() {
)} )}
</VStack> </VStack>
<VStack align="start"> <VStack align="start" pt={4} gap={4}>
<Heading size="md">Shared Rooms</Heading> <Heading size="md">Shared Rooms</Heading>
{sharedRooms.length > 0 ? ( {sharedRooms.length > 0 ? (
sharedRooms.map((roomData) => ( sharedRooms.map((roomData) => (