<?php
namespace App\Http\Controllers\Api\Common;

use App\Http\Controllers\Api\ApiBaseController;
use App\Services\Common\UploadService;
use App\Validators\UploadValidatorRequest;
use Illuminate\Support\Facades\Cache;

class UploadController extends ApiBaseController
{
    /**
     * @var UploadService
     */
    protected $uploadService;

    /**
     * UploadController constructor.
     * @param UploadService $uploadService
     */
    public function __construct(UploadService $uploadService)
    {
        $this->uploadService = $uploadService;
    }


    public function uploadImage(UploadValidatorRequest $uploadValidatorRequest)
    {
        $data=$this->uploadService->upload(
            $uploadValidatorRequest->file('images'),
            $uploadValidatorRequest->get('path', ''),
            $uploadValidatorRequest->get('upload_tag')
        );
        return $this->sendSuccessResponse($data);
    }

    public function uploadFile(UploadValidatorRequest $uploadValidatorRequest)
    {
        $data=$this->uploadService->upload(
            $uploadValidatorRequest->file('files'),
            $uploadValidatorRequest->get('path', ''),
            $uploadValidatorRequest->get('upload_tag')
        );
        return $this->sendSuccessResponse($data);
    }

    public function getDataByCache($tag)
    {
        return $this->sendSuccessResponse(Cache::get($tag));
    }


}