Files

31 lines
839 B
C++

#pragma once
#include <drogon/orm/Field.h>
#include <drogon/orm/Result.h>
#include <json/json.h>
#include <string>
#include <unordered_map>
namespace visione::repositories
{
enum class JsonFieldType
{
String,
Int64,
UInt64,
Double,
Bool
};
using JsonRowSchema = std::unordered_map<std::string, JsonFieldType>;
Json::Value scalarToJson(JsonFieldType type, const drogon::orm::Field &field);
Json::Value rowToJson(const drogon::orm::Row &row);
Json::Value rowToJson(const drogon::orm::Row &row, const JsonRowSchema &schema);
Json::Value resultToJson(const drogon::orm::Result &result);
Json::Value resultToJson(const drogon::orm::Result &result,
const JsonRowSchema &schema);
std::string nullableString(const Json::Value &value, const std::string &key);
} // namespace visione::repositories