mirror of
https://github.com/karma-riuk/crab-webapp.git
synced 2025-07-05 06:08:13 +02:00
moved uuid2subject inside subject as it made more
sense
This commit is contained in:
@ -3,7 +3,7 @@ from typing import Callable
|
||||
from flask import Blueprint, request, jsonify, current_app, url_for
|
||||
from utils.errors import InvalidJsonFormatError
|
||||
from utils.process_data import evaluate_comments, evaluate_refinement
|
||||
from utils.observer import SocketObserver, Status, Subject, uuid2subject
|
||||
from utils.observer import SocketObserver, Status, Subject
|
||||
import functools
|
||||
import json, uuid
|
||||
|
||||
@ -64,7 +64,7 @@ def handler(type_: str, validate_json: Callable, evaluate_submission: Callable):
|
||||
|
||||
process_id = str(uuid.uuid4())
|
||||
subject = Subject(process_id, type_, evaluate_submission)
|
||||
uuid2subject[process_id] = subject
|
||||
Subject.uuid2subject[process_id] = subject
|
||||
|
||||
QUEUE_MANAGER.submit(subject, validated)
|
||||
url = url_for(f".status", id=process_id, _external=True)
|
||||
@ -91,10 +91,10 @@ def submit_comments(task):
|
||||
|
||||
@router.route('/status/<id>')
|
||||
def status(id):
|
||||
if id not in uuid2subject:
|
||||
if id not in Subject.uuid2subject:
|
||||
return jsonify({"error": "Id doens't exist", "message": f"Id {id} doesn't exist"}), 404
|
||||
|
||||
subject = uuid2subject[id]
|
||||
subject = Subject.uuid2subject[id]
|
||||
if subject.status == Status.COMPLETE:
|
||||
return jsonify({"status": "complete", "type": subject.type, "results": subject.results})
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
from flask import Flask, request
|
||||
from flask_cors import CORS
|
||||
from flask_socketio import SocketIO
|
||||
from utils.observer import Status, uuid2subject
|
||||
from utils.observer import Status, Subject
|
||||
from routes.index import router as index_router
|
||||
from routes.answers import QUEUE_MANAGER, router as answers_router
|
||||
from routes.datasets import router as datasets_router
|
||||
@ -49,7 +49,7 @@ def init_socketio(app):
|
||||
def on_get_queue_position(data):
|
||||
sid = request.sid # type: ignore
|
||||
subject_id = data["uuid"]
|
||||
subject = uuid2subject[subject_id]
|
||||
subject = Subject.uuid2subject[subject_id]
|
||||
if subject.status == Status.WAITING:
|
||||
return socketio.emit(
|
||||
'queue_position',
|
||||
|
@ -47,6 +47,7 @@ class SocketObserver(Observer):
|
||||
|
||||
class Subject:
|
||||
obs2subject: dict[Observer, "Subject"] = {}
|
||||
uuid2subject: dict[str, "Subject"] = {}
|
||||
|
||||
def __init__(self, id: str, type_: str, task: Callable) -> None:
|
||||
self.id = id
|
||||
@ -83,6 +84,3 @@ class Subject:
|
||||
self.observers.clear()
|
||||
self.results = results
|
||||
# TODO: maybe save results to disk here?
|
||||
|
||||
|
||||
uuid2subject: dict[str, Subject] = {}
|
||||
|
Reference in New Issue
Block a user