* Code review for issue api.

This commit is contained in:
zhujinyong
2021-08-25 17:29:59 +08:00
parent 224977ab88
commit ce09fc310f
9 changed files with 41 additions and 19 deletions
+4 -1
View File
@@ -10,12 +10,15 @@ class issueEntry extends Entry
{
public function get($issueID)
{
/* If $issueID has '-', go to productIssue entry point for Gitlab. */
if(strpos($issueID, '-') !== FALSE) return $this->fetch('productIssue', 'get', array('issueID' => $issueID));
$control = $this->loadController('issue', 'view');
$control->view($issueID);
$data = $this->getData();
if(!$data or (isset($data->message) and $data->message == '404 Not found')) return $this->send404();
if(isset($data->status) and $data->status == 'success') $this->send(200, $this->format($data->data->issue, 'createdDate:time,editedDate:time,assignedDate:time'));
if(isset($data->status) and $data->status == 'success') return $this->send(200, $this->format($data->data->issue, 'createdDate:time,editedDate:time,assignedDate:time'));
if(isset($data->status) and $data->status == 'fail') return $this->sendError(400, $data->message);
$this->sendError(400, 'error');
+2 -2
View File
@@ -1,5 +1,4 @@
<?php
/**
* 禅道API的issues资源类
* 版本V1
@@ -18,12 +17,13 @@ class issuesEntry extends entry
if(!isset($data->status)) return $this->sendError(400, 'error');
if(isset($data->status) and $data->status == 'fail') return $this->sendError(400, $data->message);
$pager = $data->data->pager;
$pager = $data->data->pager;
$result = array();
foreach($data->data->issues as $issue)
{
$result[] = $this->format($issue, 'createdDate:time,editedDate:time,assignedDate:time');
}
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'issues' => $result));
}
+1 -2
View File
@@ -15,7 +15,7 @@ class riskEntry extends Entry
$data = $this->getData();
if(!$data or (isset($data->message) and $data->message == '404 Not found')) return $this->send404();
if(isset($data->status) and $data->status == 'success') $this->send(200, $this->format($data->data->risk, 'createdDate:time,editedDate:time'));
if(isset($data->status) and $data->status == 'success') return $this->send(200, $this->format($data->data->risk, 'createdDate:time,editedDate:time'));
if(isset($data->status) and $data->status == 'fail') return $this->sendError(400, $data->message);
$this->sendError(400, 'error');
@@ -42,7 +42,6 @@ class riskEntry extends Entry
$control = $this->loadController('risk', 'delete');
$control->delete($riskID, 'true');
$this->getData();
$this->sendSuccess(200, 'success');
}
}
+3 -3
View File
@@ -1,5 +1,4 @@
<?php
/**
* 禅道API的risks资源类
* 版本V1
@@ -18,18 +17,19 @@ class risksEntry extends entry
if(!isset($data->status)) return $this->sendError(400, 'error');
if(isset($data->status) and $data->status == 'fail') return $this->sendError(400, $data->message);
$pager = $data->data->pager;
$pager = $data->data->pager;
$result = array();
foreach($data->data->risks as $risk)
{
$result[] = $this->format($risk, 'createdDate:time,editedDate:time');
}
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'risks' => $result));
}
public function post($projectID = 0)
{
if((int)$projectID <= 0) $this->sendError(400, 'The id of project is wrong.');
if((int)$projectID <= 0) return $this->sendError(400, 'The id of project is wrong.');
$fields = 'source,name,category,strategy,status,impact,probability,rate,identifiedDate,plannedClosedDate,actualClosedDate,resolvedBy,assignedTo,prevention,remedy,resolution';
$this->batchSetPost($fields);
+2
View File
@@ -18,6 +18,7 @@ class testtaskEntry extends entry
if(!isset($data->data->task)) $this->sendError(400, 'error');
$testtask = $data->data->task;
$this->send(200, $this->format($testtask, 'realFinishedDate:time'));
}
@@ -27,6 +28,7 @@ class testtaskEntry extends entry
$control->delete($testtaskID, 'yes');
$this->getData();
$this->sendSuccess(200, 'success');
}
}
+2 -1
View File
@@ -17,12 +17,13 @@ class testtasksEntry extends entry
if(!isset($data->status)) return $this->sendError(400, 'error');
if(isset($data->status) and $data->status == 'fail') return $this->sendError(400, $data->message);
$pager = $data->data->pager;
$pager = $data->data->pager;
$result = array();
foreach($data->data->tasks as $testtask)
{
$result[] = $this->format($testtask, 'realFinishedDate:time');
}
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'testtasks' => $result));
}
}
+5 -5
View File
@@ -287,7 +287,7 @@ $filter->doc->showfiles->get['recPerPage'] = 'int';
$filter->doc->showfiles->get['recTotal'] = 'int';
$filter->doc->showfiles->get['title'] = 'reg::any';
$filter->file->download->get['charset'] = 'reg::lang';
$filter->file->download->get['charset'] = 'reg::lang';
$filter->mail->batchdelete->get['idList'] = 'reg::idList';
@@ -330,10 +330,10 @@ $filter->repo->default->get['repoPath'] = 'reg::base64';
$filter->repo->default->get['path'] = 'reg::base64';
$filter->repo->default->get['entry'] = 'reg::base64';
$filter->repo->default->cookie['repoBranch'] = 'reg::any';
$filter->repo->diff->cookie['arrange'] = 'reg::word';
$filter->repo->diff->cookie['repoPairs'] = 'array';
$filter->repo->view->cookie['repoPairs'] = 'array';
$filter->repo->default->cookie['repoBranch'] = 'reg::any';
$filter->repo->diff->cookie['arrange'] = 'reg::word';
$filter->repo->diff->cookie['repoPairs'] = 'array';
$filter->repo->view->cookie['repoPairs'] = 'array';
$filter->repo->ajaxsynccommit->cookie['syncBranch'] = 'reg::any';
$filter->webhook->bind->get['selectedDepts'] = 'reg::checked';
+3 -5
View File
@@ -42,8 +42,10 @@ $routes['/user'] = 'user';
$routes['/programs'] = 'programs';
$routes['/programs/:id'] = 'program';
$routes['/issues/:issueID'] = 'productIssue';
$routes['/products/:productID/issues'] = 'productIssues';
$routes['/projects/:projectID/issues'] = 'issues';
$routes['/issues'] = 'issues';
$routes['/issues/:issueID'] = 'issue';
$routes['/todos'] = 'todos';
$routes['/todos/:id'] = 'todo';
@@ -55,8 +57,4 @@ $routes['/projects/:project/risks'] = 'risks';
$routes['/risks'] = 'risks';
$routes['/risks/:id'] = 'risk';
$routes['/projects/:project/questions'] = 'issues';
$routes['/questions'] = 'issues';
$routes['/questions/:id'] = 'issue';
$config->routes = $routes;
+19
View File
@@ -509,4 +509,23 @@ class baseEntry
return $value;
}
}
/**
* 获取其他方法的执行结果。
* Fetch result of other method.
*
* @param string $entry
* @param string $method
* @param array $params
* @access public
* @return void
*/
public function fetch($entry, $method, $params = array())
{
include($this->app->appRoot . "api/{$this->app->version}/entries/" . strtolower($entry) . ".php");
$entryName = $entry . 'Entry';
$entry = new $entryName();
return call_user_func_array(array($entry, $method), $params);
}
}