From d03d8ba2a4785b9ded3590deb0ff87caf4367ed3 Mon Sep 17 00:00:00 2001 From: zhengrunyu Date: Wed, 13 Apr 2022 10:48:47 +0800 Subject: [PATCH] * Add api for record estimate for bug. --- api/v1/entries/bugrecordestimate.php | 61 ++++++++++++++++++++++++++++ config/routes.php | 1 + 2 files changed, 62 insertions(+) create mode 100644 api/v1/entries/bugrecordestimate.php diff --git a/api/v1/entries/bugrecordestimate.php b/api/v1/entries/bugrecordestimate.php new file mode 100644 index 0000000000..60f9723958 --- /dev/null +++ b/api/v1/entries/bugrecordestimate.php @@ -0,0 +1,61 @@ + + * @package entries + * @version 1 + * @link http://www.zentao.net + */ +class bugRecordEstimateEntry extends Entry +{ + /** + * GET method. + * + * @param int $bugID + * @access public + * @return void + */ + public function get($bugID) + { + if($this->config->edition == 'open') return $this->send400('ZenTaoPMS does not have bug effort function.'); + + $control = $this->loadController('effort', 'createForObject'); + $control->createForObject('bug', $bugID); + + $data = $this->getData(); + if(!$data) return $this->error('error'); + if(isset($data->status) and $data->status == 'fail') return $this->sendError(zget($data, 'code', 400), $data->message); + + $effort = $data->data->efforts; + + $this->send(200, array('effort' => $effort)); + } + + /** + * POST method. + * + * @param int $bugID + * @access public + * @return void + */ + public function post($bugID) + { + if($this->config->edition == 'open') return $this->send400('ZenTaoPMS does not have bug effort function.'); + + $fields = 'id,dates,consumed,objectType,objectID,work'; + $this->batchSetPost($fields); + $control = $this->loadController('effort', 'createForObject'); + $control->createForObject('bug', $bugID); + + $data = $this->getData(); + if(!$data) return $this->send400('error'); + if(isset($data->status) and $data->status == 'fail') return $this->sendError(zget($data, 'code', 400), $data->message); + + $bug = $this->loadModel('bug')->getByID($bugID); + + $this->send(200, $this->format($bug, 'openedBy:user,openedDate:time,assignedTo:user,assignedDate:time,reviewedBy:user,reviewedDate:time,lastEditedBy:user,lastEditedDate:time,closedBy:user,closedDate:time,deleted:bool,mailto:userList')); + } +} diff --git a/config/routes.php b/config/routes.php index 69d6a6f156..65d0f8a7f7 100644 --- a/config/routes.php +++ b/config/routes.php @@ -67,6 +67,7 @@ $routes['/bugs/:id/assign'] = 'bugAssign'; $routes['/bugs/:id/confirm'] = 'bugConfirm'; $routes['/bugs/:id/resolve'] = 'bugResolve'; $routes['/bugs/:id/active'] = 'bugActive'; +$routes['/bugs/:id/estimate'] = 'bugRecordEstimate'; $routes['/programs/:id/projects'] = 'projects'; $routes['/products/:id/projects'] = 'productProjects';