PsychichHTTP v2-dev

This commit is contained in:
iranl
2024-12-30 14:37:09 +01:00
parent 2cf5201285
commit 78459c2d08
118 changed files with 5453 additions and 4972 deletions

View File

@@ -8,9 +8,9 @@
#ifndef PSYCHIC_JSON_H_
#define PSYCHIC_JSON_H_
#include "ChunkPrinter.h"
#include "PsychicRequest.h"
#include "PsychicWebHandler.h"
#include "ChunkPrinter.h"
#include <ArduinoJson.h>
#if ARDUINOJSON_VERSION_MAJOR == 6
@@ -20,70 +20,71 @@
#endif
#endif
#ifndef JSON_BUFFER_SIZE
#define JSON_BUFFER_SIZE 4*1024
#define JSON_BUFFER_SIZE 4 * 1024
#endif
constexpr const char *JSON_MIMETYPE = "application/json";
constexpr const char* JSON_MIMETYPE = "application/json";
/*
* Json Response
* */
class PsychicJsonResponse : public PsychicResponse
class PsychicJsonResponse : public PsychicResponseDelegate
{
protected:
#ifdef ARDUINOJSON_5_COMPATIBILITY
DynamicJsonBuffer _jsonBuffer;
#elif ARDUINOJSON_VERSION_MAJOR == 6
DynamicJsonDocument _jsonBuffer;
#else
JsonDocument _jsonBuffer;
#endif
#ifdef ARDUINOJSON_5_COMPATIBILITY
DynamicJsonBuffer _jsonBuffer;
#elif ARDUINOJSON_VERSION_MAJOR == 6
DynamicJsonDocument _jsonBuffer;
#else
JsonDocument _jsonBuffer;
#endif
JsonVariant _root;
size_t _contentLength;
public:
#ifdef ARDUINOJSON_5_COMPATIBILITY
PsychicJsonResponse(PsychicRequest *request, bool isArray = false);
#elif ARDUINOJSON_VERSION_MAJOR == 6
PsychicJsonResponse(PsychicRequest *request, bool isArray = false, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
#else
PsychicJsonResponse(PsychicRequest *request, bool isArray = false);
#endif
#ifdef ARDUINOJSON_5_COMPATIBILITY
PsychicJsonResponse(PsychicResponse* response, bool isArray = false);
#elif ARDUINOJSON_VERSION_MAJOR == 6
PsychicJsonResponse(PsychicResponse* response, bool isArray = false, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
#else
PsychicJsonResponse(PsychicResponse* response, bool isArray = false);
#endif
~PsychicJsonResponse() {}
~PsychicJsonResponse()
{
}
JsonVariant &getRoot();
JsonVariant& getRoot();
size_t getLength();
virtual esp_err_t send() override;
esp_err_t send();
};
class PsychicJsonHandler : public PsychicWebHandler
{
protected:
PsychicJsonRequestCallback _onRequest;
#if ARDUINOJSON_VERSION_MAJOR == 6
const size_t _maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE;
#endif
#if ARDUINOJSON_VERSION_MAJOR == 6
const size_t _maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE;
#endif
public:
#ifdef ARDUINOJSON_5_COMPATIBILITY
PsychicJsonHandler();
PsychicJsonHandler(PsychicJsonRequestCallback onRequest);
#elif ARDUINOJSON_VERSION_MAJOR == 6
PsychicJsonHandler(size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
PsychicJsonHandler(PsychicJsonRequestCallback onRequest, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
#else
PsychicJsonHandler();
PsychicJsonHandler(PsychicJsonRequestCallback onRequest);
#endif
#ifdef ARDUINOJSON_5_COMPATIBILITY
PsychicJsonHandler();
PsychicJsonHandler(PsychicJsonRequestCallback onRequest);
#elif ARDUINOJSON_VERSION_MAJOR == 6
PsychicJsonHandler(size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
PsychicJsonHandler(PsychicJsonRequestCallback onRequest, size_t maxJsonBufferSize = DYNAMIC_JSON_DOCUMENT_SIZE);
#else
PsychicJsonHandler();
PsychicJsonHandler(PsychicJsonRequestCallback onRequest);
#endif
void onRequest(PsychicJsonRequestCallback fn);
virtual esp_err_t handleRequest(PsychicRequest *request) override;
virtual esp_err_t handleRequest(PsychicRequest* request, PsychicResponse* response) override;
};
#endif