mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-12 03:01:12 +00:00
no message
This commit is contained in:
parent
434d8eabc8
commit
e7749b2dff
@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api;
|
|||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Module\Apps\Apps;
|
use App\Module\Apps\Apps;
|
||||||
use App\Module\Base;
|
use App\Module\Base;
|
||||||
|
use App\Module\Timer;
|
||||||
use Request;
|
use Request;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -15,7 +16,7 @@ use Request;
|
|||||||
class AppsController extends AbstractController
|
class AppsController extends AbstractController
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @api {get} api/apps/list 01. 获取应用列表
|
* @api {get} api/apps/list 01. 获取应用列表(限管理员)
|
||||||
*
|
*
|
||||||
* @apiVersion 1.0.0
|
* @apiVersion 1.0.0
|
||||||
* @apiGroup apps
|
* @apiGroup apps
|
||||||
@ -33,7 +34,7 @@ class AppsController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @api {get} api/apps/info 02. 获取应用详情
|
* @api {get} api/apps/info 02. 获取应用详情(限管理员)
|
||||||
*
|
*
|
||||||
* @apiVersion 1.0.0
|
* @apiVersion 1.0.0
|
||||||
* @apiGroup apps
|
* @apiGroup apps
|
||||||
@ -61,7 +62,7 @@ class AppsController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @api {post} api/apps/install 03. 安装应用
|
* @api {post} api/apps/install 03. 安装应用(限管理员)
|
||||||
*
|
*
|
||||||
* @apiVersion 1.0.0
|
* @apiVersion 1.0.0
|
||||||
* @apiGroup apps
|
* @apiGroup apps
|
||||||
@ -80,7 +81,7 @@ class AppsController extends AbstractController
|
|||||||
*/
|
*/
|
||||||
public function install()
|
public function install()
|
||||||
{
|
{
|
||||||
User::auth('admin');
|
$user = User::auth('admin');
|
||||||
//
|
//
|
||||||
$appName = Request::input('app_name');
|
$appName = Request::input('app_name');
|
||||||
$version = Request::input('version', 'latest');
|
$version = Request::input('version', 'latest');
|
||||||
@ -91,23 +92,31 @@ class AppsController extends AbstractController
|
|||||||
return Base::retError('应用名称不能为空');
|
return Base::retError('应用名称不能为空');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取应用配置
|
||||||
|
$appConfig = Apps::getAppConfig($appName);
|
||||||
|
|
||||||
// 保存用户设置的参数
|
// 保存用户设置的参数
|
||||||
$configData = [];
|
$updateConfig = [];
|
||||||
|
|
||||||
|
// 记录安装用户
|
||||||
|
$updateConfig['installer'] = is_array($appConfig['installer']) ? $appConfig['installer'] : [];
|
||||||
|
$updateConfig['installer'][] = ['userid' => $user->userid, 'time' => Timer::time()];
|
||||||
|
if (count($updateConfig['installer']) > 5) {
|
||||||
|
$updateConfig['installer'] = array_slice($updateConfig['installer'], -5);
|
||||||
|
}
|
||||||
|
|
||||||
// 设置参数
|
// 设置参数
|
||||||
if (!empty($params) && is_array($params)) {
|
if (!empty($params) && is_array($params)) {
|
||||||
$configData['params'] = $params;
|
$updateConfig['params'] = $params;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置资源限制
|
// 设置资源限制
|
||||||
if (!empty($resources) && is_array($resources)) {
|
if (!empty($resources) && is_array($resources)) {
|
||||||
$configData['resources'] = $resources;
|
$updateConfig['resources'] = $resources;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 保存配置
|
// 保存配置
|
||||||
if (!empty($configData)) {
|
Apps::saveAppConfig($appName, $updateConfig);
|
||||||
Apps::saveAppConfig($appName, $configData);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 执行安装
|
// 执行安装
|
||||||
return Apps::dockerComposeUp($appName, $version);
|
return Apps::dockerComposeUp($appName, $version);
|
||||||
@ -152,7 +161,7 @@ class AppsController extends AbstractController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @api {post} api/apps/uninstall 04. 卸载应用
|
* @api {post} api/apps/uninstall 04. 卸载应用(限管理员)
|
||||||
*
|
*
|
||||||
* @apiVersion 1.0.0
|
* @apiVersion 1.0.0
|
||||||
* @apiGroup apps
|
* @apiGroup apps
|
||||||
@ -166,7 +175,7 @@ class AppsController extends AbstractController
|
|||||||
*/
|
*/
|
||||||
public function uninstall()
|
public function uninstall()
|
||||||
{
|
{
|
||||||
User::auth('admin');
|
$user = User::auth('admin');
|
||||||
//
|
//
|
||||||
$appName = Request::input('app_name');
|
$appName = Request::input('app_name');
|
||||||
|
|
||||||
@ -174,12 +183,28 @@ class AppsController extends AbstractController
|
|||||||
return Base::retError('应用名称不能为空');
|
return Base::retError('应用名称不能为空');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取应用配置
|
||||||
|
$appConfig = Apps::getAppConfig($appName);
|
||||||
|
|
||||||
|
// 保存用户设置的参数
|
||||||
|
$updateConfig = [];
|
||||||
|
|
||||||
|
// 记录安装用户
|
||||||
|
$updateConfig['uninstaller'] = is_array($appConfig['uninstaller']) ? $appConfig['uninstaller'] : [];
|
||||||
|
$updateConfig['uninstaller'][] = ['userid' => $user->userid, 'time' => Timer::time()];
|
||||||
|
if (count($updateConfig['uninstaller']) > 5) {
|
||||||
|
$updateConfig['uninstaller'] = array_slice($updateConfig['uninstaller'], -5);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存配置
|
||||||
|
Apps::saveAppConfig($appName, $updateConfig);
|
||||||
|
|
||||||
// 执行卸载
|
// 执行卸载
|
||||||
return Apps::dockerComposeDown($appName);
|
return Apps::dockerComposeDown($appName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @api {get} api/apps/logs 05. 获取应用日志
|
* @api {get} api/apps/logs 05. 获取应用日志(限管理员)
|
||||||
*
|
*
|
||||||
* @apiVersion 1.0.0
|
* @apiVersion 1.0.0
|
||||||
* @apiGroup apps
|
* @apiGroup apps
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user