From 6582cd39ed30a63044cd8ff617198aad55fb59ea Mon Sep 17 00:00:00 2001 From: kshitige Date: Tue, 18 Mar 2025 16:39:57 +0530 Subject: [PATCH] userService --- .../APIS/AdminApi/UsersController.php | 79 +++++++++++++++++++ .../Controllers/Admin/UsersController.php | 11 --- app/Http/Requests/CreateUserRequest.php | 37 +++++++++ app/Services/AdminService.php | 24 +++++- routes/admin_api.php | 6 +- 5 files changed, 142 insertions(+), 15 deletions(-) create mode 100644 app/Http/Controllers/APIS/AdminApi/UsersController.php delete mode 100644 app/Http/Controllers/Admin/UsersController.php create mode 100644 app/Http/Requests/CreateUserRequest.php diff --git a/app/Http/Controllers/APIS/AdminApi/UsersController.php b/app/Http/Controllers/APIS/AdminApi/UsersController.php new file mode 100644 index 0000000..212e83f --- /dev/null +++ b/app/Http/Controllers/APIS/AdminApi/UsersController.php @@ -0,0 +1,79 @@ +adminService = $adminService; + } + + public function store(Request $request) + { + // dd('test'); + 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.authentication_failed'), 401); + } + } +} diff --git a/app/Http/Controllers/Admin/UsersController.php b/app/Http/Controllers/Admin/UsersController.php deleted file mode 100644 index 4854003..0000000 --- a/app/Http/Controllers/Admin/UsersController.php +++ /dev/null @@ -1,11 +0,0 @@ - 'required|email|unique:users,email', + // 'password' => 'required|min:6', + 'authority' => 'required|in:TENANT_ADMIN,CUSTOMER_USER,SYS_ADMIN', + 'first_name' => 'nullable|string|max:50', + 'last_name' => 'nullable|string|max:50', + 'phone' => 'nullable|string|max:20', + 'tenant_id' => 'required|integer', + 'customer_id' => 'required|uuid', + 'version' => 'required|integer', + 'name' => 'required|string|max:255', + 'description' => 'nullable|string', + 'default_dashboard_id' => 'nullable|uuid', + 'default_dashboard_fullscreen' => 'boolean', + 'home_dashboard_id' => 'nullable|uuid', + 'home_dashboard_hide_toolbar' => 'boolean', + 'user_credentials_enabled' => 'boolean', + 'failed_login_attempts' => 'integer', + 'last_login_ts' => 'nullable|integer', + ]; + } +} diff --git a/app/Services/AdminService.php b/app/Services/AdminService.php index 6a4d601..cdde734 100644 --- a/app/Services/AdminService.php +++ b/app/Services/AdminService.php @@ -6,7 +6,7 @@ use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Cache; use Exception; -class ThingsBoardService +class AdminService { private $baseUrl; private $username; @@ -15,8 +15,8 @@ class ThingsBoardService public function __construct() { $this->baseUrl = env('THINGSBOARD_URL', 'http://65.0.131.117:8080'); - $this->username = env('THINGSBOARD_USERNAME', 'tenant@thingsboard.org'); - $this->password = env('THINGSBOARD_PASSWORD', 'tenant'); + $this->username = env('THINGSBOARD_USERNAME', 'tenant1@thingsboard.org'); + $this->password = env('THINGSBOARD_PASSWORD', 'tenant1'); } public function getToken() @@ -41,4 +41,22 @@ class ThingsBoardService throw new Exception('Unable to authenticate with ThingsBoard: ' . $response->body()); } } + + public function createUser(array $data) + { + $token = $this->getToken(); + + + $response = Http::withHeaders([ + 'Authorization' => "Bearer $token", + 'accept' => 'application/json', + 'Content-Type' => 'application/json', + ])->post(env('THINGSBOARD_CREATE_USER_URL'), $data); + + if ($response->successful()) { + return $response->json(); + } else { + throw new Exception('Failed to create user: ' . $response->body()); + } + } } diff --git a/routes/admin_api.php b/routes/admin_api.php index 41d2c47..34915c0 100644 --- a/routes/admin_api.php +++ b/routes/admin_api.php @@ -1,5 +1,6 @@ name('user_create'); +// Route::post('/users-store', function () { +// return ('Welcome to admin api routes.'); +// });