Files
wticreatorstudio/Modules/StudioPlusWtiiabaddon/Http/Controllers/API/StudioPlusAsinController.php
T

61 lines
1.5 KiB
PHP

<?php
namespace Modules\StudioPlusWtiiabaddon\Http\Controllers\API;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\StudioPlus\Http\Requests\StudioPlusAsinRequest;
use Modules\StudioPlusWtiiabaddon\Entities\StudioPlusAsin;
use Modules\StudioPlusWtiiabaddon\Transformers\StudioPlusAsinResource;
use Cache;
class StudioPlusAsinController extends Controller
{
public function index(Request $request)
{
$asins = Cache::remember('studio_plus_asins', 60 * 60, function () use($request){
return StudioPlusAsin::query()->get();
});
return StudioPlusAsinResource::collection($asins);
}
public function store(StudioPlusAsinRequest $request)
{
$validated = $request->validated();
$validated['user_id'] = auth()->id();
StudioPlusAsin::create($validated);
Cache::forget('studio_plus_asins');
return response()->noContent();
}
public function update(StudioPlusAsinRequest $request, StudioPlusAsin $asin)
{
$validated = $request->validated();
$asin->update($validated);
Cache::forget('studio_plus_asins');
return response()->noContent();
}
public function destroy(StudioPlusAsin $asin)
{
try {
$asin->delete();
Cache::forget('studio_plus_asins');
return response()->noContent();
} catch (\Exception $ex) {
throw new \Exception('Unable to delete ASIN value.');
}
}
}