From 10776a6983ea01f8cf943681d59615e524938589 Mon Sep 17 00:00:00 2001 From: sayaliparab Date: Tue, 15 Apr 2025 13:42:38 +0530 Subject: [PATCH] storeAssest --- .../APIS/AdminApi/AssetadmintController.php | 70 ++++++++++++--- app/Http/Requests/CreateAssetRequest.php | 4 +- app/Services/AdminService.php | 88 +++++++++++++------ 3 files changed, 121 insertions(+), 41 deletions(-) diff --git a/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php b/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php index 24c4c6c..669439a 100644 --- a/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php +++ b/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php @@ -25,6 +25,59 @@ class AssetadmintController extends Controller $this->adminService = $adminService; } + // public function storeAssest(CreateAssetRequest $request) + // { + // try { + // $additionalInfo = $request->has('additional_info') && is_string($request->additional_info) + // ? json_decode($request->additional_info, true) + // : $request->additional_info; + + // $assetData = [ + // 'entity_type' => $request->entity_type, + // 'createdTime' => $request->created_time ?? now()->timestamp, + // 'tenantId' => $request->tenant_id ?? Str::uuid()->toString(), + // 'customerId' => $request->customer_xid, + // 'name' => $request->name, + // 'type' => $request->type, + // 'label' => $request->label, + // 'assetProfileId' => $request->asset_profile_id ?? Str::uuid()->toString(), + // 'externalId' => $request->external_id ?? Str::uuid()->toString(), + // 'version' => $request->version ?? '1.0', + // 'additionalInfo' => $additionalInfo ?? ['description' => 'Default asset description'], + // ]; + + // $response = $this->adminService->createAsset($assetData); + + // if (!$response) { + // throw new Exception('Failed to create asset via admin service'); + // } + + // $asset = new Asset(); + // $asset->id = $response['id']['id'] ?? Str::uuid()->toString(); + // $asset->entity_type = $response['entityType'] ?? $assetData['entity_type']; + // $asset->created_time = $response['createdTime'] ?? $assetData['createdTime']; + // $asset->tenant_id = $assetData['tenantId']; + // $asset->customer_xid = $assetData['customerId']; + // $asset->name = $response['name'] ?? $assetData['name']; + // $asset->type = $response['type'] ?? $assetData['type']; + // $asset->label = $response['label'] ?? $assetData['label']; + // $asset->asset_profile_id = $assetData['assetProfileId']; + // $asset->external_id = $assetData['externalId']; + // $asset->version = $response['version'] ?? $assetData['version']; + // $asset->additional_info = json_encode($response['additionalInfo'] ?? $assetData['additionalInfo']); + + // $asset->save(); + + // return response()->json([ + // 'message' => 'Asset created successfully!', + // 'data' => $asset, + // 'api_response' => $response + // ], 200); + // } catch (Exception $e) { + // Log::error('Error in creating asset: ' . $e->getMessage()); + // return response()->json(['error' => $e->getMessage()], 500); + // } + // } public function storeAssest(CreateAssetRequest $request) { try { @@ -33,13 +86,13 @@ class AssetadmintController extends Controller : $request->additional_info; $assetData = [ - 'entity_type' => $request->entity_type, - 'createdTime' => $request->created_time ?? now()->timestamp, + 'entity_type' => 'ASSET', // Backend defined + 'createdTime' => now()->timestamp, // Backend defined 'tenantId' => $request->tenant_id ?? Str::uuid()->toString(), 'customerId' => $request->customer_xid, 'name' => $request->name, - 'type' => $request->type, - 'label' => $request->label, + 'type' => $request->type ?? 'Default Type', + 'label' => $request->label ?? '', 'assetProfileId' => $request->asset_profile_id ?? Str::uuid()->toString(), 'externalId' => $request->external_id ?? Str::uuid()->toString(), 'version' => $request->version ?? '1.0', @@ -54,8 +107,8 @@ class AssetadmintController extends Controller $asset = new Asset(); $asset->id = $response['id']['id'] ?? Str::uuid()->toString(); - $asset->entity_type = $response['entityType'] ?? $assetData['entity_type']; - $asset->created_time = $response['createdTime'] ?? $assetData['createdTime']; + $asset->entity_type = $assetData['entity_type']; // From backend + $asset->created_time = $assetData['createdTime']; // From backend $asset->tenant_id = $assetData['tenantId']; $asset->customer_xid = $assetData['customerId']; $asset->name = $response['name'] ?? $assetData['name']; @@ -79,6 +132,7 @@ class AssetadmintController extends Controller } } + public function listAssest() { try { @@ -238,8 +292,4 @@ class AssetadmintController extends Controller return jsonResponseWithErrorMessage($e->getMessage(), 500); } } - - - - } diff --git a/app/Http/Requests/CreateAssetRequest.php b/app/Http/Requests/CreateAssetRequest.php index acacbb7..6a83beb 100644 --- a/app/Http/Requests/CreateAssetRequest.php +++ b/app/Http/Requests/CreateAssetRequest.php @@ -23,8 +23,8 @@ class CreateAssetRequest extends FormRequest { return [ // 'id' => 'required|uuid', - 'entity_type' => 'required|string|in:ASSET', - 'created_time' => 'required|integer', + // 'entity_type' => 'required|string|in:ASSET', + // 'created_time' => 'required|integer', // 'tenant_id' => 'required|uuid', 'customer_xid' => 'required|uuid', 'name' => 'required|string|max:255', diff --git a/app/Services/AdminService.php b/app/Services/AdminService.php index 1b649b2..45454e3 100644 --- a/app/Services/AdminService.php +++ b/app/Services/AdminService.php @@ -49,34 +49,66 @@ class AdminService } } + // public function createAsset(array $data) + // { + + // $token = $this->getToken(); + // $payload = [ + // // 'entityType' => $data['entity_type'] ?? 'ASSET', + // // 'createdTime' => $data['createdTime'] ?? now()->timestamp, + // // 'tenantId' => [ + // // 'id' => $data['tenantId'] ?? Str::uuid()->toString(), + // // // 'entityType' => 'TENANT' + // // ], + // 'customerId' => [ + // 'id' => $data['customerId'] ?? null, + // 'entityType' => 'CUSTOMER' + // ], + // 'name' => $data['name'] ?? 'Default Asset', + // 'type' => $data['type'] ?? 'Default Type', + // 'label' => $data['label'] ?? '', + // // 'assetProfileId' => [ + // // 'id' => $data['assetProfileId'] ?? Str::uuid()->toString(), + // // // 'entityType' => 'ASSET_PROFILE' + // // ], + // // 'externalId' => [ + // // 'id' => $data['externalId'] ?? Str::uuid()->toString(), + // // 'entityType' => 'ASSET' + // // ], + // 'version' => $data['version'] ?? '1.0', + // 'additionalInfo' => $data['additionalInfo'] ?? ['description' => 'Default asset description'] + // ]; + + // $response = Http::withHeaders([ + // 'Authorization' => "Bearer $token", + // 'Accept' => 'application/json', + // 'Content-Type' => 'application/json', + // ])->withBody(json_encode($payload), 'application/json') + // ->post("{$this->baseUrl}/api/asset"); + // Log::error('Error in creating asset: ' . $response); + // // dd($response->json()); + // if ($response->successful()) { + // return $response->json(); + // } else { + // throw new Exception('Failed to create asset: ' . $response->body()); + // } + // } public function createAsset(array $data) { - $token = $this->getToken(); + $payload = [ - // 'entityType' => $data['entity_type'] ?? 'ASSET', - // 'createdTime' => $data['createdTime'] ?? now()->timestamp, - // 'tenantId' => [ - // 'id' => $data['tenantId'] ?? Str::uuid()->toString(), - // // 'entityType' => 'TENANT' - // ], + 'entityType' => $data['entity_type'], // Always 'ASSET' from backend + 'createdTime' => $data['createdTime'], // Always from backend 'customerId' => [ - 'id' => $data['customerId'] ?? null, + 'id' => $data['customerId'], 'entityType' => 'CUSTOMER' ], - 'name' => $data['name'] ?? 'Default Asset', - 'type' => $data['type'] ?? 'Default Type', - 'label' => $data['label'] ?? '', - // 'assetProfileId' => [ - // 'id' => $data['assetProfileId'] ?? Str::uuid()->toString(), - // // 'entityType' => 'ASSET_PROFILE' - // ], - // 'externalId' => [ - // 'id' => $data['externalId'] ?? Str::uuid()->toString(), - // 'entityType' => 'ASSET' - // ], - 'version' => $data['version'] ?? '1.0', - 'additionalInfo' => $data['additionalInfo'] ?? ['description' => 'Default asset description'] + 'name' => $data['name'], + 'type' => $data['type'], + 'label' => $data['label'], + 'version' => $data['version'], + 'additionalInfo' => $data['additionalInfo'], ]; $response = Http::withHeaders([ @@ -85,11 +117,11 @@ class AdminService 'Content-Type' => 'application/json', ])->withBody(json_encode($payload), 'application/json') ->post("{$this->baseUrl}/api/asset"); - Log::error('Error in creating asset: ' . $response); - // dd($response->json()); + if ($response->successful()) { return $response->json(); } else { + Log::error('Error in creating asset: ' . $response->body()); throw new Exception('Failed to create asset: ' . $response->body()); } } @@ -196,8 +228,8 @@ class AdminService 'accept' => 'application/json', 'Content-Type' => 'application/json', ]) - ->timeout(30) - ->post("{$this->baseUrl}/api/user", $payload); + ->timeout(30) + ->post("{$this->baseUrl}/api/user", $payload); if ($response->successful()) { return $response->json(); @@ -216,7 +248,6 @@ class AdminService 'message' => 'Failed to create user in ThingsBoard', 'details' => $errorDetails ]; - } catch (\Exception $e) { Log::error('ThingsBoard Service Exception: ' . $e->getMessage()); return [ @@ -256,7 +287,7 @@ class AdminService } } - public function assignAssetToUser(array $data) + public function assignAssetToUser(array $data) { $token = $this->getToken(); @@ -383,7 +414,6 @@ class AdminService 'data' => $response->json(), 'status' => 200 ]; - } catch (Exception $e) { Log::error('ThingsBoard deletion exception: ' . $e->getMessage()); return [ @@ -487,4 +517,4 @@ class AdminService throw new Exception('Failed to fetch users: ' . $response->body()); } } -} \ No newline at end of file +} -- 2.34.1