http.get is now operational

This commit is contained in:
2022-05-06 13:16:27 -04:00
parent c41d0522df
commit 0ee4167772
7 changed files with 174 additions and 98 deletions

View File

@@ -393,13 +393,13 @@ void World::update_source(const util::LuaSourceVec &source) {
assert(stack_is_clear());
}
void World::http_response(int64_t request_id, const HttpInResponse &response) {
void World::http_response(const HttpClientResponse &response) {
// Find the request.
auto iter = http_requests_.find(request_id);
auto iter = http_requests_.find(response.request_id());
if (iter == http_requests_.end()) {
return;
}
HttpOutRequest request = iter->second;
HttpClientRequest request = iter->second;
http_requests_.erase(iter);
// Get the place and thread as lua objects.
@@ -443,13 +443,18 @@ void World::http_response(int64_t request_id, const HttpInResponse &response) {
run_scheduled_threads();
}
void World::http_responses(const HttpClientResponseVec &responses) {
for (const HttpClientResponse &response : responses) {
http_response(response);
}
}
void World::abort_all_http_requests(int status_code, std::string_view error) {
HttpInResponse abortresponse;
HttpClientResponse abortresponse;
abortresponse.fail(status_code, error);
while (true) {
auto iter = http_requests_.begin();
if (iter == http_requests_.end()) break;
http_response(iter->second.request_id(), abortresponse);
while (!http_requests_.empty()) {
abortresponse.set_request_id(http_requests_.begin()->first);
http_response(abortresponse);
}
}