* Optimize api createStruct function and finish unit test script.
This commit is contained in:
@@ -268,7 +268,7 @@ class api extends control
|
||||
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$formData = form::data($this->config->api->form->createStruct)->add('lib', $libID)->add('addedBy', $this->app->user->account)->add('addedDate', helper::now())->get();
|
||||
$formData = form::data($this->config->api->form->createStruct)->add('lib', $libID)->add('version', 1)->add('addedBy', $this->app->user->account)->add('addedDate', helper::now())->get();
|
||||
|
||||
$this->api->createStruct($formData);
|
||||
if(dao::isError()) return $this->sendError(dao::getError());
|
||||
|
||||
+42
-41
@@ -164,51 +164,41 @@ class apiModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建数据结构。
|
||||
* Create a global struct.
|
||||
*
|
||||
* @param object $data
|
||||
* @param object $formData
|
||||
* @access public
|
||||
* @return int
|
||||
* @return bool
|
||||
*/
|
||||
public function createStruct($data)
|
||||
public function createStruct(object $formData): bool
|
||||
{
|
||||
$data->version = 1;
|
||||
$this->dao->insert(TABLE_APISTRUCT)->data($data)
|
||||
$this->dao->insert(TABLE_APISTRUCT)->data($formData)
|
||||
->autoCheck()
|
||||
->batchCheck($this->config->api->struct->requiredFields, 'notempty')
|
||||
->exec();
|
||||
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$id = $this->dao->lastInsertID();
|
||||
/* 维护历史记录。 */
|
||||
$structID = $this->dao->lastInsertID();
|
||||
$this->loadModel('action')->create('apistruct', $structID, 'Created');
|
||||
|
||||
/* Create a struct version. */
|
||||
$version = array(
|
||||
'name' => $data->name,
|
||||
'type' => $data->type,
|
||||
'desc' => $data->desc,
|
||||
'version' => $data->version,
|
||||
'attribute' => $data->attribute,
|
||||
'addedBy' => $data->addedBy,
|
||||
'addedDate' => $data->addedDate
|
||||
);
|
||||
$this->dao->insert(TABLE_APISTRUCT_SPEC)->data($version)->exec();
|
||||
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$this->loadModel('action')->create('apistruct', $id, 'Created');
|
||||
|
||||
return true;
|
||||
/* 维护数据结构的历史版本。 */
|
||||
$structSpec = $this->getApiStructSpecByData($formData);
|
||||
$this->dao->insert(TABLE_APISTRUCT_SPEC)->data($structSpec)->exec();
|
||||
return !dao::isError();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新数据结构。
|
||||
* Update a struct.
|
||||
*
|
||||
* @param object $formData
|
||||
* @access public
|
||||
* @return array
|
||||
* @return bool
|
||||
*/
|
||||
public function updateStruct($formData)
|
||||
public function updateStruct(object $formData): bool
|
||||
{
|
||||
$oldData = $this->dao->findByID($formData->id)->from(TABLE_APISTRUCT)->fetch();
|
||||
|
||||
@@ -220,20 +210,7 @@ class apiModel extends model
|
||||
|
||||
if(dao::isError()) return false;
|
||||
|
||||
/* Create a struct version */
|
||||
$version = array(
|
||||
'name' => $formData->name,
|
||||
'type' => $formData->type,
|
||||
'desc' => $formData->desc,
|
||||
'version' => $formData->version,
|
||||
'attribute' => $formData->attribute,
|
||||
'addedBy' => $formData->editedBy,
|
||||
'addedDate' => $formData->editedDate
|
||||
);
|
||||
$this->dao->insert(TABLE_APISTRUCT_SPEC)->data($version)->exec();
|
||||
|
||||
if(dao::isError()) return false;
|
||||
|
||||
/* 维护历史记录。 */
|
||||
$changes = common::createChanges($oldData, $formData);
|
||||
if($changes)
|
||||
{
|
||||
@@ -241,7 +218,11 @@ class apiModel extends model
|
||||
$this->action->logHistory($actionID, $changes);
|
||||
}
|
||||
|
||||
return true;
|
||||
/* 维护数据结构的历史版本。 */
|
||||
$structSpec = $this->getApiStructSpecByData($formData);
|
||||
$this->dao->insert(TABLE_APISTRUCT_SPEC)->data($structSpec)->exec();
|
||||
|
||||
return !dao::isError();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -700,7 +681,7 @@ class apiModel extends model
|
||||
/**
|
||||
* Get spec of api.
|
||||
*
|
||||
* @param object $data
|
||||
* @param object $data
|
||||
* @access private
|
||||
* @return array
|
||||
*/
|
||||
@@ -728,6 +709,26 @@ class apiModel extends model
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get struct spec of api
|
||||
*
|
||||
* @param object $data
|
||||
* @access private
|
||||
* @return void
|
||||
*/
|
||||
private function getApiStructSpecByData($data)
|
||||
{
|
||||
return array(
|
||||
'name' => $data->name,
|
||||
'type' => !empty($data->type) ? $data->type : '',
|
||||
'desc' => !empty($data->desc) ? $data->desc : '',
|
||||
'version' => !empty($data->version) ? $data->version : 1,
|
||||
'attribute' => !empty($data->attribute) ? $data->attribute : '',
|
||||
'addedBy' => !empty($data->addedBy) ? $data->addedBy : $this->app->user->account,
|
||||
'addedDate' => !empty($data->addedDate) ? $data->addedDate : helper::now()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Type list.
|
||||
*
|
||||
|
||||
@@ -1,38 +1,35 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/api.class.php';
|
||||
su('admin');
|
||||
|
||||
zdTable('doclib')->config('doclib')->gen(10);
|
||||
zdTable('apistruct')->gen(0);
|
||||
zdTable('apistruct_spec')->gen(0);
|
||||
/**
|
||||
|
||||
title=测试 apiModel->createStruct();
|
||||
timeout=0
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
创建数据结构 >> struct
|
||||
创建没有结构名的数据结构 >> 『结构名』不能为空。
|
||||
- 测试正常添加数据结构。 @1
|
||||
- 测试结构名称为空时添加数据结构。 @0
|
||||
- 测试结构名称为空时添加数据结构返回的错误信息。第name条的0属性 @『结构名』不能为空。
|
||||
|
||||
*/
|
||||
|
||||
global $tester;
|
||||
$api = new apiTest();
|
||||
$tester->loadModel('api');
|
||||
|
||||
$emptyNameStruct = new stdclass();
|
||||
$emptyNameStruct->name = '';
|
||||
$emptyNameStruct->type = 'formData';
|
||||
$emptyNameStruct->attribute = '[{"field":"field1","paramsType":"string","required":true,"desc":"desc","structType":"formData","sub":1,"key":"l2u5qy3jc1se6ghigll","children":[]}]';
|
||||
$emptyNameStruct->desc = '';
|
||||
$emptyNameStruct->addedBy = $tester->app->user->account;
|
||||
$emptyNameStruct->addedDate = helper::now();
|
||||
$formData = new stdclass();
|
||||
$formData->lib = 1;
|
||||
$formData->name = '数据结构1';
|
||||
|
||||
$normalStruct = new stdclass();
|
||||
$normalStruct->name = 'struct';
|
||||
$normalStruct->type = 'formData';
|
||||
$normalStruct->attribute = '[{"field":"field1","paramsType":"string","required":true,"desc":"desc","structType":"formData","sub":1,"key":"l2u5qy3jc1se6ghigll","children":[]}]';
|
||||
$normalStruct->desc = '';
|
||||
$normalStruct->addedBy = $tester->app->user->account;
|
||||
$normalStruct->addedDate = helper::now();
|
||||
r($tester->api->createStruct($formData)) && p() && e(1); // 测试正常添加数据结构。
|
||||
|
||||
r($api->createStructTest($normalStruct)) && p('name') && e('struct'); //创建数据结构
|
||||
r($api->createStructTest($emptyNameStruct)) && p('name:0') && e('『结构名』不能为空。'); //创建没有结构名的数据结构
|
||||
$formData = new stdclass();
|
||||
$formData->lib = 1;
|
||||
$formData->name = '';
|
||||
|
||||
r($tester->api->createStruct($formData)) && p() && e(0); // 测试结构名称为空时添加数据结构。
|
||||
r(dao::getError()) && p('name:0') && e('『结构名』不能为空。'); // 测试结构名称为空时添加数据结构返回的错误信息。
|
||||
|
||||
Reference in New Issue
Block a user