API для работы с файлами, индексация файлов и результатов распощнавания

This commit is contained in:
poturaevpetr
2025-12-24 16:05:14 +05:00
parent 4f23dc8664
commit c39b348472
31 changed files with 1739 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
# Legacy database API support
# Этот модуль обеспечивает обратную совместимость со старым кодом
from apiApp.crud import AudioCRUD, AiConclusionCRUD
class AudioDB:
"""
Совместимый слой для старого API
"""
@staticmethod
def list():
from apiApp.database import SessionLocal
db = SessionLocal()
try:
return AudioCRUD.get_all(db)
finally:
db.close()
@staticmethod
def get(audio_id):
from apiApp.database import SessionLocal
db = SessionLocal()
try:
return AudioCRUD.get_by_id(db, audio_id)
finally:
db.close()
@staticmethod
def add(data):
from apiApp.database import SessionLocal
from apiApp.schemas import AudioCreate
db = SessionLocal()
try:
audio_data = AudioCreate(**data)
return AudioCRUD.create(db, audio_data, file_path=data.get('file_path', ''))
finally:
db.close()
@staticmethod
def put(audio_id, data):
from apiApp.database import SessionLocal
db = SessionLocal()
try:
return AudioCRUD.update(db, audio_id, data)
finally:
db.close()
@staticmethod
def delete(audio_id):
from apiApp.database import SessionLocal
db = SessionLocal()
try:
return AudioCRUD.delete(db, audio_id)
finally:
db.close()
@staticmethod
def update_recognition_result(audio_id, result):
from apiApp.database import SessionLocal
db = SessionLocal()
try:
return AudioCRUD.update_recognition_result(db, audio_id, result)
finally:
db.close()
+38
View File
@@ -0,0 +1,38 @@
from apiApp.database.Audio import Audio
from apiApp.database import db
import datetime
class AudioDB:
@staticmethod
def list():
return Audio.query.all()
@staticmethod
def get(audio_id):
return Audio.query.get(audio_id)
@staticmethod
def add(data):
data['datetime'] = datetime.datetime.now()
audio = Audio(**data)
db.session.add(audio)
db.session.commit()
return audio
@staticmethod
def put(audio_id, data):
audio = Audio.query.get(audio_id)
for key, value in data.items():
setattr(audio, key, value)
db.session.commit()
return audio
@staticmethod
def delete(audio_id):
audio = Audio.query.get(audio_id)
db.session.delete(audio)
db.session.commit()
return audio
View File