@@ -270,35 +270,63 @@ bool Models::HasModel(const std::string& identifier) const {
270270 }
271271}
272272
273- cpp::result<std::vector<std::string >, std::string> Models::GetModelSources ()
274- const {
273+ cpp::result<std::vector<ModelEntry >, std::string> Models::GetModels (
274+ const std::string& model_src) const {
275275 try {
276- std::vector<std::string> sources ;
276+ std::vector<ModelEntry> res ;
277277 SQLite::Statement query (db_,
278- " SELECT DISTINCT model_source FROM models WHERE "
279- " status = \" downloadable\" " );
280-
278+ " SELECT model_id, author_repo_id, branch_name, "
279+ " path_to_model_yaml, model_alias, model_format, "
280+ " model_source, status, engine, metadata FROM "
281+ " models WHERE model_source = "
282+ " ? AND status = \" downloadable\" " );
283+ query.bind (1 , model_src);
281284 while (query.executeStep ()) {
282- sources.push_back (query.getColumn (0 ).getString ());
285+ ModelEntry entry;
286+ entry.model = query.getColumn (0 ).getString ();
287+ entry.author_repo_id = query.getColumn (1 ).getString ();
288+ entry.branch_name = query.getColumn (2 ).getString ();
289+ entry.path_to_model_yaml = query.getColumn (3 ).getString ();
290+ entry.model_alias = query.getColumn (4 ).getString ();
291+ entry.model_format = query.getColumn (5 ).getString ();
292+ entry.model_source = query.getColumn (6 ).getString ();
293+ entry.status = StringToStatus (query.getColumn (7 ).getString ());
294+ entry.engine = query.getColumn (8 ).getString ();
295+ entry.metadata = query.getColumn (9 ).getString ();
296+ res.push_back (entry);
283297 }
284- return sources ;
298+ return res ;
285299 } catch (const std::exception& e) {
286300 return cpp::fail (e.what ());
287301 }
288302}
289303
290- cpp::result<std::vector<std::string >, std::string> Models::GetModels (
291- const std::string& model_src) const {
304+ cpp::result<std::vector<ModelEntry >, std::string> Models::GetModelSources ()
305+ const {
292306 try {
293- std::vector<std::string> ids;
294- SQLite::Statement query (db_,
295- " SELECT model_id FROM models WHERE model_source = "
296- " ? AND status = \" downloadable\" " );
297- query.bind (1 , model_src);
307+ std::vector<ModelEntry> res;
308+ SQLite::Statement query (
309+ db_,
310+ " SELECT model_id, author_repo_id, branch_name, "
311+ " path_to_model_yaml, model_alias, model_format, "
312+ " model_source, status, engine, metadata FROM models "
313+ " WHERE model_source != \"\" AND (status = \" downloaded\" OR status = "
314+ " \" downloadable\" )" );
298315 while (query.executeStep ()) {
299- ids.push_back (query.getColumn (0 ).getString ());
316+ ModelEntry entry;
317+ entry.model = query.getColumn (0 ).getString ();
318+ entry.author_repo_id = query.getColumn (1 ).getString ();
319+ entry.branch_name = query.getColumn (2 ).getString ();
320+ entry.path_to_model_yaml = query.getColumn (3 ).getString ();
321+ entry.model_alias = query.getColumn (4 ).getString ();
322+ entry.model_format = query.getColumn (5 ).getString ();
323+ entry.model_source = query.getColumn (6 ).getString ();
324+ entry.status = StringToStatus (query.getColumn (7 ).getString ());
325+ entry.engine = query.getColumn (8 ).getString ();
326+ entry.metadata = query.getColumn (9 ).getString ();
327+ res.push_back (entry);
300328 }
301- return ids ;
329+ return res ;
302330 } catch (const std::exception& e) {
303331 return cpp::fail (e.what ());
304332 }
0 commit comments