123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace App\Http\Controllers\Admin\Server;
- use App\Http\Requests\Admin\ServerShadowsocksSave;
- use App\Http\Requests\Admin\ServerShadowsocksUpdate;
- use App\Models\ServerRoute;
- use App\Models\ServerShadowsocks;
- use App\Services\ServerService;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- class RouteController extends Controller
- {
- public function fetch(Request $request)
- {
- $routes = ServerRoute::get();
- // TODO: remove on 1.8.0
- foreach ($routes as $k => $route) {
- $array = json_decode($route->match, true);
- if (is_array($array)) $routes[$k]['match'] = $array;
- }
- // TODO: remove on 1.8.0
- return [
- 'data' => $routes
- ];
- }
- public function save(Request $request)
- {
- $params = $request->validate([
- 'remarks' => 'required',
- 'match' => 'required|array',
- 'action' => 'required|in:block,dns',
- 'action_value' => 'nullable'
- ], [
- 'remarks.required' => '备注不能为空',
- 'match.required' => '匹配值不能为空',
- 'action.required' => '动作类型不能为空',
- 'action.in' => '动作类型参数有误'
- ]);
- $params['match'] = array_filter($params['match']);
- // TODO: remove on 1.8.0
- $params['match'] = json_encode($params['match']);
- // TODO: remove on 1.8.0
- if ($request->input('id')) {
- try {
- $route = ServerRoute::find($request->input('id'));
- $route->update($params);
- return [
- 'data' => true
- ];
- } catch (\Exception $e) {
- abort(500, '保存失败');
- }
- }
- if (!ServerRoute::create($params)) abort(500, '创建失败');
- return [
- 'data' => true
- ];
- }
- public function drop(Request $request)
- {
- $route = ServerRoute::find($request->input('id'));
- if (!$route) abort(500, '路由不存在');
- if (!$route->delete()) abort(500, '删除失败');
- return [
- 'data' => true
- ];
- }
- }
|