#include "JsonLogic.h"

namespace json_logic
{
    Json JsonLogic::operation_array_merge(JsonArrayView values, JsonView data) const
    {
        Json result;
        auto output = result.to<ArduinoJson::JsonArray>();
        for (JsonView value : values)
        {
            const Json applied = ApplyInternal(value, data);
            if (HasError()) return Json{};
            if (applied.is<ArduinoJson::JsonArrayConst>())
            {
                for (JsonView element : applied.as<ArduinoJson::JsonArrayConst>())
                    output.add(element);
            }
            else
            {
                output.add(applied);
            }
        }
        return result;
    }
}
