41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
"""Database operations for TranscodeJob."""
|
|
|
|
from typing import Optional
|
|
from uuid import UUID
|
|
|
|
|
|
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)
|
|
|
|
|
|
def get_job(id: UUID):
|
|
from admin.mpr.media_assets.models import TranscodeJob
|
|
|
|
return TranscodeJob.objects.get(id=id)
|
|
|
|
|
|
def create_job(**fields):
|
|
from admin.mpr.media_assets.models import TranscodeJob
|
|
|
|
return TranscodeJob.objects.create(**fields)
|
|
|
|
|
|
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 update_job_fields(job_id, **fields):
|
|
from admin.mpr.media_assets.models import TranscodeJob
|
|
|
|
TranscodeJob.objects.filter(id=job_id).update(**fields)
|