1 #include "RouteController.h"
4 namespace Odb::Lib::App
6 RouteController::RouteController(IOdbServerApp& serverApp)
7 : m_serverApp(serverApp)
11 void RouteController::register_route_handler(std::string route, TRouteHandlerFunction handler)
13 m_serverApp.crow_app().route_dynamic(std::move(route))
14 ([ handler](
const crow::request& req)
43 crow::response Odb::Lib::App::RouteController::makeLoadedFileModelsResponse()
const
45 auto unloadedDesignNames = m_serverApp.designs().getUnloadedDesignNames();
46 auto loadedFileArchiveNames = m_serverApp.designs().getLoadedFileArchiveNames();
47 auto loadedDesignNames = m_serverApp.designs().getLoadedDesignNames();
49 crow::json::wvalue::list designs;
50 for (
const auto& designName : unloadedDesignNames)
53 auto isDesign =
false;
54 if (std::find(loadedFileArchiveNames.begin(), loadedFileArchiveNames.end(), designName) != loadedFileArchiveNames.end())
59 else if (std::find(loadedDesignNames.begin(), loadedDesignNames.end(), designName) != loadedDesignNames.end())
64 crow::json::wvalue design;
65 design[
"name"] = designName;
66 design[
"loaded"] = loaded;
67 design[
"type"] = isDesign?
"Design" :
"FileArchive";
68 designs.push_back(design);
70 crow::json::wvalue jsonResponse;
71 jsonResponse[
"filearchives"] = std::move(designs);
74 auto j = jsonResponse.dump();
77 return crow::response(jsonResponse);