* Optimize api create function code.
This commit is contained in:
@@ -20,7 +20,7 @@ $config->api->form->createLib = array();
|
||||
$config->api->form->createLib['libType'] = array('type' => 'string', 'required' => true, 'default' => 'nolink');
|
||||
$config->api->form->createLib['product'] = array('type' => 'int', 'required' => true, 'default' => 0);
|
||||
$config->api->form->createLib['project'] = array('type' => 'int', 'required' => true, 'default' => 0);
|
||||
$config->api->form->createLib['execution'] = array('type' => 'int', 'required' => true, 'default' => 0);
|
||||
$config->api->form->createLib['execution'] = array('type' => 'int', 'required' => false, 'default' => 0);
|
||||
$config->api->form->createLib['name'] = array('type' => 'string', 'required' => true, 'default' => '');
|
||||
$config->api->form->createLib['baseUrl'] = array('type' => 'string', 'required' => false, 'default' => '');
|
||||
$config->api->form->createLib['acl'] = array('type' => 'string', 'required' => false, 'default' => 'open');
|
||||
@@ -34,3 +34,19 @@ $config->api->form->editLib['baseUrl'] = array('type' => 'string', 'required' =>
|
||||
$config->api->form->editLib['acl'] = array('type' => 'string', 'required' => false, 'default' => 'open');
|
||||
$config->api->form->editLib['groups'] = array('type' => 'array', 'required' => false, 'default' => array(''), 'filter' => 'join');
|
||||
$config->api->form->editLib['users'] = array('type' => 'array', 'required' => false, 'default' => array(''), 'filter' => 'join');
|
||||
|
||||
$config->api->form->create = array();
|
||||
$config->api->form->create['module'] = array('type' => 'int', 'required' => false, 'default' => 0);
|
||||
$config->api->form->create['lib'] = array('type' => 'int', 'required' => true, 'default' => 0);
|
||||
$config->api->form->create['title'] = array('type' => 'string', 'required' => true, 'default' => '');
|
||||
$config->api->form->create['protocol'] = array('type' => 'string', 'required' => true, 'default' => '');
|
||||
$config->api->form->create['method'] = array('type' => 'string', 'required' => true, 'default' => '');
|
||||
$config->api->form->create['path'] = array('type' => 'string', 'required' => true, 'default' => '');
|
||||
$config->api->form->create['requestType'] = array('type' => 'string', 'required' => false, 'default' => '');
|
||||
$config->api->form->create['status'] = array('type' => 'string', 'required' => false, 'default' => '');
|
||||
$config->api->form->create['owner'] = array('type' => 'string', 'required' => false, 'default' => '');
|
||||
$config->api->form->create['params'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor');
|
||||
$config->api->form->create['paramsExample'] = array('type' => 'string', 'required' => false, 'default' => '');
|
||||
$config->api->form->create['response'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor');
|
||||
$config->api->form->create['responseExample'] = array('type' => 'string', 'required' => false, 'default' => '');
|
||||
$config->api->form->create['desc'] = array('type' => 'string', 'required' => false, 'default' => '', 'control' => 'editor');
|
||||
|
||||
+38
-46
@@ -447,6 +447,43 @@ class api extends control
|
||||
return $this->send(array('result' => 'success', 'load' => true, 'closeModal' => true, 'app' => $this->app->tab));
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建一个接口文档。
|
||||
* Create an api doc.
|
||||
*
|
||||
* @param int $libID
|
||||
* @param int $moduleID
|
||||
* @param string $space api|project|product
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function create(int $libID, int $moduleID = 0, string $space = '')
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$formData = form::data($this->config->api->form->create)->add('product', 0)->add('version', 1)->add('addedBy', $this->app->user->account)->add('addedDate', helper::now())->get();
|
||||
|
||||
$apiID = $this->api->create($formData);
|
||||
if(dao::isError()) return $this->sendError(dao::getError());
|
||||
|
||||
if(isInModal()) return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'load' => true));
|
||||
return $this->sendSuccess(array('locate' => helper::createLink('api', 'index', "libID={$formData->lib}&moduleID={$formData->module}&apiID={$apiID}")));
|
||||
}
|
||||
|
||||
$this->setMenu($libID, $space);
|
||||
|
||||
$lib = $this->doc->getLibByID($libID);
|
||||
$libName = isset($lib->name) ? $lib->name . $this->lang->colon : '';
|
||||
|
||||
$this->view->title = $libName . $this->lang->api->create;
|
||||
$this->view->allUsers = $this->loadModel('user')->getPairs('devfirst|noclosed');
|
||||
$this->view->libID = $libID;
|
||||
$this->view->libName = $lib->name;
|
||||
$this->view->moduleID = $moduleID;
|
||||
$this->view->moduleOptionMenu = $this->loadModel('tree')->getOptionMenu($libID, 'api', $startModuleID = 0);
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Edit library.
|
||||
*
|
||||
@@ -457,7 +494,7 @@ class api extends control
|
||||
public function edit($apiID)
|
||||
{
|
||||
$api = $this->api->getLibById($apiID);
|
||||
if(helper::isAjaxRequest() && !empty($_POST))
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$changes = $this->api->update($apiID);
|
||||
if(dao::isError()) return $this->sendError(dao::getError());
|
||||
@@ -487,51 +524,6 @@ class api extends control
|
||||
$this->view->allUsers = $this->loadModel('user')->getPairs('devfirst|noclosed');;
|
||||
$this->view->moduleOptionMenu = $this->loadModel('tree')->getOptionMenu($api->lib, 'api', $startModuleID = 0);
|
||||
$this->view->moduleID = $api->module ? (int)$api->module : (int)$this->cookie->lastDocModule;
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an api doc.
|
||||
*
|
||||
* @param int $libID
|
||||
* @param int $moduleID
|
||||
* @param string $space api|project|product
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function create($libID, $moduleID = 0, $space = '')
|
||||
{
|
||||
if(!empty($_POST))
|
||||
{
|
||||
$api = $this->api->create();
|
||||
if($api === false) return $this->sendError(dao::getError());
|
||||
|
||||
$this->action->create('api', $api->id, 'Created', '', '', '', false);
|
||||
|
||||
if(isInModal()) return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'closeModal' => true, 'load' => true));
|
||||
return $this->sendSuccess(array('locate' => helper::createLink('api', 'index', "libID={$api->lib}&moduleID={$api->module}&apiID={$api->id}")));
|
||||
}
|
||||
|
||||
$libs = $this->doc->getLibs('api', '', $libID);
|
||||
if(!$libID and !empty($libs)) $libID = key($libs);
|
||||
|
||||
$this->setMenu($libID, $space);
|
||||
|
||||
$lib = $this->doc->getLibByID($libID);
|
||||
$libName = isset($lib->name) ? $lib->name . $this->lang->colon : '';
|
||||
|
||||
$this->getTypeOptions($libID);
|
||||
$this->view->user = $this->app->user->account;
|
||||
$this->view->allUsers = $this->loadModel('user')->getPairs('devfirst|noclosed');
|
||||
$this->view->libID = $libID;
|
||||
$this->view->libName = $lib->name;
|
||||
$this->view->moduleOptionMenu = $this->loadModel('tree')->getOptionMenu($libID, 'api', $startModuleID = 0);
|
||||
$this->view->moduleID = $moduleID ? (int)$moduleID : (int)$this->cookie->lastDocModule;
|
||||
$this->view->libs = $libs;
|
||||
$this->view->title = $libName . $this->lang->api->create;
|
||||
$this->view->users = $this->user->getPairs('nocode');
|
||||
|
||||
$this->display();
|
||||
}
|
||||
|
||||
|
||||
+11
-22
@@ -84,40 +84,29 @@ class apiModel extends model
|
||||
/**
|
||||
* Create an api doc.
|
||||
*
|
||||
* @param object $formData
|
||||
* @access public
|
||||
* @return object | bool
|
||||
* @return int|bool
|
||||
*/
|
||||
public function create()
|
||||
public function create(object $formData)
|
||||
{
|
||||
$now = helper::now();
|
||||
$data = fixer::input('post')
|
||||
->trim('title,path')
|
||||
->remove('type,undefined')
|
||||
->skipSpecial('params,response')
|
||||
->add('addedBy', $this->app->user->account)
|
||||
->add('addedDate', $now)
|
||||
->add('editedBy', $this->app->user->account)
|
||||
->add('editedDate', $now)
|
||||
->add('version', 1)
|
||||
->setDefault('product,module', 0)
|
||||
->stripTags($this->config->api->editor->create['id'], $this->config->allowedTags)
|
||||
->get();
|
||||
|
||||
$this->dao->insert(TABLE_API)->data($data)
|
||||
$this->dao->insert(TABLE_API)->data($formData)
|
||||
->autoCheck()
|
||||
->batchCheck($this->config->api->create->requiredFields, 'notempty')
|
||||
->check('title', 'unique', "lib = $data->lib AND module = $data->module")
|
||||
->check('path', 'unique', "lib = $data->lib AND module = $data->module AND method = '$data->method'")
|
||||
->check('title', 'unique', "lib = $formData->lib AND module = $formData->module")
|
||||
->check('path', 'unique', "lib = $formData->lib AND module = $formData->module AND method = '$formData->method'")
|
||||
->exec();
|
||||
|
||||
if(dao::isError()) return false;
|
||||
|
||||
$data->id = $this->dao->lastInsertID();
|
||||
$apiID = $this->dao->lastInsertID();
|
||||
$this->loadModel('action')->create('api', $apiID, 'Created', '', '', '', false);
|
||||
|
||||
$apiSpec = $this->getApiSpecByData($data);
|
||||
$formData->id = $apiID;
|
||||
$apiSpec = $this->getApiSpecByData($formData);
|
||||
$this->dao->replace(TABLE_API_SPEC)->data($apiSpec)->exec();
|
||||
|
||||
return $data;
|
||||
return $apiID;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,7 +11,7 @@ declare(strict_types=1);
|
||||
namespace zin;
|
||||
|
||||
$data = array('normal' => array(), 'closed' => array());
|
||||
$data['normal'][] = array('id' => 0, 'text' => $lang->api->noLinked, 'active' => $objectID == 0, 'type' => 'unlink');
|
||||
$data['normal'][] = array('id' => 0, 'text' => $lang->api->noLinked, 'active' => $objectID == 0, 'type' => 'nolink');
|
||||
|
||||
/* 处理分组数据。Process grouped data. */
|
||||
foreach(array('product', 'project') as $moduleType)
|
||||
|
||||
@@ -7,7 +7,7 @@ formPanel
|
||||
div
|
||||
(
|
||||
setClass('panel-title text-lg'),
|
||||
$lang->api->create
|
||||
$title
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
@@ -30,7 +30,8 @@ formPanel
|
||||
(
|
||||
set::items($moduleOptionMenu),
|
||||
set::name('module'),
|
||||
set::required(true)
|
||||
set::required(true),
|
||||
set::value($moduleID)
|
||||
)
|
||||
),
|
||||
formGroup
|
||||
|
||||
Reference in New Issue
Block a user