Change api methods to use POST when possible

This commit is contained in:
Brett Williams
2026-06-06 00:49:56 -05:00
parent 076eebcdac
commit b8f025ccba
2 changed files with 14 additions and 5 deletions
+7 -3
View File
@@ -17,6 +17,7 @@ import psutil
import yaml
from flask import Flask, request, send_file, after_this_request, Response, redirect, url_for
from sqlalchemy.orm.exc import DetachedInstanceError
from werkzeug.exceptions import HTTPException
from src.api.job_import_handler import JobImportHandler
from src.api.preview_manager import PreviewManager
@@ -306,7 +307,7 @@ def add_job_handler():
return 'unknown error', 500
@server.get('/api/job/<job_id>/cancel')
@server.post('/api/job/<job_id>/cancel')
def cancel_job(job_id):
if not request.args.get('confirm', False):
return 'Confirmation required to cancel job', 400
@@ -320,7 +321,7 @@ def cancel_job(job_id):
return "Unknown error", 500
@server.route('/api/job/<job_id>/delete', methods=['POST', 'GET'])
@server.post('/api/job/<job_id>/delete')
def delete_job(job_id):
try:
if not request.args.get("confirm", False):
@@ -616,6 +617,9 @@ def handle_404(error):
@server.errorhandler(Exception)
def handle_general_error(general_error):
if isinstance(general_error, HTTPException):
return general_error.description, general_error.code
traceback.print_exception(type(general_error), general_error, general_error.__traceback__)
err_msg = f"Server error: {general_error}"
logger.error(err_msg)
@@ -633,7 +637,7 @@ def detected_clients():
return ZeroconfServer.found_hostnames()
@server.get('/api/_debug/clear_history')
@server.post('/api/_debug/clear_history')
def clear_history():
RenderQueue.clear_history()
return 'success'
+7 -2
View File
@@ -109,6 +109,11 @@ class RenderServerProxy:
return requests.get(f'http://{self.hostname}:{self.port}/api/{payload}', timeout=timeout,
headers={"X-API-Version": str(API_VERSION)})
def _post(self, payload, timeout=5, **kwargs):
from src.api.api_server import API_VERSION
return requests.post(f'http://{self.hostname}:{self.port}/api/{payload}', timeout=timeout,
headers={"X-API-Version": str(API_VERSION)}, **kwargs)
# --------------------------------------------
# Background Updates:
# --------------------------------------------
@@ -225,10 +230,10 @@ class RenderServerProxy:
return response
def cancel_job(self, job_id, confirm=False):
return self.request_data(f'job/{job_id}/cancel?confirm={confirm}')
return self._post(f'job/{job_id}/cancel', params={'confirm': confirm})
def delete_job(self, job_id, confirm=False):
return self.request_data(f'job/{job_id}/delete?confirm={confirm}')
return self._post(f'job/{job_id}/delete', params={'confirm': confirm})
def send_subjob_update_notification(self, parent_id, subjob):
"""