diff --git a/code/datums/http.dm b/code/datums/http.dm index 080ca37a9d1..9a4aba137b3 100644 --- a/code/datums/http.dm +++ b/code/datums/http.dm @@ -27,6 +27,11 @@ src.output_file = output_file src.timeout_seconds = timeout_seconds +/datum/http_request/proc/fire_and_forget() + var/result = rustg_http_request_fire_and_forget(method, url, body, headers, build_options()) + if(result != "ok") + CRASH("[result]") + /datum/http_request/proc/execute_blocking() _raw_response = rustg_http_request_blocking(method, url, body, headers, build_options()) @@ -37,16 +42,17 @@ id = rustg_http_request_async(method, url, body, headers, build_options()) if (isnull(text2num(id))) - stack_trace("Proc error: [id]") _raw_response = "Proc error: [id]" + CRASH("Proc error: [id]") else in_progress = TRUE /datum/http_request/proc/build_options() return json_encode(list( - "output_filename"=(output_file ? output_file : null), - "body_filename"=null, - "timeout_seconds"=(timeout_seconds ? timeout_seconds : null))) + "output_filename" = output_file ? output_file : null, + "body_filename" = null, + "timeout_seconds" = timeout_seconds ? timeout_seconds : null, + )) /datum/http_request/proc/is_complete() if (isnull(id)) @@ -55,28 +61,28 @@ if (!in_progress) return TRUE - var/r = rustg_http_check_request(id) + var/response = rustg_http_check_request(id) - if (r == RUSTG_JOB_NO_RESULTS_YET) + if (response == RUSTG_JOB_NO_RESULTS_YET) return FALSE else - _raw_response = r + _raw_response = response in_progress = FALSE return TRUE -/datum/http_request/proc/into_response() - var/datum/http_response/R = new() +/datum/http_request/proc/into_response() as /datum/http_response + var/datum/http_response/response = new try - var/list/L = json_decode(_raw_response) - R.status_code = L["status_code"] - R.headers = L["headers"] - R.body = L["body"] + var/list/response_data = json_decode(_raw_response) + response.status_code = response_data["status_code"] + response.headers = response_data["headers"] + response.body = response_data["body"] catch - R.errored = TRUE - R.error = _raw_response + response.errored = TRUE + response.error = _raw_response - return R + return response /datum/http_response var/status_code diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 7559d08a0eb..4c235a48ca3 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -339,9 +339,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) // send2chat(new /datum/tgs_message_conent("[initiator_ckey] | [message_content]"), "ahelp", TRUE) var/list/headers = list() headers["Content-Type"] = "application/json" - var/datum/http_request/request = new() + var/datum/http_request/request = new request.prepare(RUSTG_HTTP_METHOD_POST, webhook, json_encode(webhook_info), headers, "tmp/response.json") - request.begin_async() + request.fire_and_forget() /datum/admin_help/Destroy() RemoveActive()