mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-12-26 03:14:19 +00:00
63 lines
2.7 KiB
Python
63 lines
2.7 KiB
Python
from .. import db, socketio
|
|
from ..decorators import background
|
|
from ..models import Corpus, CorpusFile, QueryResult
|
|
|
|
|
|
@background
|
|
def build_corpus(corpus_id, *args, **kwargs):
|
|
app = kwargs['app']
|
|
with app.app_context():
|
|
corpus = Corpus.query.get(corpus_id)
|
|
if corpus is None:
|
|
raise Exception('Corpus {} not found'.format(corpus_id))
|
|
corpus.build()
|
|
db.session.commit()
|
|
event = 'user_{}_patch'.format(corpus.user_id)
|
|
jsonpatch = [{'op': 'replace', 'path': '/corpora/{}/last_edited_date'.format(corpus.id), 'value': corpus.last_edited_date.timestamp()}, # noqa
|
|
{'op': 'replace', 'path': '/corpora/{}/status'.format(corpus.id), 'value': corpus.status}] # noqa
|
|
room = 'user_{}'.format(corpus.user_id)
|
|
socketio.emit(event, jsonpatch, room=room)
|
|
|
|
|
|
@background
|
|
def delete_corpus(corpus_id, *args, **kwargs):
|
|
with kwargs['app'].app_context():
|
|
corpus = Corpus.query.get(corpus_id)
|
|
if corpus is None:
|
|
raise Exception('Corpus {} not found'.format(corpus_id))
|
|
event = 'user_{}_patch'.format(corpus.user_id)
|
|
jsonpatch = [{'op': 'remove', 'path': '/corpora/{}'.format(corpus.id)}]
|
|
room = 'user_{}'.format(corpus.user_id)
|
|
corpus.delete()
|
|
db.session.commit()
|
|
socketio.emit(event, jsonpatch, room=room)
|
|
|
|
|
|
@background
|
|
def delete_corpus_file(corpus_file_id, *args, **kwargs):
|
|
with kwargs['app'].app_context():
|
|
corpus_file = CorpusFile.query.get(corpus_file_id)
|
|
if corpus_file is None:
|
|
raise Exception('Corpus file {} not found'.format(corpus_file_id))
|
|
event = 'user_{}_patch'.format(corpus_file.corpus.user_id)
|
|
jsonpatch = [{'op': 'remove', 'path': '/corpora/{}/files/{}'.format(corpus_file.corpus_id, corpus_file.id)}, # noqa
|
|
{'op': 'replace', 'path': '/corpora/{}/status'.format(corpus_file.corpus_id), 'value': corpus_file.corpus.status}] # noqa
|
|
room = 'user_{}'.format(corpus_file.corpus.user_id)
|
|
corpus_file.delete()
|
|
db.session.commit()
|
|
socketio.emit(event, jsonpatch, room=room)
|
|
|
|
|
|
@background
|
|
def delete_query_result(query_result_id, *args, **kwargs):
|
|
with kwargs['app'].app_context():
|
|
query_result = QueryResult.query.get(query_result_id)
|
|
if query_result is None:
|
|
raise Exception('QueryResult {} not found'.format(query_result_id))
|
|
event = 'user_{}_patch'.format(query_result.user_id)
|
|
jsonpatch = [{'op': 'remove', 'path': '/query_results/{}'.format(query_result.id)}] # noqa
|
|
room = 'user_{}'.format(query_result.user_id)
|
|
query_result.delete()
|
|
db.session.commit()
|
|
socketio.emit(event, jsonpatch, room=room)
|