Added job delete over RF.

This commit is contained in:
Michael Woods
2025-12-28 15:55:39 -05:00
parent 55b0e1806b
commit 747d23af54

View File

@@ -400,6 +400,29 @@ def handle_job_post(req: Request, conn: PacketServerConnection, db: ZODB.DB):
else: else:
send_blank_response(conn, req, status_code=404) 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): def job_root_handler(req: Request, conn: PacketServerConnection, db: ZODB.DB):
logging.debug(f"{req} being processed by job_root_handler") logging.debug(f"{req} being processed by job_root_handler")
if not user_authorized(conn, db): if not user_authorized(conn, db):