Added new calls

This commit is contained in:
Ken Van Hoeylandt 2025-06-20 00:18:11 +02:00
parent e66033c1c6
commit 7e6b6d5463
2 changed files with 42 additions and 13 deletions

View File

@ -20,10 +20,24 @@ class Development final : public Service {
kernel::SystemEventSubscription networkDisconnectEventSubscription = 0; kernel::SystemEventSubscription networkDisconnectEventSubscription = 0;
std::string deviceResponse; std::string deviceResponse;
httpd_uri_t getDeviceEndpoint = { httpd_uri_t handleGetInfoEndpoint = {
.uri = "/device", .uri = "/info",
.method = HTTP_GET, .method = HTTP_GET,
.handler = getDevice, .handler = handleGetInfo,
.user_ctx = this
};
httpd_uri_t appRunEndpoint = {
.uri = "/app/run",
.method = HTTP_POST,
.handler = handleAppRun,
.user_ctx = this
};
httpd_uri_t appInstallEndpoint = {
.uri = "/app/install",
.method = HTTP_POST,
.handler = handleAppInstall,
.user_ctx = this .user_ctx = this
}; };
@ -33,7 +47,9 @@ class Development final : public Service {
void startServer(); void startServer();
void stopServer(); void stopServer();
static esp_err_t getDevice(httpd_req_t* request); static esp_err_t handleGetInfo(httpd_req_t* request);
static esp_err_t handleAppRun(httpd_req_t* request);
static esp_err_t handleAppInstall(httpd_req_t* request);
public: public:

View File

@ -16,7 +16,6 @@ extern const ServiceManifest manifest;
constexpr const char* TAG = "DevService"; constexpr const char* TAG = "DevService";
static char* rest_read_buffer(httpd_req_t* request) { static char* rest_read_buffer(httpd_req_t* request) {
static char buffer[1024]; static char buffer[1024];
int contentLength = request->content_len; int contentLength = request->content_len;
@ -84,8 +83,6 @@ bool Development::isEnabled() const {
// region Enable/disable // region Enable/disable
// region Handlers
void Development::startServer() { void Development::startServer() {
auto lock = mutex.asScopedLock(); auto lock = mutex.asScopedLock();
lock.lock(); lock.lock();
@ -99,7 +96,9 @@ void Development::startServer() {
std::stringstream stream; std::stringstream stream;
stream << "{"; stream << "{";
stream << "\"cpuFamily\" : \"" << CONFIG_IDF_TARGET << "\""; stream << "\"cpuFamily\":\"" << CONFIG_IDF_TARGET << "\", ";
stream << "\"osVersion\":\"" << TT_VERSION << "\", ";
stream << "\"protocolVersion\":\"1.0.0\"";
stream << "}"; stream << "}";
deviceResponse = stream.str(); deviceResponse = stream.str();
@ -109,7 +108,9 @@ void Development::startServer() {
config.uri_match_fn = httpd_uri_match_wildcard; config.uri_match_fn = httpd_uri_match_wildcard;
if (httpd_start(&server, &config) == ESP_OK) { if (httpd_start(&server, &config) == ESP_OK) {
httpd_register_uri_handler(server, &getDeviceEndpoint); httpd_register_uri_handler(server, &handleGetInfoEndpoint);
httpd_register_uri_handler(server, &appRunEndpoint);
httpd_register_uri_handler(server, &appInstallEndpoint);
TT_LOG_I(TAG, "Started on port %d", config.server_port); TT_LOG_I(TAG, "Started on port %d", config.server_port);
} else { } else {
TT_LOG_E(TAG, "Failed to start"); TT_LOG_E(TAG, "Failed to start");
@ -156,11 +157,9 @@ void Development::onNetworkDisconnected() {
}); });
} }
// endregion
// region endpoints // region endpoints
esp_err_t Development::getDevice(httpd_req_t* request) { esp_err_t Development::handleGetInfo(httpd_req_t* request) {
if (httpd_resp_set_type(request, "application/json") != ESP_OK) { if (httpd_resp_set_type(request, "application/json") != ESP_OK) {
TT_LOG_W(TAG, "Failed to send header"); TT_LOG_W(TAG, "Failed to send header");
return ESP_FAIL; return ESP_FAIL;
@ -173,10 +172,24 @@ esp_err_t Development::getDevice(httpd_req_t* request) {
return ESP_FAIL; return ESP_FAIL;
} }
TT_LOG_I(TAG, "[200] /device from"); TT_LOG_I(TAG, "[200] /device");
return ESP_OK; return ESP_OK;
} }
esp_err_t Development::handleAppRun(httpd_req_t* request) {
httpd_resp_send(request, nullptr, 0);
TT_LOG_I(TAG, "[200] /app/run");
return ESP_OK;
}
esp_err_t Development::handleAppInstall(httpd_req_t* request) {
httpd_resp_send(request, nullptr, 0);
TT_LOG_I(TAG, "[200] /app/install");
return ESP_OK;
}
// endregion
std::shared_ptr<Development> findService() { std::shared_ptr<Development> findService() {
return std::static_pointer_cast<Development>( return std::static_pointer_cast<Development>(
findServiceById(manifest.id) findServiceById(manifest.id)