Skip to content

Commit 0250ac7

Browse files
chore: add /v1/models/hub endpoint (#2008)
Co-authored-by: sangjanai <[email protected]>
1 parent 663e6ea commit 0250ac7

File tree

2 files changed

+38
-29
lines changed

2 files changed

+38
-29
lines changed

engine/controllers/models.cc

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -168,32 +168,9 @@ void Models::AbortPullModel(
168168
}
169169
}
170170

171-
void Models::ListModel(const HttpRequestPtr& req,
172-
std::function<void(const HttpResponsePtr&)>&& callback,
173-
std::optional<std::string> author) const {
174-
if (author.has_value()) {
175-
auto res = model_src_svc_->GetRepositoryList(author.value());
176-
if (res.has_error()) {
177-
Json::Value ret;
178-
ret["message"] = res.error();
179-
auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret);
180-
resp->setStatusCode(k400BadRequest);
181-
callback(resp);
182-
} else {
183-
auto& info = res.value();
184-
Json::Value ret;
185-
Json::Value arr(Json::arrayValue);
186-
for (auto const& i : info) {
187-
arr.append(i);
188-
}
189-
ret["data"] = arr;
190-
auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret);
191-
resp->setStatusCode(k200OK);
192-
callback(resp);
193-
}
194-
return;
195-
}
196-
171+
void Models::ListModel(
172+
const HttpRequestPtr& req,
173+
std::function<void(const HttpResponsePtr&)>&& callback) const {
197174
namespace fs = std::filesystem;
198175
namespace fmu = file_manager_utils;
199176
Json::Value ret;
@@ -877,4 +854,31 @@ void Models::GetModelSource(
877854
resp->setStatusCode(k200OK);
878855
callback(resp);
879856
}
857+
}
858+
859+
void Models::GetRepositoryList(
860+
const HttpRequestPtr& req,
861+
std::function<void(const HttpResponsePtr&)>&& callback,
862+
std::optional<std::string> author) {
863+
if (!author.has_value())
864+
author = "cortexso";
865+
auto res = model_src_svc_->GetRepositoryList(author.value());
866+
if (res.has_error()) {
867+
Json::Value ret;
868+
ret["message"] = res.error();
869+
auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret);
870+
resp->setStatusCode(k400BadRequest);
871+
callback(resp);
872+
} else {
873+
auto& info = res.value();
874+
Json::Value ret;
875+
Json::Value arr(Json::arrayValue);
876+
for (auto const& i : info) {
877+
arr.append(i);
878+
}
879+
ret["data"] = arr;
880+
auto resp = cortex_utils::CreateCortexHttpJsonResponse(ret);
881+
resp->setStatusCode(k200OK);
882+
callback(resp);
883+
}
880884
}

engine/controllers/models.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class Models : public drogon::HttpController<Models, false> {
3030

3131
ADD_METHOD_TO(Models::PullModel, "/v1/models/pull", Options, Post);
3232
ADD_METHOD_TO(Models::AbortPullModel, "/v1/models/pull", Options, Delete);
33-
ADD_METHOD_TO(Models::ListModel, "/v1/models?author={author}", Get);
33+
ADD_METHOD_TO(Models::ListModel, "/v1/models", Get);
3434
ADD_METHOD_TO(Models::GetModel, "/v1/models/{1}", Get);
3535
ADD_METHOD_TO(Models::UpdateModel, "/v1/models/{1}", Options, Patch);
3636
ADD_METHOD_TO(Models::ImportModel, "/v1/models/import", Options, Post);
@@ -44,6 +44,8 @@ class Models : public drogon::HttpController<Models, false> {
4444
ADD_METHOD_TO(Models::DeleteModelSource, "/v1/models/sources", Delete);
4545
ADD_METHOD_TO(Models::GetModelSources, "/v1/models/sources", Get);
4646
ADD_METHOD_TO(Models::GetModelSource, "/v1/models/sources/{src}", Get);
47+
ADD_METHOD_TO(Models::GetRepositoryList, "/v1/models/hub?author={author}",
48+
Get);
4749
METHOD_LIST_END
4850

4951
explicit Models(std::shared_ptr<DatabaseService> db_service,
@@ -63,8 +65,7 @@ class Models : public drogon::HttpController<Models, false> {
6365
void AbortPullModel(const HttpRequestPtr& req,
6466
std::function<void(const HttpResponsePtr&)>&& callback);
6567
void ListModel(const HttpRequestPtr& req,
66-
std::function<void(const HttpResponsePtr&)>&& callback,
67-
std::optional<std::string> author) const;
68+
std::function<void(const HttpResponsePtr&)>&& callback) const;
6869
void GetModel(const HttpRequestPtr& req,
6970
std::function<void(const HttpResponsePtr&)>&& callback,
7071
const std::string& model_id) const;
@@ -112,6 +113,10 @@ class Models : public drogon::HttpController<Models, false> {
112113
std::function<void(const HttpResponsePtr&)>&& callback,
113114
const std::string& src);
114115

116+
void GetRepositoryList(const HttpRequestPtr& req,
117+
std::function<void(const HttpResponsePtr&)>&& callback,
118+
std::optional<std::string> author);
119+
115120
private:
116121
std::shared_ptr<DatabaseService> db_service_;
117122
std::shared_ptr<ModelService> model_service_;

0 commit comments

Comments
 (0)