From 19d8b5c695db5ac159e175fc79d69d8ae083b4cc Mon Sep 17 00:00:00 2001 From: sahithyaravi1493 Date: Thu, 5 Sep 2019 11:37:17 +0200 Subject: [PATCH 1/7] add uploader to evaluation_list --- openml_OS/models/api/v1/Api_evaluation.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openml_OS/models/api/v1/Api_evaluation.php b/openml_OS/models/api/v1/Api_evaluation.php index 736b3079a..26733307d 100644 --- a/openml_OS/models/api/v1/Api_evaluation.php +++ b/openml_OS/models/api/v1/Api_evaluation.php @@ -207,7 +207,7 @@ private function evaluation_list($segs, $user_id) { // TODO: remove dependency on task_inputs and dataset table // TODO (2): transform into subquery where all columns except evaluation_fold are obtained in subquery (along with limit requirements, as MYSQL query optimizer does not seem to understand this query has an upper limit to the number of obtained runs that need to be inspected) $sql = - 'SELECT r.rid, r.task_id, r.start_time, s.implementation_id, s.sid, f.name AS `function`, i.fullName, d.did, d.name, e.evaluation_engine_id, ' . $columns . ' ' . + 'SELECT r.rid, r.task_id, r.start_time, r.uploader, s.implementation_id, s.sid, f.name AS `function`, i.fullName, d.did, d.name, e.evaluation_engine_id, ' . $columns . ' ' . 'FROM run r, ' . $eval_table . ' e, algorithm_setup s, implementation i, dataset d, task t, task_inputs ti, math_function f ' . 'WHERE r.setup = s.sid ' . 'AND e.source = r.rid ' . From 9010ff3b36ebf31e5df8d2bd6623c904e40801ec Mon Sep 17 00:00:00 2001 From: sahithyaravi1493 Date: Mon, 9 Sep 2019 13:37:34 +0200 Subject: [PATCH 2/7] add user_id to name --- openml_OS/models/api/v1/Api_user.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/openml_OS/models/api/v1/Api_user.php b/openml_OS/models/api/v1/Api_user.php index 076963688..f2ee77ff9 100644 --- a/openml_OS/models/api/v1/Api_user.php +++ b/openml_OS/models/api/v1/Api_user.php @@ -74,5 +74,14 @@ function bootstrap($format, $segments, $request_type, $user_id) { $this->_xmlContents( 'user-delete', array( 'user' => $user ) ); } */ + private function username_from_id($user_id) + { + # pass user_id to get username + $user = $this->Author->getById($user_id); + $user_name = $user->first_name . ' ' . $user->last_name; + $this->xmlContents('username', $this->version, $user_name); + } + + } ?> From 9a082e0784bc54602c89f408336c72149be5cb5f Mon Sep 17 00:00:00 2001 From: sahithyaravi1493 Date: Mon, 9 Sep 2019 13:38:50 +0200 Subject: [PATCH 3/7] add to initial check --- openml_OS/models/api/v1/Api_user.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openml_OS/models/api/v1/Api_user.php b/openml_OS/models/api/v1/Api_user.php index f2ee77ff9..7c0a32389 100644 --- a/openml_OS/models/api/v1/Api_user.php +++ b/openml_OS/models/api/v1/Api_user.php @@ -15,6 +15,12 @@ function __construct() { function bootstrap($format, $segments, $request_type, $user_id) { $this->outputFormat = $format; + + # http://test.openml.org/api/v1/user/3375 + if (count($segments)== 1 && is_numeric($segments[0])) { + $this->username_from_id($segments[0]); + return; + } /*$getpost = array('get','post'); From 6eadfcfe75c583baa93c56b5479358734c9ac051 Mon Sep 17 00:00:00 2001 From: sahithyaravi1493 Date: Mon, 9 Sep 2019 14:39:41 +0200 Subject: [PATCH 4/7] list of user names --- openml_OS/models/api/v1/Api_user.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/openml_OS/models/api/v1/Api_user.php b/openml_OS/models/api/v1/Api_user.php index 7c0a32389..407edb18b 100644 --- a/openml_OS/models/api/v1/Api_user.php +++ b/openml_OS/models/api/v1/Api_user.php @@ -21,6 +21,12 @@ function bootstrap($format, $segments, $request_type, $user_id) { $this->username_from_id($segments[0]); return; } + # http://test.openml.org/api/v1/user/list/uploader/1,2 + if (count($segments) >= 1 && $segments[0] == 'list') { + array_shift($segments); + $this->user_list($segments); + return; + } /*$getpost = array('get','post'); @@ -88,6 +94,24 @@ private function username_from_id($user_id) $this->xmlContents('username', $this->version, $user_name); } + private function user_list($segs) + { + # pass uploader list to get username list + $legal_filters = array('uploader'); + $query_string = array(); + for ($i = 0; $i < count($segs); $i += 2) { + $query_string[$segs[$i]] = urldecode($segs[$i+1]); + if (in_array($segs[$i], $legal_filters) == false) { + $this->returnError(370, $this->version, $this->openmlGeneralErrorCode, 'Legal filter operators: ' . implode(',', $legal_filters) .'. Found illegal filter: ' . $segs[$i]); + return; + } + } + $uploader_id = element('uploader',$query_string); + $sql = 'SELECT `username` FROM `users` WHERE `id` In ('. $uploader_id.')'; + $user_results = $this->Author->query($sql); + $this->xmlContents('user_results', $this->version, array('user_results' => $user_results)); +} + } ?> From 22d94666384f32a0089145a5489e66a62b7e5e39 Mon Sep 17 00:00:00 2001 From: sahithyaravi1493 Date: Mon, 9 Sep 2019 15:15:38 +0200 Subject: [PATCH 5/7] add username tpl to views and remove from_id function --- openml_OS/models/api/v1/Api_user.php | 44 +++++++------------ .../pages/api_new/v1/xml/user-name.tpl.php | 8 ++++ 2 files changed, 25 insertions(+), 27 deletions(-) create mode 100644 openml_OS/views/pages/api_new/v1/xml/user-name.tpl.php diff --git a/openml_OS/models/api/v1/Api_user.php b/openml_OS/models/api/v1/Api_user.php index 407edb18b..b0c73e6c8 100644 --- a/openml_OS/models/api/v1/Api_user.php +++ b/openml_OS/models/api/v1/Api_user.php @@ -16,15 +16,10 @@ function __construct() { function bootstrap($format, $segments, $request_type, $user_id) { $this->outputFormat = $format; - # http://test.openml.org/api/v1/user/3375 - if (count($segments)== 1 && is_numeric($segments[0])) { - $this->username_from_id($segments[0]); - return; - } # http://test.openml.org/api/v1/user/list/uploader/1,2 if (count($segments) >= 1 && $segments[0] == 'list') { array_shift($segments); - $this->user_list($segments); + $this->username_list($segments); return; } @@ -86,30 +81,25 @@ function bootstrap($format, $segments, $request_type, $user_id) { $this->_xmlContents( 'user-delete', array( 'user' => $user ) ); } */ - private function username_from_id($user_id) - { - # pass user_id to get username - $user = $this->Author->getById($user_id); - $user_name = $user->first_name . ' ' . $user->last_name; - $this->xmlContents('username', $this->version, $user_name); - } - private function user_list($segs) - { + private function username_list($segs) + { # pass uploader list to get username list - $legal_filters = array('uploader'); - $query_string = array(); - for ($i = 0; $i < count($segs); $i += 2) { - $query_string[$segs[$i]] = urldecode($segs[$i+1]); - if (in_array($segs[$i], $legal_filters) == false) { - $this->returnError(370, $this->version, $this->openmlGeneralErrorCode, 'Legal filter operators: ' . implode(',', $legal_filters) .'. Found illegal filter: ' . $segs[$i]); - return; - } + $legal_filters = array('uploader'); + $query_string = array(); + for ($i = 0; $i < count($segs); $i += 2) { + $query_string[$segs[$i]] = urldecode($segs[$i+1]); + if (in_array($segs[$i], $legal_filters) == false) { + $this->returnError(370, $this->version, $this->openmlGeneralErrorCode, 'Legal filter operators: ' . implode(',', $legal_filters) .'. Found illegal filter: ' . $segs[$i]); + return; + } + } + $uploader_id = element('uploader', $query_string); + $sql = 'SELECT `username`,`id` FROM `users` WHERE `id` In ('. $uploader_id.')'; + $users = $this->Author->query($sql); + $this->xmlContents('user-name', $this->version, array('users' => $users)); } - $uploader_id = element('uploader',$query_string); - $sql = 'SELECT `username` FROM `users` WHERE `id` In ('. $uploader_id.')'; - $user_results = $this->Author->query($sql); - $this->xmlContents('user_results', $this->version, array('user_results' => $user_results)); + } diff --git a/openml_OS/views/pages/api_new/v1/xml/user-name.tpl.php b/openml_OS/views/pages/api_new/v1/xml/user-name.tpl.php new file mode 100644 index 000000000..8836f8c58 --- /dev/null +++ b/openml_OS/views/pages/api_new/v1/xml/user-name.tpl.php @@ -0,0 +1,8 @@ + + + + id ?> + username ?> + + + From f3937b6c73ada202a331ecb1fcb59ad4301dfe87 Mon Sep 17 00:00:00 2001 From: sahithyaravi1493 Date: Mon, 9 Sep 2019 15:17:57 +0200 Subject: [PATCH 6/7] remove extra brace --- openml_OS/models/api/v1/Api_user.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openml_OS/models/api/v1/Api_user.php b/openml_OS/models/api/v1/Api_user.php index b0c73e6c8..8b278802c 100644 --- a/openml_OS/models/api/v1/Api_user.php +++ b/openml_OS/models/api/v1/Api_user.php @@ -103,5 +103,5 @@ private function username_list($segs) } -} + ?> From d2ae6c3809f67f168063dd201da5f22ebeb6743a Mon Sep 17 00:00:00 2001 From: sahithyaravi1493 Date: Mon, 9 Sep 2019 15:44:48 +0200 Subject: [PATCH 7/7] add uploader to evaluations --- openml_OS/views/pages/api_new/v1/xml/evaluations.tpl.php | 1 + 1 file changed, 1 insertion(+) diff --git a/openml_OS/views/pages/api_new/v1/xml/evaluations.tpl.php b/openml_OS/views/pages/api_new/v1/xml/evaluations.tpl.php index dcc5bf231..d11116b28 100644 --- a/openml_OS/views/pages/api_new/v1/xml/evaluations.tpl.php +++ b/openml_OS/views/pages/api_new/v1/xml/evaluations.tpl.php @@ -2,6 +2,7 @@ rid; ?> + uploader; ?> task_id; ?> sid; ?> implementation_id; ?>