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_NOEXCEPT
bool is_null() const FL_NOEXCEPT
static json parse(const fl::string &txt) FL_NOEXCEPT
bool has_active_tasks() const override
Check if this runner has active tasks.
void cleanup_completed_promises()
fl::unique_ptr< FetchEngineListener > mEngineListener
size_t active_task_count() const override
Get number of active tasks (for debugging/monitoring)
fl::vector< fl::task::Promise< Response > > mActivePromises
static FetchManager & instance()
void register_promise(const fl::task::Promise< Response > &promise)
fl::size active_requests() const
void update() override
Update this runner (called during task pumping)
Internal fetch manager for promise tracking.
FetchOptions(const fl::string &url)
const fl::string & url() const
Get the URL for this request.
FetchOptions & method(const fl::string &http_method)
Set HTTP method.
FetchOptions & header(const fl::string &name, const fl::string &value)
Add header.
friend class FetchManager
FetchOptions & body(const fl::string &data)
Set request body.
FetchOptions & json(const fl::string &json_data)
Set JSON body with proper content type.
FetchOptions & timeout(int timeout_ms)
Set timeout in milliseconds.
FetchOptions(const fl::string &url, const RequestOptions &options)
const RequestOptions & options() const
Get the options for this request.
Fetch options builder (fluent interface)
static fl::string get_default_status_text(int status)
const fl::string & text() const
Response body as text (like JavaScript response.text())
Response(int status_code, const fl::string &status_text)
const fl::string & get_body_text() const
Response body as text (alternative to text())
void set_status_text(const fl::string &status_text)
fl::optional< fl::string > get_header(const fl::string &name) const
Get header value (like JavaScript response.headers.get())
void set_header(const fl::string &name, const fl::string &value)
bool is_json() const
Check if response appears to contain JSON content.
bool ok() const
Check if response is successful (like JavaScript response.ok)
const fl::string & status_text() const
HTTP status text (like JavaScript response.statusText)
void set_text(const fl::string &body)
int status() const
HTTP status code (like JavaScript response.status)
fl::optional< fl::string > get_content_type() const
Get content type convenience method.
fl::json parse_json_body() const
Parse JSON from response body with error handling.
Response(int status_code)
fl::json json() const
Response body parsed as JSON (JavaScript-like API)
void set_status(int status_code)
Set methods (internal use)
fl::optional< fl::json > mCachedJson
void set_body(const fl::string &body)
fl_map< fl::string, fl::string > mHeaders
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()
Legacy manual update for fetch promises (use fl::task::run() for new code)
fl::task::Promise< Response > fetch_delete(const fl::string &url, const FetchOptions &request)
HTTP DELETE request.
fl::function< void(const Response &)> FetchCallback
Callback type for simple fetch responses (backward compatible)
fl::task::Promise< Response > fetch_http_options(const fl::string &url, const FetchOptions &request)
HTTP OPTIONS request.
fl::task::Promise< Response > fetch_patch(const fl::string &url, const FetchOptions &request)
HTTP PATCH request.
fl::task::Promise< Response > fetch_post(const fl::string &url, const FetchOptions &request)
HTTP POST request.
fl::task::Promise< Response > fetch_head(const fl::string &url, const FetchOptions &request)
HTTP HEAD request.
fl::task::Promise< Response > execute_fetch_request(const fl::string &url, const FetchOptions &request)
Internal helper to execute a fetch request and return a promise.
fl::task::Promise< Response > fetch_get(const fl::string &url, const FetchOptions &request)
HTTP GET request.
fl::task::Promise< Response > fetch_request(const fl::string &url, const RequestOptions &options)
Generic request with options (like fetch(url, options))
void fetch(const fl::string &url, const FetchCallback &callback)
Make an HTTP GET request (cross-platform, backward compatible)
fl::task::Promise< Response > fetch_put(const fl::string &url, const FetchOptions &request)
HTTP PUT request.
fl::size fetch_active_requests()
Get number of active requests.
constexpr int type_rank< T >::value
optional< T > make_optional(const T &value) FL_NOEXCEPT
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() FL_NOEXCEPT=default
Request options (matches JavaScript fetch RequestInit)