move to postgresql
This commit is contained in:
@@ -1,40 +1,49 @@
|
||||
"""Database operations for TranscodeJob."""
|
||||
"""Database operations for TranscodeJob — SQLModel."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Optional
|
||||
from uuid import UUID
|
||||
|
||||
from sqlmodel import select
|
||||
|
||||
def list_jobs(status: Optional[str] = None, source_asset_id: Optional[UUID] = None):
|
||||
from admin.mpr.media_assets.models import TranscodeJob
|
||||
|
||||
qs = TranscodeJob.objects.all()
|
||||
if status:
|
||||
qs = qs.filter(status=status)
|
||||
if source_asset_id:
|
||||
qs = qs.filter(source_asset_id=source_asset_id)
|
||||
return list(qs)
|
||||
from .connection import get_session
|
||||
from .models import TranscodeJob
|
||||
|
||||
|
||||
def get_job(id: UUID):
|
||||
from admin.mpr.media_assets.models import TranscodeJob
|
||||
|
||||
return TranscodeJob.objects.get(id=id)
|
||||
def list_jobs(status: Optional[str] = None, source_asset_id: Optional[UUID] = None) -> list[TranscodeJob]:
|
||||
with get_session() as session:
|
||||
stmt = select(TranscodeJob)
|
||||
if status:
|
||||
stmt = stmt.where(TranscodeJob.status == status)
|
||||
if source_asset_id:
|
||||
stmt = stmt.where(TranscodeJob.source_asset_id == source_asset_id)
|
||||
return list(session.exec(stmt).all())
|
||||
|
||||
|
||||
def create_job(**fields):
|
||||
from admin.mpr.media_assets.models import TranscodeJob
|
||||
|
||||
return TranscodeJob.objects.create(**fields)
|
||||
def get_job(id: UUID) -> TranscodeJob | None:
|
||||
with get_session() as session:
|
||||
return session.get(TranscodeJob, id)
|
||||
|
||||
|
||||
def update_job(job, **fields):
|
||||
for key, value in fields.items():
|
||||
setattr(job, key, value)
|
||||
job.save(update_fields=list(fields.keys()))
|
||||
return job
|
||||
def create_job(**fields) -> TranscodeJob:
|
||||
job = TranscodeJob(**fields)
|
||||
with get_session() as session:
|
||||
session.add(job)
|
||||
session.commit()
|
||||
session.refresh(job)
|
||||
return job
|
||||
|
||||
|
||||
def update_job_fields(job_id, **fields):
|
||||
from admin.mpr.media_assets.models import TranscodeJob
|
||||
def update_job(id: UUID, **fields) -> None:
|
||||
with get_session() as session:
|
||||
job = session.get(TranscodeJob, id)
|
||||
if not job:
|
||||
return
|
||||
for k, v in fields.items():
|
||||
setattr(job, k, v)
|
||||
session.commit()
|
||||
|
||||
TranscodeJob.objects.filter(id=job_id).update(**fields)
|
||||
|
||||
def update_job_fields(job_id: UUID, **fields) -> None:
|
||||
update_job(job_id, **fields)
|
||||
|
||||
Reference in New Issue
Block a user