* Format fields of response data.
This commit is contained in:
@@ -15,7 +15,7 @@ class bugEntry extends entry
|
||||
|
||||
$data = $this->getData();
|
||||
$bug = $data->data->bug;
|
||||
$this->send(200, $bug);
|
||||
$this->send(200, $this->format($bug, 'activatedDate:time,openedDate:time,assignedDate:time,resolvedDate:time,closedDate:time,lastEditedDate:time'));
|
||||
}
|
||||
|
||||
public function put($bugID)
|
||||
@@ -35,7 +35,7 @@ class bugEntry extends entry
|
||||
if(!isset($data->status)) return $this->sendError(400, 'error');
|
||||
|
||||
$bug = $this->bug->getByID($bugID);
|
||||
$this->send(200, $bug);
|
||||
$this->send(200, $this->format($bug, 'activatedDate:time,openedDate:time,assignedDate:time,resolvedDate:time,closedDate:time,lastEditedDate:time'));
|
||||
}
|
||||
|
||||
public function delete($bugID)
|
||||
|
||||
@@ -21,7 +21,7 @@ class bugsEntry extends entry
|
||||
$result = array();
|
||||
foreach($bugs as $bug)
|
||||
{
|
||||
$result[] = $bug;
|
||||
$result[] = $this->format($bug, 'activatedDate:time,openedDate:time,assignedDate:time,resolvedDate:time,closedDate:time,lastEditedDate:time');
|
||||
}
|
||||
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'bugs' => $result));
|
||||
}
|
||||
@@ -51,6 +51,6 @@ class bugsEntry extends entry
|
||||
|
||||
$bug = $this->loadModel('bug')->getByID($data->id);
|
||||
|
||||
$this->send(200, $bug);
|
||||
$this->send(200, $this->format($bug, 'activatedDate:time,openedDate:time,assignedDate:time,resolvedDate:time,closedDate:time,lastEditedDate:time'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ class executionEntry extends Entry
|
||||
|
||||
$data = $this->getData();
|
||||
$execution = $data->data->execution;
|
||||
$this->send(200, $execution);
|
||||
$this->send(200, $this->format($execution, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time'));
|
||||
}
|
||||
|
||||
public function put($executionID)
|
||||
@@ -36,7 +36,7 @@ class executionEntry extends Entry
|
||||
if(!isset($data->result)) return $this->sendError(400, 'error');
|
||||
|
||||
$execution = $this->execution->getByID($executionID);
|
||||
$this->sendSuccess(200, $execution);
|
||||
$this->send(200, $this->format($execution, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time'));
|
||||
}
|
||||
|
||||
public function delete($executionID)
|
||||
|
||||
@@ -16,8 +16,13 @@ class executionsEntry extends entry
|
||||
|
||||
if(isset($data->status) and $data->status == 'success')
|
||||
{
|
||||
$pager = $data->data->pager;
|
||||
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'executions' => $data->data->executionStats));
|
||||
$pager = $data->data->pager;
|
||||
$result = array();
|
||||
foreach($data->data->executionStats as $execution)
|
||||
{
|
||||
$result[] = $this->format($execution, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time');
|
||||
}
|
||||
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'executions' => $result));
|
||||
}
|
||||
if(isset($data->status) and $data->status == 'fail') return $this->sendError(400, $data->message);
|
||||
|
||||
@@ -46,6 +51,6 @@ class executionsEntry extends entry
|
||||
|
||||
$execution = $this->loadModel('execution')->getByID($data->id);
|
||||
|
||||
$this->send(200, $execution);
|
||||
$this->send(201, $this->format($execution, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ class productEntry extends Entry
|
||||
$control->view($productID);
|
||||
|
||||
$data = $this->getData();
|
||||
if(isset($data->status) and $data->status == 'success') return $this->send(200, $data->data->product);
|
||||
if(isset($data->status) and $data->status == 'success') return $this->send(200, $this->format($data->data->product, 'createdDate:time'));
|
||||
if(isset($data->status) and $data->status == 'fail') return $this->sendError(400, $data->message);
|
||||
|
||||
$this->sendError(400, 'error');
|
||||
@@ -34,7 +34,8 @@ class productEntry extends Entry
|
||||
$data = $this->getData();
|
||||
if(isset($data->result) and $data->result == 'fail') return $this->sendError(400, $data->message);
|
||||
|
||||
$this->sendSuccess(200, 'success');
|
||||
$product = $this->product->getByID($productID);
|
||||
$this->sendSuccess(200, $this->format($product, 'createdDate:time'));
|
||||
}
|
||||
|
||||
public function delete($productID)
|
||||
|
||||
@@ -12,17 +12,18 @@ class productsEntry extends entry
|
||||
{
|
||||
$control = $this->loadController('product', 'all');
|
||||
$control->all();
|
||||
$data = $this->getData();
|
||||
$pager = $data->data->pager;
|
||||
|
||||
/* Response */
|
||||
$data = $this->getData();
|
||||
if(isset($data->status) and $data->status == 'success')
|
||||
{
|
||||
return $this->send(200, array('products' => $data->data->productStats));
|
||||
}
|
||||
if(isset($data->status) and $data->status == 'fail')
|
||||
{
|
||||
return $this->sendError(400, $data->message);
|
||||
$result = array();
|
||||
$products = $data->data->productStats;
|
||||
foreach($products as $product) $result[] = $this->format($product, 'createdDate:time');
|
||||
|
||||
return $this->send(200, array('products' => $result));
|
||||
}
|
||||
if(isset($data->status) and $data->status == 'fail') return $this->sendError(400, $data->message);
|
||||
|
||||
return $this->sendError(400, 'error');
|
||||
}
|
||||
@@ -43,7 +44,9 @@ class productsEntry extends entry
|
||||
$data = $this->getData();
|
||||
if(isset($data->result) and $data->result == 'fail') return $this->sendError(400, $data->message);
|
||||
|
||||
/* Response */
|
||||
$product = $this->loadModel('product')->getByID($data->id);
|
||||
$product = $this->format($product, 'createdDate:time,whitelist:[]string');
|
||||
|
||||
$this->send(200, $product);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class ProgramsEntry extends Entry
|
||||
$result = array();
|
||||
foreach($programs as $program)
|
||||
{
|
||||
$result[] = $program;
|
||||
$result[] = $this->format($program, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time');
|
||||
}
|
||||
return $this->send(200, array('programs' => $result));
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ class projectEntry extends entry
|
||||
$control->view($projectID);
|
||||
|
||||
$data = $this->getData();
|
||||
if(isset($data->status) and $data->status == 'success') return $this->send(200, $data->data->project);
|
||||
if(isset($data->status) and $data->status == 'success') return $this->send(200, $this->format($data->data->project, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time'));
|
||||
if(isset($data->status) and $data->status == 'fail') return $this->sendError(400, $data->message);
|
||||
|
||||
$this->sendError(400, 'error');
|
||||
@@ -47,7 +47,7 @@ class projectEntry extends entry
|
||||
if(!isset($data->result)) return $this->sendError(400, 'error');
|
||||
|
||||
$project = $this->project->getByID($projectID);
|
||||
$this->send(200, $project);
|
||||
$this->send(200, $this->format($project, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time'));
|
||||
}
|
||||
|
||||
public function delete($projectID)
|
||||
|
||||
@@ -17,7 +17,12 @@ class projectsEntry extends entry
|
||||
if(isset($data->status) and $data->status == 'success')
|
||||
{
|
||||
$pager = $data->data->pager;
|
||||
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'projects' => $data->data->projectStats));
|
||||
$result = array();
|
||||
foreach($data->data->projectStats as $project)
|
||||
{
|
||||
$result[] = $this->format($project, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time');
|
||||
}
|
||||
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'projects' => $result));
|
||||
}
|
||||
if(isset($data->status) and $data->status == 'fail')
|
||||
{
|
||||
@@ -49,6 +54,6 @@ class projectsEntry extends entry
|
||||
|
||||
$project = $this->loadModel('project')->getByID($data->id);
|
||||
|
||||
$this->send(201, $project);
|
||||
$this->send(201, $this->format($project, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ class storiesEntry extends entry
|
||||
$result = array();
|
||||
foreach($stories as $story)
|
||||
{
|
||||
$result[] = $story;
|
||||
$result[] = $this->format($story, 'openedDate:time,assignedDate:time,reviewedDate:time,lastEditedDate:time,closedDate:time');
|
||||
}
|
||||
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'stories' => $result));
|
||||
}
|
||||
@@ -54,6 +54,6 @@ class storiesEntry extends entry
|
||||
|
||||
$story = $this->loadModel('story')->getByID($data->id);
|
||||
|
||||
$this->send(200, $story);
|
||||
$this->send(200, $this->format($story, 'openedDate:time,assignedDate:time,reviewedDate:time,lastEditedDate:time,closedDate:time'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ class storyEntry extends Entry
|
||||
|
||||
$data = $this->getData();
|
||||
$story = $data->data->story;
|
||||
$this->send(200, $story);
|
||||
$this->send(200, $this->format($story, 'openedDate:time,assignedDate:time,reviewedDate:time,lastEditedDate:time,closedDate:time'));
|
||||
}
|
||||
|
||||
public function put($storyID)
|
||||
@@ -31,7 +31,8 @@ class storyEntry extends Entry
|
||||
$control->edit($storyID);
|
||||
|
||||
$this->getData();
|
||||
$this->sendSuccess(200, 'success');
|
||||
$story = $this->story->getByID($storyID);
|
||||
$this->sendSuccess(200, $this->format($story, 'openedDate:time,assignedDate:time,reviewedDate:time,lastEditedDate:time,closedDate:time'));
|
||||
}
|
||||
|
||||
public function delete($storyID)
|
||||
|
||||
@@ -34,6 +34,6 @@ class storyChangeEntry extends Entry
|
||||
|
||||
$story = $this->loadModel('story')->getByID($storyID);
|
||||
|
||||
$this->send(200, $story);
|
||||
$this->send(200, $this->format($story, 'openedDate:time,assignedDate:time,reviewedDate:time,lastEditedDate:time,closedDate:time'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ class taskEntry extends Entry
|
||||
|
||||
$data = $this->getData();
|
||||
$task = $data->data->task;
|
||||
$this->send(200, $task);
|
||||
$this->send(200, $this->format($task, 'openedDate:time,assignedDate:time,realStarted:time,finishedDate:time,canceledDate:time,closedDate:time,lastEditedDate:time'));
|
||||
}
|
||||
|
||||
public function put($taskID)
|
||||
@@ -31,7 +31,7 @@ class taskEntry extends Entry
|
||||
|
||||
$this->getData();
|
||||
$task = $this->task->getByID($taskID);
|
||||
$this->send(200, $task);
|
||||
$this->send(200, $this->format($task, 'openedDate:time,assignedDate:time,realStarted:time,finishedDate:time,canceledDate:time,closedDate:time,lastEditedDate:time'));
|
||||
}
|
||||
|
||||
public function delete($taskID)
|
||||
|
||||
@@ -25,6 +25,6 @@ class taskAssignToEntry extends Entry
|
||||
|
||||
$task = $this->loadModel('task')->getByID($taskID);
|
||||
|
||||
$this->send(200, $task);
|
||||
$this->send(200, $this->format($task, 'openedDate:time,assignedDate:time,realStarted:time,finishedDate:time,canceledDate:time,closedDate:time,lastEditedDate:time'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,6 @@ class taskFinishEntry extends Entry
|
||||
|
||||
$task = $this->loadModel('task')->getByID($taskID);
|
||||
|
||||
$this->send(200, $task);
|
||||
$this->send(200, $this->format($task, 'openedDate:time,assignedDate:time,realStarted:time,finishedDate:time,canceledDate:time,closedDate:time,lastEditedDate:time'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ class tasksEntry extends entry
|
||||
public function get($executionID)
|
||||
{
|
||||
$control = $this->loadController('execution', 'task');
|
||||
$control->task($executionID);
|
||||
$control->task($executionID, 'all');
|
||||
$data = $this->getData();
|
||||
|
||||
if(isset($data->status) and $data->status == 'success')
|
||||
@@ -21,7 +21,7 @@ class tasksEntry extends entry
|
||||
$result = array();
|
||||
foreach($tasks as $task)
|
||||
{
|
||||
$result[] = $task;
|
||||
$result[] = $this->format($task, 'openedDate:time,assignedDate:time,realStarted:time,finishedDate:time,canceledDate:time,closedDate:time,lastEditedDate:time');
|
||||
}
|
||||
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'tasks' => $result));
|
||||
}
|
||||
@@ -46,6 +46,6 @@ class tasksEntry extends entry
|
||||
|
||||
$task = $this->loadModel('task')->getByID($data->id);
|
||||
|
||||
$this->send(201, $task);
|
||||
$this->send(201, $this->format($task, 'openedDate:time,assignedDate:time,realStarted:time,finishedDate:time,canceledDate:time,closedDate:time,lastEditedDate:time'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ class userEntry extends Entry
|
||||
$user = $data->data->user;
|
||||
unset($user->password);
|
||||
|
||||
$this->send(200, $user);
|
||||
$this->send(200, $this->format($user, 'last:time,locked:time'));
|
||||
}
|
||||
|
||||
public function put($userID)
|
||||
@@ -39,7 +39,7 @@ class userEntry extends Entry
|
||||
$user = $this->user->getByID($userID, 'id');
|
||||
unset($user->password);
|
||||
|
||||
$this->send(200, $user);
|
||||
$this->send(200, $this->format($user, 'last:time,locked:time'));
|
||||
}
|
||||
|
||||
public function delete($userID)
|
||||
|
||||
@@ -19,7 +19,7 @@ class usersEntry extends entry
|
||||
$users = $data->data->users;
|
||||
$pager = $data->data->pager;
|
||||
$result = array();
|
||||
foreach($users as $user) $result[] = $user;
|
||||
foreach($users as $user) $result[] = $this->format($user, 'locked:time');
|
||||
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'users' => $result));
|
||||
}
|
||||
|
||||
@@ -50,6 +50,6 @@ class usersEntry extends entry
|
||||
$user = $this->loadModel('user')->getByID($data->id, 'id');
|
||||
unset($user->password);
|
||||
|
||||
$this->send(201, $user);
|
||||
$this->send(201, $this->format($user, 'last:time,locked:time'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -381,4 +381,103 @@ class baseEntry
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化数据的字段类型.
|
||||
* Format fields of response data.
|
||||
*
|
||||
* @param object|array $data
|
||||
* @param string $fields
|
||||
* @access public
|
||||
* @return object|array
|
||||
*/
|
||||
public function format($data, $fields)
|
||||
{
|
||||
if(is_array($data))
|
||||
{
|
||||
foreach($data as $object) $this->formatFields($object, $fields);
|
||||
}
|
||||
$this->formatFields($data, $fields);
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化对象的字段类型.
|
||||
* Format fields of object.
|
||||
*
|
||||
* @param object $object
|
||||
* @param string $fields
|
||||
* @access public
|
||||
* @return object
|
||||
*/
|
||||
private function formatFields(&$object, $fields)
|
||||
{
|
||||
$fields = explode(',', $fields);
|
||||
|
||||
foreach($fields as $field)
|
||||
{
|
||||
$field = explode(':', $field);
|
||||
$key = $field[0];
|
||||
$type = $field[1];
|
||||
$isArray = false;
|
||||
|
||||
$pos = strpos($type, ']');
|
||||
if($pos !== FALSE)
|
||||
{
|
||||
$is_array = true;
|
||||
$type = substr($type, $pos + 1);
|
||||
}
|
||||
|
||||
/* Format value. */
|
||||
if(!$isArray)
|
||||
{
|
||||
$object->$key = $this->cast($object->$key, $type);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Format array. */
|
||||
$value = array();
|
||||
if(is_array($object->$key))
|
||||
{
|
||||
foreach($object->$key as $v) $value[] = $this->cast($v, $type);
|
||||
}
|
||||
else
|
||||
{
|
||||
$vs = implode(',', $object->$key);
|
||||
foreach($vs as $v)
|
||||
{
|
||||
if($v === '') continue;
|
||||
$value[] = $this->cast($v, $type);
|
||||
}
|
||||
}
|
||||
$object->$key = $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 类型转换.
|
||||
* Typecasting.
|
||||
*
|
||||
* @param mixed $vaule
|
||||
* @param string $type
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
private function cast($value, $type)
|
||||
{
|
||||
switch($type)
|
||||
{
|
||||
case 'time':
|
||||
$timeFormat = $this->param('timeFormat', '');
|
||||
if($timeFormat == 'utc')
|
||||
{
|
||||
if(!$value or $value == '0000-00-00 00:00:00') return null;
|
||||
return gmdate("Y-m-d\TH:i:s\Z", strtotime($value));
|
||||
}
|
||||
return $value;
|
||||
default:
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2207,6 +2207,8 @@ class baseRouter
|
||||
if(!isset($params->emulatePrepare) and PHP_OS == 'Linux') $params->emulatePrepare = true;
|
||||
if(!isset($params->bufferQuery) and PHP_OS == 'Linux') $params->bufferQuery = true;
|
||||
|
||||
if(defined('RUN_MODE') and RUN_MODE == 'api') $params->emulatePrepare = false;
|
||||
|
||||
$dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
|
||||
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
if(isset($params->strictMode) and $params->strictMode == false) $dbh->exec("SET @@sql_mode= ''");
|
||||
|
||||
Reference in New Issue
Block a user