diff --git a/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php b/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php index dc8d7b1..d6a8a40 100644 --- a/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php +++ b/app/Http/Controllers/APIS/AdminApi/AssetadmintController.php @@ -86,13 +86,13 @@ class AssetadmintController extends Controller ? json_decode($request->additional_info, true) : $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', @@ -104,8 +104,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']; @@ -122,7 +122,7 @@ class AssetadmintController extends Controller 'message' => 'Asset created successfully!', 'data' => $asset, 'customer_name' => $customerName, - // 'api_response' => $response + 'api_response' => $response ], 200); } catch (\Exception $e) { Log::error('Error in creating asset: ' . $e->getMessage()); 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..e99a285 100644 --- a/app/Services/AdminService.php +++ b/app/Services/AdminService.php @@ -49,34 +49,67 @@ 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 +118,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 +229,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 +249,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 +288,7 @@ class AdminService } } - public function assignAssetToUser(array $data) + public function assignAssetToUser(array $data) { $token = $this->getToken(); @@ -383,7 +415,6 @@ class AdminService 'data' => $response->json(), 'status' => 200 ]; - } catch (Exception $e) { Log::error('ThingsBoard deletion exception: ' . $e->getMessage()); return [ @@ -487,4 +518,4 @@ class AdminService throw new Exception('Failed to fetch users: ' . $response->body()); } } -} \ No newline at end of file +}