124 if (content_type.has_value()) {
164 case 200:
return "OK";
165 case 400:
return "Bad Request";
166 case 401:
return "Unauthorized";
167 case 403:
return "Forbidden";
168 case 404:
return "Not Found";
169 case 500:
return "Internal Server Error";
170 case 501:
return "Not Implemented";
171 case 502:
return "Bad Gateway";
172 case 503:
return "Service Unavailable";
173 default:
return "Unknown";
222 mOptions.headers[
"Content-Type"] =
"application/json";
fl::size find(const char &value) const FL_NO_EXCEPT
bool is_null() const FL_NO_EXCEPT
static json parse(const fl::string &txt) FL_NO_EXCEPT
void cleanup_completed_promises() FL_NO_EXCEPT
size_t active_task_count() const FL_NO_EXCEPT override
Get number of active tasks (for debugging/monitoring)
fl::size active_requests() const FL_NO_EXCEPT
fl::unique_ptr< FetchEngineListener > mEngineListener
void register_promise(const fl::task::Promise< Response > &promise) FL_NO_EXCEPT
fl::vector< fl::task::Promise< Response > > mActivePromises
bool has_active_tasks() const FL_NO_EXCEPT override
Check if this runner has active tasks.
static FetchManager & instance() FL_NO_EXCEPT
void update() FL_NO_EXCEPT override
Update this runner (called during task pumping)
Internal fetch manager for promise tracking.
FetchOptions(const fl::string &url) FL_NO_EXCEPT
FetchOptions & json(const fl::string &json_data) FL_NO_EXCEPT
Set JSON body with proper content type.
FetchOptions & method(const fl::string &http_method) FL_NO_EXCEPT
Set HTTP method.
const RequestOptions & options() const FL_NO_EXCEPT
Get the options for this request.
FetchOptions & timeout(int timeout_ms) FL_NO_EXCEPT
Set timeout in milliseconds.
friend class FetchManager
FetchOptions(const fl::string &url, const RequestOptions &options) FL_NO_EXCEPT
FetchOptions & header(const fl::string &name, const fl::string &value) FL_NO_EXCEPT
Add header.
const fl::string & url() const FL_NO_EXCEPT
Get the URL for this request.
FetchOptions & body(const fl::string &data) FL_NO_EXCEPT
Set request body.
Fetch options builder (fluent interface)
Response(int status_code, const fl::string &status_text) FL_NO_EXCEPT
void set_body(const fl::string &body) FL_NO_EXCEPT
fl::optional< fl::string > get_content_type() const FL_NO_EXCEPT
Get content type convenience method.
fl::json parse_json_body() const FL_NO_EXCEPT
Parse JSON from response body with error handling.
void set_text(const fl::string &body) FL_NO_EXCEPT
void set_status(int status_code) FL_NO_EXCEPT
Set methods (internal use)
static fl::string get_default_status_text(int status) FL_NO_EXCEPT
int status() const FL_NO_EXCEPT
HTTP status code (like JavaScript response.status)
Response(int status_code) FL_NO_EXCEPT
const fl::string & text() const FL_NO_EXCEPT
Response body as text (like JavaScript response.text())
void set_header(const fl::string &name, const fl::string &value) FL_NO_EXCEPT
fl::optional< fl::string > get_header(const fl::string &name) const FL_NO_EXCEPT
Get header value (like JavaScript response.headers.get())
const fl::string & status_text() const FL_NO_EXCEPT
HTTP status text (like JavaScript response.statusText)
const fl::string & get_body_text() const FL_NO_EXCEPT
Response body as text (alternative to text())
bool is_json() const FL_NO_EXCEPT
Check if response appears to contain JSON content.
void set_status_text(const fl::string &status_text) FL_NO_EXCEPT
fl::json json() const FL_NO_EXCEPT
Response body parsed as JSON (JavaScript-like API)
fl::optional< fl::json > mCachedJson
fl_map< fl::string, fl::string > mHeaders
bool ok() const FL_NO_EXCEPT
Check if response is successful (like JavaScript response.ok)
HTTP response class (unified interface)
static constexpr fl::size npos
Promise class that provides fluent .then() and .catch_() semantics This is a lightweight wrapper arou...
Generic task runner interface.
Task executor — runs registered task runners and manages the run loop.
FastLED's Elegant JSON Library: fl::json
Centralized logging categories for FastLED hardware interfaces and subsystems.
Platform-independent mutex interface.
void fetch_update() FL_NO_EXCEPT
Legacy manual update for fetch promises (use fl::task::run() for new code)
fl::task::Promise< Response > fetch_put(const fl::string &url, const FetchOptions &request) FL_NO_EXCEPT
HTTP PUT request.
fl::task::Promise< Response > fetch_patch(const fl::string &url, const FetchOptions &request) FL_NO_EXCEPT
HTTP PATCH request.
void fetch(const fl::string &url, const FetchCallback &callback) FL_NO_EXCEPT
Make an HTTP GET request (cross-platform, backward compatible)
fl::size fetch_active_requests() FL_NO_EXCEPT
Get number of active requests.
fl::function< void(const Response &)> FetchCallback
Callback type for simple fetch responses (backward compatible)
fl::task::Promise< Response > fetch_head(const fl::string &url, const FetchOptions &request) FL_NO_EXCEPT
HTTP HEAD request.
fl::task::Promise< Response > execute_fetch_request(const fl::string &url, const FetchOptions &request) FL_NO_EXCEPT
Internal helper to execute a fetch request and return a promise.
fl::task::Promise< Response > fetch_http_options(const fl::string &url, const FetchOptions &request) FL_NO_EXCEPT
HTTP OPTIONS request.
fl::task::Promise< Response > fetch_post(const fl::string &url, const FetchOptions &request) FL_NO_EXCEPT
HTTP POST request.
fl::task::Promise< Response > fetch_request(const fl::string &url, const RequestOptions &options) FL_NO_EXCEPT
Generic request with options (like fetch(url, options))
fl::task::Promise< Response > fetch_get(const fl::string &url, const FetchOptions &request) FL_NO_EXCEPT
HTTP GET request.
fl::task::Promise< Response > fetch_delete(const fl::string &url, const FetchOptions &request) FL_NO_EXCEPT
HTTP DELETE request.
u8 u8 fract8 blur_amount FL_NO_EXCEPT
constexpr int type_rank< T >::value
optional< T > make_optional(const T &value) FL_NO_EXCEPT
constexpr nullopt_t nullopt
map< Key, T, Compare > fl_map
Base definition for an LED controller.
Promise-based fluent API for FastLED - standalone async primitives.
fl_map< fl::string, fl::string > headers
RequestOptions(const fl::string &method_name) FL_NO_EXCEPT
Request options (matches JavaScript fetch RequestInit)