<?php

namespace App\Http\Controllers\Api;

use App\Exceptions\ApiHttpException;
use App\Facades\ResourceService;
use App\Http\Controllers\Controller;
use App\Http\Requests\Api\ResourcesRequest;
use App\Http\Resources\Resource;
use Illuminate\Http\Client\Request;

class ResourcesController extends Controller
{
    public function index(ResourcesRequest $request)
    {
        $data = $request->validated();
        $resources = ResourceService::getResources($data);

        return [
            'data' => Resource::collection($resources['resources']),
            'pagination' => $resources['pagination'],
        ];
    }

    public function show(string $slug, Request $request)
    {
        $resource = ResourceService::getResourceBySlug($slug);

        if (!$resource) {
            throw new ApiHttpException(404, 'item_not_found');
        }

        return new Resource($resource);
    }
}
