#include "dm_common.h"

static int gateway_report_arg_parse(gateway_report_arg_t *arg, const char *str)
{
    if (!str || !arg)
    {
        return -1;
    }
    cJSON *root = cJSON_Parse(str);
    if (!root)
    {
        return -1;
    }
    GET_JSON_VALUE_INT(root, "global_intv", arg->intv);
    cJSON_Delete(root);
    return 0;
}

static void msg_set_gateway_status_report(dm_var_t *var, ipc_msg_t *mqtt_msg)
{
    if (gateway_report_arg_parse(&var->report_arg, mqtt_msg->payload) == 0)
    {
        var->report_arg.stop_times = time(NULL) + REPORT_KEEP_TIMES;
    }
}

int dm_handle_mqtt_data(dm_var_t *var, ipc_msg_t *mqtt_msg)
{
    if (strstr(mqtt_msg->topic, TOPIC_SET_GATEWAYSTATUSINTV))
    {
        msg_set_gateway_status_report(var, mqtt_msg);
    }
	return 0;
}
