adminService = $adminService; } public function store(Request $request) { try { $userData = [ 'email' => $request->email, 'authority' => $request->authority, 'tenantId' => $request->tenant_id, 'customerId' => $request->customer_id, 'firstName' => $request->first_name, 'lastName' => $request->last_name, 'phone' => $request->phone, 'name' => $request->name, 'description' => $request->description, 'defaultDashboardId' => $request->default_dashboard_id, 'defaultDashboardFullscreen' => $request->default_dashboard_fullscreen, 'homeDashboardId' => $request->home_dashboard_id, 'homeDashboardHideToolbar' => $request->home_dashboard_hide_toolbar, 'userCredentialsEnabled' => $request->user_credentials_enabled, 'failedLoginAttempts' => $request->failed_login_attempts, 'lastLoginTs' => $request->last_login_ts, 'version' => $request->version, ]; $response = $this->adminService->createUser($userData); $user = new User(); $user->id = Str::uuid(); $user->created_time = now()->timestamp; $user->tenant_id = $request->tenant_id; $user->customer_id = $request->customer_id; $user->email = $request->email; $user->authority = $request->authority; $user->first_name = $request->first_name; $user->last_name = $request->last_name; $user->phone = $request->phone; $user->version = $request->version; $user->name = $request->name; $user->description = $request->description; $user->default_dashboard_id = $request->default_dashboard_id; $user->default_dashboard_fullscreen = $request->default_dashboard_fullscreen; $user->home_dashboard_id = $request->home_dashboard_id; $user->home_dashboard_hide_toolbar = $request->home_dashboard_hide_toolbar; $user->user_credentials_enabled = $request->user_credentials_enabled; $user->failed_login_attempts = $request->failed_login_attempts; $user->last_login_ts = $request->last_login_ts; $user->save(); return jsonResponseWithSuccessMessage(__('auth.data_fetched_successfully'), $response, 200); } catch (QueryException $e) { Log::error('Error in creating User ' . $e->getMessage()); return jsonResponseWithErrorMessageApi(__('auth.something went wrong'), 401); } } public function list() { try { $users = $this->adminService->listUsers(); if (!empty($users['data'])) { return response()->json([ 'message' => 'Users fetched successfully', 'users' => $users['data'] ], 200); } return response()->json(['message' => 'No users found'], 404); } catch (Exception $e) { return response()->json(['error' => 'Failed to fetch users', 'details' => $e->getMessage()], 500); } } public function delete($userId) { try { $response = $this->adminService->deleteUser($userId); if (isset($response['status']) && $response['status'] === 404) { return response()->json([ 'error' => "User with ID $userId not found in ThingsBoard", 'response' => $response ], 404); } $user = User::find($userId); if ($user) { $user->delete(); } else { return response()->json([ 'error' => "User with ID $userId not found in local database" ], 404); } return response()->json([ 'message' => 'User deleted successfully from ThingsBoard and local database', 'response' => $response ], 200); } catch (Exception $e) { Log::error('Error in deleting User ' . $e->getMessage()); return response()->json([ 'error' => 'Failed to delete user', 'details' => $e->getMessage() ], 500); } } }