diff --git a/engine/controllers/models.cc b/engine/controllers/models.cc index 17577aff5..afcedffd7 100644 --- a/engine/controllers/models.cc +++ b/engine/controllers/models.cc @@ -168,32 +168,9 @@ void Models::AbortPullModel( } } -void Models::ListModel(const HttpRequestPtr& req, - std::function&& callback, - std::optional author) const { - if (author.has_value()) { - auto res = model_src_svc_->GetRepositoryList(author.value()); - if (res.has_error()) { - Json::Value ret; - ret["message"] = res.error(); - auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret); - resp->setStatusCode(k400BadRequest); - callback(resp); - } else { - auto& info = res.value(); - Json::Value ret; - Json::Value arr(Json::arrayValue); - for (auto const& i : info) { - arr.append(i); - } - ret["data"] = arr; - auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret); - resp->setStatusCode(k200OK); - callback(resp); - } - return; - } - +void Models::ListModel( + const HttpRequestPtr& req, + std::function&& callback) const { namespace fs = std::filesystem; namespace fmu = file_manager_utils; Json::Value ret; @@ -877,4 +854,31 @@ void Models::GetModelSource( resp->setStatusCode(k200OK); callback(resp); } +} + +void Models::GetRepositoryList( + const HttpRequestPtr& req, + std::function&& callback, + std::optional author) { + if (!author.has_value()) + author = "cortexso"; + auto res = model_src_svc_->GetRepositoryList(author.value()); + if (res.has_error()) { + Json::Value ret; + ret["message"] = res.error(); + auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret); + resp->setStatusCode(k400BadRequest); + callback(resp); + } else { + auto& info = res.value(); + Json::Value ret; + Json::Value arr(Json::arrayValue); + for (auto const& i : info) { + arr.append(i); + } + ret["data"] = arr; + auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret); + resp->setStatusCode(k200OK); + callback(resp); + } } \ No newline at end of file diff --git a/engine/controllers/models.h b/engine/controllers/models.h index a905cc843..f21b50ea1 100644 --- a/engine/controllers/models.h +++ b/engine/controllers/models.h @@ -30,7 +30,7 @@ class Models : public drogon::HttpController { ADD_METHOD_TO(Models::PullModel, "/v1/models/pull", Options, Post); ADD_METHOD_TO(Models::AbortPullModel, "/v1/models/pull", Options, Delete); - ADD_METHOD_TO(Models::ListModel, "/v1/models?author={author}", Get); + ADD_METHOD_TO(Models::ListModel, "/v1/models", Get); ADD_METHOD_TO(Models::GetModel, "/v1/models/{1}", Get); ADD_METHOD_TO(Models::UpdateModel, "/v1/models/{1}", Options, Patch); ADD_METHOD_TO(Models::ImportModel, "/v1/models/import", Options, Post); @@ -44,6 +44,8 @@ class Models : public drogon::HttpController { ADD_METHOD_TO(Models::DeleteModelSource, "/v1/models/sources", Delete); ADD_METHOD_TO(Models::GetModelSources, "/v1/models/sources", Get); ADD_METHOD_TO(Models::GetModelSource, "/v1/models/sources/{src}", Get); + ADD_METHOD_TO(Models::GetRepositoryList, "/v1/models/hub?author={author}", + Get); METHOD_LIST_END explicit Models(std::shared_ptr db_service, @@ -63,8 +65,7 @@ class Models : public drogon::HttpController { void AbortPullModel(const HttpRequestPtr& req, std::function&& callback); void ListModel(const HttpRequestPtr& req, - std::function&& callback, - std::optional author) const; + std::function&& callback) const; void GetModel(const HttpRequestPtr& req, std::function&& callback, const std::string& model_id) const; @@ -112,6 +113,10 @@ class Models : public drogon::HttpController { std::function&& callback, const std::string& src); + void GetRepositoryList(const HttpRequestPtr& req, + std::function&& callback, + std::optional author); + private: std::shared_ptr db_service_; std::shared_ptr model_service_;