pagination([ 'like_username' => $request->user('module')->id . '.', ]); } catch (EmqxSupportException $e) { Log::error('emqx connect failed.', [$e]); return $this->error('unable connectto emqx'); } return $this->success($clients); } public function destroy(Request $request, $client_id = null): JsonResponse { $request->validate([ 'client_id' => 'nullable|string|max:255', 'name' => 'nullable|string|max:255', ]); $emqx = new EmqxSupport(); $client_id = $client_id ?? $request->input('client_id'); if ($client_id) { try { $client = $emqx->client($client_id); } catch (EmqxSupportException $e) { return $this->failed('client not found'); } $module_name = explode('.', $client['username'])[0]; if ($request->user('module')->id !== $module_name) { return $this->failed('client not found'); } $emqx->kickClient($client_id); return $this->deleted(); } if ($request->filled('name')) { $name = $request->input('name'); $module_name = explode('.', $name)[0]; if ($request->user('module')->id !== $module_name) { return $this->failed('client not found'); } $this->dispatch(new EMQXKickClientJob(null, $name, false)); return $this->deleted(); } return $this->failed('missing client_id or name'); } }