From f6b5bbef00d80668f970e0f7287b9d596206eac8 Mon Sep 17 00:00:00 2001 From: Akkadius Date: Tue, 7 Jul 2020 02:21:44 -0500 Subject: [PATCH] Add world api get_database_schema --- world/eqemu_api_world_data_service.cpp | 61 ++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/world/eqemu_api_world_data_service.cpp b/world/eqemu_api_world_data_service.cpp index 99cbcebe1..10bf6dab0 100644 --- a/world/eqemu_api_world_data_service.cpp +++ b/world/eqemu_api_world_data_service.cpp @@ -23,6 +23,7 @@ #include "eqemu_api_world_data_service.h" #include "zoneserver.h" #include "zonelist.h" +#include "../common/database_schema.h" extern ZSList zoneserver_list; extern ClientList client_list; @@ -60,6 +61,63 @@ void callGetZoneList(Json::Value &response) } } +void callGetDatabaseSchema(Json::Value &response) +{ + Json::Value player_tables_json; + std::vector player_tables = DatabaseSchema::GetPlayerTables(); + for (const auto &table : player_tables) { + player_tables_json.append(table); + } + + Json::Value content_tables_json; + std::vector content_tables = DatabaseSchema::GetContentTables(); + for (const auto &table : content_tables) { + content_tables_json.append(table); + } + + Json::Value server_tables_json; + std::vector server_tables = DatabaseSchema::GetServerTables(); + for (const auto &table : server_tables) { + server_tables_json.append(table); + } + + Json::Value login_tables_json; + std::vector login_tables = DatabaseSchema::GetLoginTables(); + for (const auto &table : login_tables) { + login_tables_json.append(table); + } + + Json::Value state_tables_json; + std::vector state_tables = DatabaseSchema::GetStateTables(); + for (const auto &table : state_tables) { + state_tables_json.append(table); + } + + Json::Value version_tables_json; + std::vector version_tables = DatabaseSchema::GetVersionTables(); + for (const auto &table : version_tables) { + version_tables_json.append(table); + } + + Json::Value character_table_columns_json; + std::map character_table = DatabaseSchema::GetCharacterTables(); + for (const auto &ctc : character_table) { + character_table_columns_json[ctc.first] = ctc.second; + } + + Json::Value schema; + + schema["character_table_columns"] = character_table_columns_json; + schema["content_tables"] = content_tables_json; + schema["login_tables"] = login_tables_json; + schema["player_tables"] = player_tables_json; + schema["server_tables"] = server_tables_json; + schema["state_tables"] = state_tables_json; + schema["version_tables"] = version_tables_json; + + response.append(schema); +} + void callGetClientList(Json::Value &response) { client_list.GetClientList(response); @@ -72,6 +130,9 @@ void EQEmuApiWorldDataService::get(Json::Value &response, const std::vector