userService
This commit is contained in:
79
app/Http/Controllers/APIS/AdminApi/UsersController.php
Normal file
79
app/Http/Controllers/APIS/AdminApi/UsersController.php
Normal file
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\APIS\AdminApi;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\CreateUserRequest;
|
||||
use App\Models\User;
|
||||
use App\Services\AdminService;
|
||||
use Exception;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class UsersController extends Controller
|
||||
{
|
||||
|
||||
protected $adminService;
|
||||
|
||||
public function __construct(AdminService $adminService)
|
||||
{
|
||||
$this->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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Admin;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UsersController extends Controller
|
||||
{
|
||||
|
||||
}
|
||||
37
app/Http/Requests/CreateUserRequest.php
Normal file
37
app/Http/Requests/CreateUserRequest.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class CreateUserRequest extends FormRequest
|
||||
{
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => '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',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\APIS\AdminApi\UsersController;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
@@ -8,4 +9,7 @@ Route::get('/adminapi', function () {
|
||||
return ('Welcome to admin api routes.');
|
||||
});
|
||||
|
||||
// Route::post('')
|
||||
Route::post('/users-store', [UsersController::class, 'store'])->name('user_create');
|
||||
// Route::post('/users-store', function () {
|
||||
// return ('Welcome to admin api routes.');
|
||||
// });
|
||||
|
||||
Reference in New Issue
Block a user