#include "output.h"
#include <stdbool.h>
#include <stdio.h>

int sensor_data_output_json(
    const sensor_data_t* values, size_t num_values,
    char* buffer, size_t buffer_size)
{
    int offset = 0;
    offset += snprintf(buffer + offset,
                       buffer_size - offset,
                       "{\"sensors\":[");
    bool first = true;
    for (size_t i = 0; i < num_values; i++) {
        if (!first) {
            offset +=
                snprintf(buffer + offset,
                         buffer_size - offset, ",");
        }
        first = false;
        offset += snprintf(
            buffer + offset, buffer_size - offset,
            "{\"name\":\"%s\",\"value\":%.2f}",
            values[i].name, values[i].value);
    }
    snprintf(buffer + offset, buffer_size - offset,
             "]}");
    return offset;
}
