fix: myself. need smaller commits
This commit is contained in:
parent
0b8c755a6b
commit
0247031a3d
11 changed files with 164 additions and 11 deletions
|
@ -4,8 +4,8 @@
|
|||
#include <helpers.h>
|
||||
#include <cmath>
|
||||
#include <models/controller_dbo.h>
|
||||
#include <fstream>
|
||||
#include "api_v1_controllers.h"
|
||||
|
||||
using namespace api::v1;
|
||||
|
||||
void controllers::post_discover(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback)
|
||||
|
@ -94,15 +94,20 @@ void controllers::post_discover(const HttpRequestPtr &req, std::function<void(co
|
|||
}
|
||||
|
||||
answer_payload[payload_length] = '\0';
|
||||
std::ifstream answer_payload_stream(answer_payload);
|
||||
std::istringstream answer_payload_stream(answer_payload);
|
||||
|
||||
Json::CharReaderBuilder json_reader;
|
||||
json_reader["strictRoot"] = true;
|
||||
|
||||
std::string errors;
|
||||
Json::Value client_info;
|
||||
|
||||
if (!Json::parseFromStream(json_reader, answer_payload_stream, &client_info, &errors))
|
||||
{
|
||||
LOG_ERROR << "Failed to parse configuration: " << errors;
|
||||
LOG_ERROR << "Failed to parse response: " << errors;
|
||||
discover_answer_buf[0] = config::discover_code_reject;
|
||||
send(client_fd, discover_answer_buf, sizeof(uint8_t), 0);
|
||||
close(client_fd);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -120,7 +125,7 @@ void controllers::post_discover(const HttpRequestPtr &req, std::function<void(co
|
|||
{
|
||||
known_controllers[i]->active = true;
|
||||
known_controllers[i]->update();
|
||||
free(known_controllers[i]);
|
||||
delete known_controllers[i];
|
||||
found_discovered_in_list = true;
|
||||
known_controllers[i] = known_controllers[i + 1];
|
||||
}
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
#include <models/relay_dbo.h>
|
||||
#include <helpers.h>
|
||||
#include <models/controller_dbo.h>
|
||||
#include <models/schedule_dbo.h>
|
||||
#include <config.h>
|
||||
#include "api_v1_controllers.h"
|
||||
|
||||
using namespace api::v1;
|
||||
|
@ -93,8 +95,22 @@ controllers::put_relays_one_by_id_and_num(const HttpRequestPtr &req,
|
|||
}
|
||||
else
|
||||
{
|
||||
auto schedules = schedule_dbo::get_by_simple("id", body["active_schedule"].asCString(), (intptr_t)&sqlite3_bind_text);
|
||||
auto controllers = controller_dbo::get_by_simple("id", controller_id.c_str(), (intptr_t)&sqlite3_bind_text);
|
||||
|
||||
Json::Value payload;
|
||||
payload["target"] = relay_num;
|
||||
payload["schedule"] = schedules[0]->to_json();
|
||||
|
||||
Json::StreamWriterBuilder json_writer;
|
||||
|
||||
controllers[0]->command(config::command_code_set_schedule, Json::writeString(json_writer, payload).c_str());
|
||||
|
||||
auto resp = HttpResponse::newHttpJsonResponse(relay->to_json());
|
||||
callback(resp);
|
||||
|
||||
schedule_dbo::free_list(schedules);
|
||||
controller_dbo::free_list(controllers);
|
||||
}
|
||||
|
||||
delete relay;
|
||||
|
|
|
@ -48,6 +48,15 @@ schedules::get_one_by_id(const HttpRequestPtr &req, std::function<void(const Htt
|
|||
void
|
||||
schedules::delete_one_by_id(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback, const std::string& schedule_id)
|
||||
{
|
||||
if(strcmp(schedule_id.c_str(), "off") == 0)
|
||||
{
|
||||
auto resp = HttpResponse::newHttpResponse();
|
||||
resp->setStatusCode(k403Forbidden);
|
||||
callback(resp);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
schedule_dbo **schedules = schedule_dbo::get_by_simple("id", schedule_id.c_str(), (intptr_t) &sqlite3_bind_text);
|
||||
|
||||
if(schedules[0])
|
||||
|
@ -100,6 +109,15 @@ void
|
|||
schedules::put_one_by_id(const HttpRequestPtr &req, std::function<void(const HttpResponsePtr &)> &&callback,
|
||||
const std::string &schedule_id)
|
||||
{
|
||||
if(strcmp(schedule_id.c_str(), "off") == 0)
|
||||
{
|
||||
auto resp = HttpResponse::newHttpResponse();
|
||||
resp->setStatusCode(k403Forbidden);
|
||||
callback(resp);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Json::Value body = *req->jsonObject();
|
||||
|
||||
schedule_dbo **schedules = schedule_dbo::get_by_simple("id", schedule_id.c_str(), (intptr_t) &sqlite3_bind_text);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue