validate([ 'search' => ['required'] ]); $studioPlus = StudioPlusVideo::query() ->where('asin', $request->search) ->exists(); if (!$studioPlus) { return [ 'message' => 'ASIN not found.', 'exists' => $studioPlus ]; } $asin = config('studioplus.amazon_active_api') !== 'RAINFOREST' ? (new AmazonProductService)->getASIN($request->search) : (new RainForestAmazonProductService)->getASIN($request->search); if (!$asin) { return [ 'message' => 'ASIN not found.', 'exists' => $studioPlus ]; } $validated = [ 'user_id' => 1, 'name' => $asin['category'] ]; if ($validated['name']) { $category = StudioPlusCategory::firstOrCreate( [ 'name' => $validated['name'] ], $validated ); $asin['category_id'] = $category->id; } $asin['exists'] = $studioPlus; return new AmazonASINResource($asin); } }