mirror of
https://github.com/Bigherollc/wticreatorstudio.git
synced 2026-07-14 18:02:01 -04:00
66 lines
1.8 KiB
PHP
66 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Modules\StudioPlus\Http\Controllers\API;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
use Illuminate\Contracts\Support\Renderable;
|
|
use Illuminate\Support\Arr;
|
|
use Modules\StudioPlus\Entities\StudioPlusCategory;
|
|
use Modules\StudioPlus\Entities\StudioPlusVideo;
|
|
use Modules\StudioPlus\Services\AmazonProductService;
|
|
use Modules\StudioPlus\Services\RainForestAmazonProductService;
|
|
use Modules\StudioPlus\Transformers\AmazonASINResource;
|
|
|
|
class AsinController extends Controller
|
|
{
|
|
public function getAsinData(Request $request)
|
|
{
|
|
$request->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);
|
|
}
|
|
}
|