31 lines
839 B
C++
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
|