Added job delete over RF.
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user