#include <util/data_file.hpp> #include <valijson/adapters/nlohmann_json_adapter.hpp> #include <valijson/schema.hpp> #include <valijson/schema_parser.hpp> #include <valijson/validator.hpp> #include <regex> namespace fs = std::filesystem; namespace util { void findFiles(const fs::path& i_dirPath, const std::string& i_matchString, std::vector<fs::path>& o_foundPaths) { if (fs::exists(i_dirPath)) { std::regex search{i_matchString}; for (const auto& file : fs::directory_iterator(i_dirPath)) { std::string path = file.path().string(); if (std::regex_search(path, search)) { o_foundPaths.emplace_back(file.path()); } } } } bool validateJson(const nlohmann::json& i_schema, const nlohmann::json& i_json) { valijson::Schema schema; valijson::SchemaParser parser; valijson::adapters::NlohmannJsonAdapter schemaAdapter(i_schema); parser.populateSchema(schemaAdapter, schema); valijson::Validator validator; valijson::adapters::NlohmannJsonAdapter targetAdapter(i_json); return validator.validate(schema, targetAdapter, nullptr); } } // namespace util