#include "common/Validation.h" #include namespace visione::validation { bool hasString(const Json::Value &body, const std::string &key) { return body.isMember(key) && body[key].isString() && !body[key].asString().empty(); } bool hasNumber(const Json::Value &body, const std::string &key) { return body.isMember(key) && body[key].isNumeric(); } std::vector missingStrings( const Json::Value &body, std::initializer_list keys) { std::vector missing; for (const auto *key : keys) { if (!hasString(body, key)) { missing.emplace_back(key); } } return missing; } bool isValidEmail(const std::string &email) { static const std::regex pattern(R"(^[^@\s]+@[^@\s]+\.[^@\s]+$)"); return std::regex_match(email, pattern); } bool isValidFiscalCode(const std::string &fiscalCode) { static const std::regex pattern(R"(^[A-Za-z0-9]{16}$)"); return std::regex_match(fiscalCode, pattern); } } // namespace visione::validation