diff --git a/api/src/rehearsalhub/db/models.py b/api/src/rehearsalhub/db/models.py index 24c3f1f..3837a38 100755 --- a/api/src/rehearsalhub/db/models.py +++ b/api/src/rehearsalhub/db/models.py @@ -228,23 +228,14 @@ class AudioVersion(Base): version_number: Mapped[int] = mapped_column(Integer, nullable=False) label: Mapped[str | None] = mapped_column(String(255)) nc_file_path: Mapped[str] = mapped_column(Text, nullable=False) -<<<<<<< HEAD - nc_file_etag: Mapped[Optional[str]] = mapped_column(String(255)) - cdn_hls_base: Mapped[Optional[str]] = mapped_column(Text) - waveform_url: Mapped[Optional[str]] = mapped_column(Text) - waveform_peaks: Mapped[Optional[list]] = mapped_column(JSONB) - waveform_peaks_mini: Mapped[Optional[list]] = mapped_column(JSONB) - duration_ms: Mapped[Optional[int]] = mapped_column(Integer) - format: Mapped[Optional[str]] = mapped_column(String(10)) - file_size_bytes: Mapped[Optional[int]] = mapped_column(BigInteger) -======= nc_file_etag: Mapped[str | None] = mapped_column(String(255)) cdn_hls_base: Mapped[str | None] = mapped_column(Text) waveform_url: Mapped[str | None] = mapped_column(Text) + waveform_peaks: Mapped[list | None] = mapped_column(JSONB) + waveform_peaks_mini: Mapped[list | None] = mapped_column(JSONB) duration_ms: Mapped[int | None] = mapped_column(Integer) format: Mapped[str | None] = mapped_column(String(10)) file_size_bytes: Mapped[int | None] = mapped_column(BigInteger) ->>>>>>> feature/pipeline-fix analysis_status: Mapped[str] = mapped_column(String(20), nullable=False, default="pending") uploaded_by: Mapped[uuid.UUID | None] = mapped_column( UUID(as_uuid=True), ForeignKey("members.id", ondelete="SET NULL") diff --git a/api/src/rehearsalhub/routers/internal.py b/api/src/rehearsalhub/routers/internal.py index 80cd9e7..a3b4b72 100755 --- a/api/src/rehearsalhub/routers/internal.py +++ b/api/src/rehearsalhub/routers/internal.py @@ -11,11 +11,11 @@ from sqlalchemy.ext.asyncio import AsyncSession from rehearsalhub.config import get_settings from rehearsalhub.db.engine import get_session from rehearsalhub.db.models import AudioVersion, BandMember, Member +from rehearsalhub.queue.redis_queue import RedisJobQueue from rehearsalhub.repositories.audio_version import AudioVersionRepository from rehearsalhub.repositories.band import BandRepository from rehearsalhub.repositories.rehearsal_session import RehearsalSessionRepository from rehearsalhub.repositories.song import SongRepository -from rehearsalhub.queue.redis_queue import RedisJobQueue from rehearsalhub.schemas.audio_version import AudioVersionCreate from rehearsalhub.services.session import extract_session_folder, parse_rehearsal_date from rehearsalhub.services.song import SongService diff --git a/api/tests/unit/test_waveform_endpoint.py b/api/tests/unit/test_waveform_endpoint.py index f83ecb9..1b9e107 100644 --- a/api/tests/unit/test_waveform_endpoint.py +++ b/api/tests/unit/test_waveform_endpoint.py @@ -92,10 +92,9 @@ async def test_waveform_404_when_no_peaks_in_db(mock_session): with ( patch("rehearsalhub.routers.versions._get_version_and_assert_band_membership", - return_value=(version, song)), + return_value=(version, song)),pytest.raises(HTTPException) as exc_info ): - with pytest.raises(HTTPException) as exc_info: - await get_waveform(version_id=version.id, session=mock_session, current_member=member) + await get_waveform(version_id=version.id, session=mock_session, current_member=member) assert exc_info.value.status_code == 404 @@ -113,8 +112,8 @@ async def test_waveform_mini_404_when_no_mini_peaks(mock_session): with ( patch("rehearsalhub.routers.versions._get_version_and_assert_band_membership", return_value=(version, song)), + pytest.raises(HTTPException) as exc_info, ): - with pytest.raises(HTTPException) as exc_info: - await get_waveform(version_id=version.id, session=mock_session, current_member=member, resolution="mini") + await get_waveform(version_id=version.id, session=mock_session, current_member=member, resolution="mini") assert exc_info.value.status_code == 404 diff --git a/docker-compose.yml b/docker-compose.yml index 91e696a..d95d5b4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,7 +41,7 @@ services: build: context: ./api target: production - image: rehearsalhub/api:latest + image: rehearshalhub/api:latest environment: DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-rh_user}:${POSTGRES_PASSWORD:-default_secure_password}@db:5432/${POSTGRES_DB:-rehearsalhub} NEXTCLOUD_URL: ${NEXTCLOUD_URL:-https://cloud.example.com} @@ -74,7 +74,7 @@ services: build: context: ./worker target: production - image: rehearsalhub/audio-worker:latest + image: rehearshalhub/audio-worker:latest environment: DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-rh_user}:${POSTGRES_PASSWORD:-default_secure_password}@db:5432/${POSTGRES_DB:-rehearsalhub} REDIS_URL: redis://redis:6379/0 @@ -99,7 +99,7 @@ services: build: context: ./watcher target: production - image: rehearsalhub/nc-watcher:latest + image: rehearshalhub/nc-watcher:latest environment: NEXTCLOUD_URL: ${NEXTCLOUD_URL:-https://cloud.example.com} NEXTCLOUD_USER: ${NEXTCLOUD_USER:-rh_service} @@ -122,7 +122,7 @@ services: build: context: ./web target: production - image: rehearsalhub/web:latest + image: rehearshalhub/web:latest ports: - "8080:80" networks: diff --git a/web/src/components/TopBandBar.tsx b/web/src/components/TopBandBar.tsx index 9e83a2f..b64edd3 100644 --- a/web/src/components/TopBandBar.tsx +++ b/web/src/components/TopBandBar.tsx @@ -264,11 +264,7 @@ function CreateBandModal({ onClose }: { onClose: () => void }) { }); // Start on step 0 (storage) if NC not configured, otherwise jump straight to step 1 (band) - const [step, setStep] = useState<0 | 1 | null>(null); - - useEffect(() => { - if (me && step === null) setStep(me.nc_configured ? 1 : 0); - }, [me, step]); + const [step, setStep] = useState<0 | 1 | null>(me ? (me.nc_configured ? 1 : 0) : null); // Close on Escape useEffect(() => {