aboutsummaryrefslogtreecommitdiff
path: root/jb/views/tasks.py
diff options
context:
space:
mode:
authorstuppie2026-09-02 15:08:19 -0600
committerstuppie2026-09-02 15:08:19 -0600
commit81cf8de5dbcb530718eb8687b5bfab44517a6757 (patch)
treeabd2266fbffd2d50e01b0ef8d29a6fb9c9242fe8 /jb/views/tasks.py
parent81261e52931d055df5830e29b9bf5ef81ba9134e (diff)
downloadamt-jb-81cf8de5dbcb530718eb8687b5bfab44517a6757.tar.gz
amt-jb-81cf8de5dbcb530718eb8687b5bfab44517a6757.zip
stripping out some amt stuff. reject all submitted assignments. add direct work view
Diffstat (limited to 'jb/views/tasks.py')
-rw-r--r--jb/views/tasks.py78
1 files changed, 0 insertions, 78 deletions
diff --git a/jb/views/tasks.py b/jb/views/tasks.py
deleted file mode 100644
index 15857c3..0000000
--- a/jb/views/tasks.py
+++ /dev/null
@@ -1,78 +0,0 @@
-from datetime import datetime, timezone, timedelta
-
-from fastapi import Request
-
-from jb.decorators import AMTM, AM, HM
-from jb.flow.maintenance import check_hit_status
-from jb.flow.monitoring import emit_assignment_event
-from jb.models.assignment import AssignmentStub
-from jb.models.definitions import AssignmentStatus
-
-
-def process_request(request: Request) -> None:
- """
- A worker has loaded the HIT (work) page and (probably) accepted the HIT.
- AMT creates an assignment, tied to this hit and this worker.
- Create it in the DB.
- """
- amt_assignment_id = request.query_params.get("assignmentId", None)
- if amt_assignment_id == "ASSIGNMENT_ID_NOT_AVAILABLE":
- raise ValueError("shouldn't happen")
-
- amt_hit_id = request.query_params.get("hitId", None)
- amt_worker_id = request.query_params.get("workerId", None)
- print(f"process_request: {amt_assignment_id=} {amt_worker_id=} {amt_hit_id=}")
- assert amt_worker_id and amt_hit_id and amt_assignment_id
-
- # Check that the HIT is still valid
- hit = HM.get_from_amt_id_if_exists(amt_hit_id=amt_hit_id)
- if not hit:
- raise ValueError(f"Hit {amt_hit_id} not found in DB")
-
- _ = check_hit_status(
- amtm=AMTM, amt_hit_id=amt_hit_id, amt_hit_type_id=hit.amt_hit_type_id
- )
-
- emit_assignment_event(
- status=AssignmentStatus.Accepted,
- amt_hit_type_id=hit.amt_hit_type_id,
- )
-
- # I think it won't be assignable anymore? idk
- # assert hit_status == HitStatus.Assignable, f"hit {amt_hit_id} {hit_status=}. Expected Assignable"
-
- # I would like to verify in the AMT API that this assignment is valid, but there
- # is no way to do that (until the assignment is submitted)
-
- # # Make an offerwall to create a user account...
- # # todo: GSS: Do we really need to do this???
- # client_ip = get_client_ip(request)
- # url = f"{settings.fsb_host}{settings.product_id}/offerwall/45b7228a7/"
- # _ = requests.get(
- # url,
- # {"bpuid": amt_worker_id, "ip": client_ip, "n_bins": 1, "format": "json"},
- # ).json()
-
- # This assignment shouldn't already exist. If it does, just make sure it
- # is all the same.
- assignment_stub = AM.get_stub_if_exists(amt_assignment_id=amt_assignment_id)
- if assignment_stub:
- print(f"{assignment_stub=}")
- assert assignment_stub.amt_worker_id == amt_worker_id
- assert assignment_stub.amt_assignment_id == amt_assignment_id
- assert assignment_stub.created_at > (
- datetime.now(tz=timezone.utc) - timedelta(minutes=90)
- )
- return None
-
- assignment_stub = AssignmentStub(
- amt_hit_id=amt_hit_id,
- amt_worker_id=amt_worker_id,
- amt_assignment_id=amt_assignment_id,
- status=AssignmentStatus.Accepted,
- hit_id=hit.id,
- )
-
- AM.create_stub(stub=assignment_stub)
-
- return None