| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | <?phpnamespace 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        ];    }}
 |