From 747d23af54cb3722f647164c9cc260f4516d37e5 Mon Sep 17 00:00:00 2001 From: Michael Woods Date: Sun, 28 Dec 2025 15:55:39 -0500 Subject: [PATCH] Added job delete over RF. --- packetserver/server/jobs.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packetserver/server/jobs.py b/packetserver/server/jobs.py index 678cd1a..96af19b 100644 --- a/packetserver/server/jobs.py +++ b/packetserver/server/jobs.py @@ -400,6 +400,29 @@ def handle_job_post(req: Request, conn: PacketServerConnection, db: ZODB.DB): else: send_blank_response(conn, req, status_code=404) +def handle_job_delete(req: Request, conn: PacketServerConnection, db: ZODB.DB): + spl = [x for x in req.path.split("/") if x.strip() != ""] + if (len(spl) == 2) and (spl[1].isdigit()): + jid = int(spl[1]) + logging.debug(f"Asked to delete job {jid}") + with db.transaction() as storage: + username = ax25.Address(conn.remote_callsign).call.upper().strip() + if jid in storage.user_jobs[username]: + logging.debug(f"User {username} is authorized to delete job {jid}") + if jid in storage.jobs: + del storage.jobs[jid] + storage.user_jobs[username].remove(jid) + logging.debug(f"Deleted job {jid}") + send_blank_response(conn, req, status_code=200, payload=f"Deleted job {jid}") + else: + if jid in storage.jobs: + logging.error(f"Job with no owner detected: {jid}") + send_blank_response(conn, req, status_code=500, payload="Job not owned by any user.") + else: + send_blank_response(conn, req, status_code=404) + else: + send_blank_response(conn, req, 400, payload="bad delete job request") + def job_root_handler(req: Request, conn: PacketServerConnection, db: ZODB.DB): logging.debug(f"{req} being processed by job_root_handler") if not user_authorized(conn, db):